[prev in list] [next in list] [prev in thread] [next in thread] 

List:       uclinux-dev
Subject:    [uClinux-dev] [PATCH 4/7] rename local ld-elf2flt to ld-elf2flt.sh
From:       Mike Frysinger <vapier () gentoo ! org>
Date:       2009-07-06 22:16:20
Message-ID: 1246918583-24876-4-git-send-email-vapier () gentoo ! org
[Download RAW message or body]

This allows us to drop in a C version without getting filename conflicts.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 .gitignore       |    1 +
 Makefile.in      |   13 ++--
 configure        |    5 +-
 configure.in     |    3 +-
 ld-elf2flt.in    |  239 ------------------------------------------------------
 ld-elf2flt.sh.in |  239 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 250 insertions(+), 250 deletions(-)
 delete mode 100644 ld-elf2flt.in
 create mode 100644 ld-elf2flt.sh.in

diff --git a/.gitignore b/.gitignore
index 92ff5f6..f318c6d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,4 @@ elf2flt
 elf2flt.ld
 flthdr
 ld-elf2flt
+ld-elf2flt.sh
diff --git a/Makefile.in b/Makefile.in
index 8b82809..dbe9110 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -44,9 +44,10 @@ target_libdir = $(prefix)/$(TARGET)/lib
 
 PROG_ELF2FLT = elf2flt$(EXEEXT)
 PROG_FLTHDR = flthdr$(EXEEXT)
-PROGS = $(PROG_ELF2FLT) $(PROG_FLTHDR)
+PROG_LD_ELF2FLT = ld-elf2flt.sh
+PROGS = $(PROG_ELF2FLT) $(PROG_FLTHDR) $(PROG_LD_ELF2FLT)
 
-all: $(PROGS) ld-elf2flt
+all: $(PROGS)
 
 # We need to declare the link explicitly because make only provides
 # implicit rules when EXEEXT is set to nothing
@@ -58,7 +59,7 @@ $(PROG_ELF2FLT): elf2flt.o compress.o stubs.o
 $(PROG_FLTHDR): flthdr.o compress.o
 	$(link)
 
-ld-elf2flt: $(srcdir)/ld-elf2flt.in
+ld-elf2flt.sh: $(srcdir)/ld-elf2flt.sh.in
 	./config.status $@
 
 Makefile: $(srcdir)/Makefile.in
@@ -68,7 +69,7 @@ clean:
 	-rm -f $(PROGS) *.$(OBJEXT) .deps
 
 distclean: clean
-	-rm -f Makefile config.log config.status config.cache ld-elf2flt
+	-rm -f Makefile config.log config.status config.cache
 
 install:
 	$(INSTALL) -d $(bindir)
@@ -82,8 +83,8 @@ install:
 		mv $(bindir)/$(TARGET)-ld$(EXEEXT) $(bindir)/$(TARGET)-ld.real$(EXEEXT)
 	[ -f $(target_bindir)/ld.real$(EXEEXT) ] || \
 		mv $(target_bindir)/ld$(EXEEXT) $(target_bindir)/ld.real$(EXEEXT)
-	$(INSTALL) -m 755 ld-elf2flt $(bindir)/$(TARGET)-ld
-	$(INSTALL) -m 755 ld-elf2flt $(target_bindir)/ld
+	$(INSTALL) -m 755 $(PROG_LD_ELF2FLT) $(bindir)/$(TARGET)-ld
+	$(INSTALL) -m 755 $(PROG_LD_ELF2FLT) $(target_bindir)/ld
 	$(INSTALL) -m 644 $(SRC_LDFILE) $(target_libdir)/$(LDFILE)
 
 sinclude .deps
diff --git a/configure b/configure
index bcd26ae..9f80e47 100755
--- a/configure
+++ b/configure
@@ -4687,7 +4687,7 @@ done
 
 
 
-ac_config_files="$ac_config_files Makefile ld-elf2flt elf2flt.ld"
+ac_config_files="$ac_config_files Makefile ld-elf2flt.sh elf2flt.ld"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -5299,7 +5299,7 @@ for ac_config_target in $ac_config_targets
 do
   case $ac_config_target in
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "ld-elf2flt") CONFIG_FILES="$CONFIG_FILES ld-elf2flt" ;;
+    "ld-elf2flt.sh") CONFIG_FILES="$CONFIG_FILES ld-elf2flt.sh" ;;
     "elf2flt.ld") CONFIG_FILES="$CONFIG_FILES elf2flt.ld" ;;
 
   *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
@@ -5807,4 +5807,3 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
-
diff --git a/configure.in b/configure.in
index eb9733f..199280b 100644
--- a/configure.in
+++ b/configure.in
@@ -182,5 +182,4 @@ AC_SUBST(emit_relocs)
 AC_SUBST(emit_ctor_dtor)
 AC_SUBST(SYMBOL_PREFIX)
 
-AC_OUTPUT(Makefile ld-elf2flt elf2flt.ld)
-
+AC_OUTPUT(Makefile ld-elf2flt.sh elf2flt.ld)
diff --git a/ld-elf2flt.in b/ld-elf2flt.in
deleted file mode 100644
index 91e1ccb..0000000
--- a/ld-elf2flt.in
+++ /dev/null
@@ -1,239 +0,0 @@
-#!/bin/sh
-#
-# allow us to do flat processing if the flag -Wl,-elf2flt or -elf2flt to
-# the 'C' compiler or linker respectively
-#
-# uses the env. var FLTFLAGS as extra parameters to pass to elf2flt
-# arguments given like -Wl,-elf2flt="-b 10000 -v" are given before FLTFLAGS
-#
-# Copyright (C) 2002,2003 David McCullough <davidm@snapgear.com>
-# Copyright (C) 2000, Lineo. davidm@lineo.com
-#
-# This is Free Software, under the GNU Public Licence v2 or greater.
-#
-
-LINKER="$0.real"            # the original renamed-linker
-ELF2FLT="`expr $0 : '\(.*\)ld'`elf2flt"
-NM="`expr $0 : '\(.*\)ld'`nm"
-TOOLDIR="`dirname $0`"      # let gcc find the tools for us
-OBJCOPY="`expr $0 : '\(.*\)ld'`objcopy"
-[ -f "$OBJCOPY" ] || OBJCOPY="$TOOLDIR/../../bin/@target_alias@-objcopy"
-OBJDUMP="`expr $OBJCOPY : '\(.*\)objcopy'`objdump"
-LDSCRIPTPATH="@binutils_ldscript_dir@"	# and the scripts
-SHARED_ID=""
-NEWLDSCRIPT=""
-WANT_SHARED=""
-
-# check TOOLDIR from prefix/bin/ or prefix/target-alias/bin/
-[ -d "${LDSCRIPTPATH}" ] || LDSCRIPTPATH="${TOOLDIR}/../lib"
-
-#
-# if we have the elf2flt options, run it
-#
-
-if expr "$*" : ".*-elf2flt.*" > /dev/null
-then
-	ARG1=
-	ARG2=
-	OFILE="a.out"
-	PIC=
-	SDIRS=
-	LDSCRIPT=
-	FINAL="yes"
-	FINAL_ONLY=
-	MOVDAT=
-	VERBOSE=
-
-	while [ $# -ne 0 ]
-	do
-		case "$1" in
-
-		-elf2flt) ;;                           # we already know this
-		-elf2flt*)FLTFLAGS="`expr \"$1\" : '-elf2flt=\(.*\)'` $FLTFLAGS";; 
-
-		-move-rodata)
-		          MOVDAT="y";;                 # Put rodata in ROM if possible
-		-s)       ;;                           # Ignore -s (strip)
-
-		-shared-lib-id)
-		          shift; SHARED_ID="$1";;      # Shared library ID
-		-shared|-G)
-		          WANT_SHARED="y";;            # Shared library
-
-		-o)       shift; OFILE="$1";;          # the final outfile
-		-o*)      OFILE="`expr \"$1\" : '-o\(.*\)'`";;
-
-		-T)       shift; LDSCRIPT="$1";;       # they have a linker script
-		-c)       shift; LDSCRIPT="$1";;
-
-		-L)       ARG1="$ARG1 $1"              # remember search dirs
-		          shift;
-				  ARG1="$ARG1 $1"
-				  SDIRS="$SDIRS -L$1"
-				  ;;
-		-L*)      ARG1="$ARG1 $1"; SDIRS="$SDIRS $1";;
-
-		-EB)      ARG1="$ARG1 $1"; SDIRS="$SDIRS $1";; # arm big endian
-
-		-relax)   ;;                           # eat this for microblaze
-
-		-r|-Ur)   FINAL=""                     # this is not a final link
-		          ARG1="$ARG1 $1"
-				  ;;
-
-		-v)       ARG1="$ARG1 $1"
-				  VERBOSE="y"
-				  ;;
-
-		-m)       shift; EMUL="-m $1";;        # ld emulations for h8300
-		-m*)      EMUL=$1;;
- 
-		*)        ARG1="$ARG1 $1"
-				  ;;
-		esac
-		shift
-	done
-
-	if [ "$WANT_SHARED" = "y" ]
-	then
-		if [ -z "$SHARED_ID" ]
-		then
-			echo "-shared used without passing a shared library ID"
-			exit 1
-		fi
-	fi
-	if [ "$FINAL" = "yes" ]
-	then
-		[ "$VERBOSE" = "y" ] && set -x
-		ARG1="$ARG1 $FINAL_ONLY"
-		NEWLDSCRIPT=`mktemp /tmp/flt-XXXXXX`
-		trap 'rm -f "$NEWLDSCRIPT"' EXIT
-		SEDOP=" -e s/^R_RODAT// -e /^W_RODAT/d"
-		OBJCOPYOP=""
-		if [ "$MOVDAT" ]
-		then
-			$LINKER -r -d -o "$OFILE.elf2flt" $ARG1  || exit $?
-			if [ "`$OBJDUMP -h "$OFILE.elf2flt" | \
-					egrep -A1 '[.]rodata' | grep RELOC`" ]
-			then
-				echo "warning: .rodata section contains relocations"
-			else
-				SEDOP="-e /^R_RODAT/d -e s/^W_RODAT//"
-			fi
-		fi
-		if [ "$SHARED_ID" ]
-		then
-			# Massage the linker script into something useful.  These
-			# regexps are ugly due to some bizzare shell quoting rules.
-			#    SEDOP="$SEDOP -e \"s/ORIGIN = 0x0,/ORIGIN = 0x${SHARED_ID}000000,/\""
-			#    SEDOP="$SEDOP -e \"s/.text 0x0 :/.text 0x${SHARED_ID}000000 :/\""			
-			SEDOP="$SEDOP -e s/\\(ORIGIN.=.0\\)x0,/\\1x${SHARED_ID}000000,/"
-			SEDOP="$SEDOP -e s/\\([.]text.0\\)x0[^0-9]:/\\1x${SHARED_ID}000000:/"
-			
-			if [ "$SHARED_ID" -gt 0 ]
-			then
-				# Non application modules enter via main not _start
-				#    SEDOP="$SEDOP -e 's/ENTRY (_start)/ENTRY (main)/'"
-				SEDOP="$SEDOP -e s/\\(ENTRY.\\)(@SYMBOL_PREFIX@_start)/\1(lib_main)/"
-				OBJCOPYOP="--localize-hidden --weaken"
-			fi
-
-			# Provide the magic parameter that defines the library data segment pointer offset
-			GOT_ADJ=4
-			case "@target_cpu@" in
-			    bfin)  GOT_OFFSET="_current_shared_library_p5_offset_" GOT_ADJ=1;;
-			    h8300) GOT_OFFSET="__current_shared_library_er5_offset_";;
-			    *)     GOT_OFFSET="_current_shared_library_a5_offset_";;
-			esac
-			ARG1="$ARG1 -defsym $GOT_OFFSET=`expr ${SHARED_ID} '*' -${GOT_ADJ} - ${GOT_ADJ}`"
-		fi
-		if [ "@emit_relocs@" = "yes" ]
-		then
-			SEDOP="$SEDOP -e s/^SINGLE_LINK://"
-		else
-			SEDOP="$SEDOP -e /^SINGLE_LINK:/d"
-		fi
-		if [ "@emit_ctor_dtor@" = "yes" ]
-		then
-			SEDOP="$SEDOP -e s/^TOR://"
-		else
-			SEDOP="$SEDOP -e /^TOR:/d"
-		fi
-		
-		# provide a default linker script, we usually need one
-		[ -z "$LDSCRIPT" ] && LDSCRIPT="${LDSCRIPTPATH}/elf2flt.ld"
-
-		# if we can find the linker script we preprocess it,  otherwise
-		# we assume the user knows what they are doing
-		if [ -f "$LDSCRIPT" ]; then
-			sed $SEDOP < "$LDSCRIPT" > "$NEWLDSCRIPT"
-			LDSCRIPT="$NEWLDSCRIPT"
-		elif [ -f "${LDSCRIPTPATH}/$LDSCRIPT" ]; then
-			sed $SEDOP < "${LDSCRIPTPATH}/$LDSCRIPT" > "$NEWLDSCRIPT"
-			LDSCRIPT="$NEWLDSCRIPT"
-		elif [ -f "${LDSCRIPTPATH}/ldscripts/$LDSCRIPT" ]; then
-			sed $SEDOP < "${LDSCRIPTPATH}/ldscripts/$LDSCRIPT" > "$NEWLDSCRIPT"
-			LDSCRIPT="$NEWLDSCRIPT"
-		fi
-
-		if [ "@emit_relocs@" = "yes" ]
-		then
-		 $LINKER $EMUL $SDIRS -T $LDSCRIPT -q -o "$OFILE.gdb" $ARG1             ||exit $?
-		 RFILE="$OFILE.gdb"
-		 FLTFLAGS="$FLTFLAGS -a"
-		else
-		 if [ "@got_check@" = "no" ]
-		 then
-		  $LINKER $EMUL $SDIRS -T $LDSCRIPT -Ur -d -o "$OFILE.elf" $ARG1         ||exit $?
-		  $LINKER $EMUL $SDIRS -T $LDSCRIPT -o "$OFILE.gdb" $ARG1                ||exit $?
-		 else
-		  $LINKER $EMUL -r -d -o "$OFILE.elf2flt" $ARG1                          ||exit $?
-		  $LINKER $EMUL $SDIRS -T $LDSCRIPT -Ur -o "$OFILE.elf" "$OFILE.elf2flt" ||exit $?
-		  $LINKER $EMUL $SDIRS -T $LDSCRIPT -o "$OFILE.gdb" "$OFILE.elf2flt"     ||exit $?
-		  rm -f "$OFILE.elf2flt"
-		 fi
-		 RFILE="$OFILE.elf"
-		fi
-		if $NM "$OFILE.gdb" | grep _GLOBAL_OFFSET_TABLE_ > /dev/null 
-		then
-			$ELF2FLT $FLTFLAGS -o "$OFILE" -p "$OFILE.gdb" "$RFILE" || exit $?
-		else
-			$ELF2FLT $FLTFLAGS -o "$OFILE" -r "$RFILE" || exit $?
-		fi
-		if [ "$OBJCOPYOP" ]
-		then
-		 if $OBJCOPY $OBJCOPYOP --help > /dev/null 2>&1
-		 then
-		  $OBJCOPY $OBJCOPYOP "$OFILE.gdb" ||exit $?
-		 else
-		  case " $OBJCOPYOP " in
-		  *" --localize-hidden "*)
-		    SYMS=`mktemp /tmp/flt-XXXXXX`
-		    $OBJDUMP --syms "$OFILE.gdb" > "$SYMS" ||exit $?
-		    sed -n 's/.*\(\.hidden\|\.internal\) \(.*\)/-L \2/p' < "$SYMS" > "$SYMS.hidden" ||exit $?
-		    if [ -s "$SYMS.hidden" ]
-		    then
-		     xargs ${VERBOSE:+-t} $OBJCOPY "$OFILE.gdb" < "$SYMS.hidden" ||exit $?
-		    fi
-		    rm -f "$SYMS" "$SYMS.hidden"
-		    ;;
-		  esac
-		  case " $OBJCOPYOP " in
-		  *" --weaken "*)
-		    $OBJCOPY --weaken "$OFILE.gdb" ||exit $?
-		    ;;
-		  esac
-		 fi
-		fi
-		[ "$RFILE" = "$OFILE.gdb" ] || rm -f "$RFILE"  # not needed for any reason
-		exit 0
-	fi
-
-	exec $LINKER -o "$OFILE" $ARG1
-fi
-
-#
-# otherwise pretend we aren't here
-#
-
-exec $LINKER "$@"
diff --git a/ld-elf2flt.sh.in b/ld-elf2flt.sh.in
new file mode 100644
index 0000000..2b868cc
--- /dev/null
+++ b/ld-elf2flt.sh.in
@@ -0,0 +1,239 @@
+#!/bin/sh
+#
+# allow us to do flat processing if the flag -Wl,-elf2flt or -elf2flt to
+# the 'C' compiler or linker respectively
+#
+# uses the env. var FLTFLAGS as extra parameters to pass to elf2flt
+# arguments given like -Wl,-elf2flt="-b 10000 -v" are given before FLTFLAGS
+#
+# Copyright (C) 2002,2003 David McCullough <davidm@snapgear.com>
+# Copyright (C) 2000, Lineo. davidm@lineo.com
+#
+# This is Free Software, under the GNU Public Licence v2 or greater.
+#
+
+LINKER="$0.real"            # the original renamed-linker
+ELF2FLT="`expr $0 : '\(.*\)ld'`elf2flt"
+NM="`expr $0 : '\(.*\)ld'`nm"
+TOOLDIR="`dirname $0`"      # let gcc find the tools for us
+OBJCOPY="`expr $0 : '\(.*\)ld'`objcopy"
+[ -f "$OBJCOPY" ] || OBJCOPY="$TOOLDIR/../../bin/@target_alias@-objcopy"
+OBJDUMP="`expr $OBJCOPY : '\(.*\)objcopy'`objdump"
+LDSCRIPTPATH="@binutils_ldscript_dir@"	# and the scripts
+SHARED_ID=""
+NEWLDSCRIPT=""
+WANT_SHARED=""
+
+# check TOOLDIR from prefix/bin/ or prefix/target-alias/bin/
+[ -d "${LDSCRIPTPATH}" ] || LDSCRIPTPATH="${TOOLDIR}/../lib"
+
+#
+# if we have the elf2flt options, run it
+#
+
+if expr "$*" : ".*-elf2flt.*" > /dev/null
+then
+	ARG1=
+	ARG2=
+	OFILE="a.out"
+	PIC=
+	SDIRS=
+	LDSCRIPT=
+	FINAL="yes"
+	FINAL_ONLY=
+	MOVDAT=
+	VERBOSE=
+
+	while [ $# -ne 0 ]
+	do
+		case "$1" in
+
+		-elf2flt) ;;                           # we already know this
+		-elf2flt*)FLTFLAGS="`expr \"$1\" : '-elf2flt=\(.*\)'` $FLTFLAGS";;
+
+		-move-rodata)
+		          MOVDAT="y";;                 # Put rodata in ROM if possible
+		-s)       ;;                           # Ignore -s (strip)
+
+		-shared-lib-id)
+		          shift; SHARED_ID="$1";;      # Shared library ID
+		-shared|-G)
+		          WANT_SHARED="y";;            # Shared library
+
+		-o)       shift; OFILE="$1";;          # the final outfile
+		-o*)      OFILE="`expr \"$1\" : '-o\(.*\)'`";;
+
+		-T)       shift; LDSCRIPT="$1";;       # they have a linker script
+		-c)       shift; LDSCRIPT="$1";;
+
+		-L)       ARG1="$ARG1 $1"              # remember search dirs
+		          shift;
+				  ARG1="$ARG1 $1"
+				  SDIRS="$SDIRS -L$1"
+				  ;;
+		-L*)      ARG1="$ARG1 $1"; SDIRS="$SDIRS $1";;
+
+		-EB)      ARG1="$ARG1 $1"; SDIRS="$SDIRS $1";; # arm big endian
+
+		-relax)   ;;                           # eat this for microblaze
+
+		-r|-Ur)   FINAL=""                     # this is not a final link
+		          ARG1="$ARG1 $1"
+				  ;;
+
+		-v)       ARG1="$ARG1 $1"
+				  VERBOSE="y"
+				  ;;
+
+		-m)       shift; EMUL="-m $1";;        # ld emulations for h8300
+		-m*)      EMUL=$1;;
+
+		*)        ARG1="$ARG1 $1"
+				  ;;
+		esac
+		shift
+	done
+
+	if [ "$WANT_SHARED" = "y" ]
+	then
+		if [ -z "$SHARED_ID" ]
+		then
+			echo "-shared used without passing a shared library ID"
+			exit 1
+		fi
+	fi
+	if [ "$FINAL" = "yes" ]
+	then
+		[ "$VERBOSE" = "y" ] && set -x
+		ARG1="$ARG1 $FINAL_ONLY"
+		NEWLDSCRIPT=`mktemp /tmp/flt-XXXXXX`
+		trap 'rm -f "$NEWLDSCRIPT"' EXIT
+		SEDOP=" -e s/^R_RODAT// -e /^W_RODAT/d"
+		OBJCOPYOP=""
+		if [ "$MOVDAT" ]
+		then
+			$LINKER -r -d -o "$OFILE.elf2flt" $ARG1  || exit $?
+			if [ "`$OBJDUMP -h "$OFILE.elf2flt" | \
+					egrep -A1 '[.]rodata' | grep RELOC`" ]
+			then
+				echo "warning: .rodata section contains relocations"
+			else
+				SEDOP="-e /^R_RODAT/d -e s/^W_RODAT//"
+			fi
+		fi
+		if [ "$SHARED_ID" ]
+		then
+			# Massage the linker script into something useful.  These
+			# regexps are ugly due to some bizzare shell quoting rules.
+			#    SEDOP="$SEDOP -e \"s/ORIGIN = 0x0,/ORIGIN = 0x${SHARED_ID}000000,/\""
+			#    SEDOP="$SEDOP -e \"s/.text 0x0 :/.text 0x${SHARED_ID}000000 :/\""
+			SEDOP="$SEDOP -e s/\\(ORIGIN.=.0\\)x0,/\\1x${SHARED_ID}000000,/"
+			SEDOP="$SEDOP -e s/\\([.]text.0\\)x0[^0-9]:/\\1x${SHARED_ID}000000:/"
+
+			if [ "$SHARED_ID" -gt 0 ]
+			then
+				# Non application modules enter via main not _start
+				#    SEDOP="$SEDOP -e 's/ENTRY (_start)/ENTRY (main)/'"
+				SEDOP="$SEDOP -e s/\\(ENTRY.\\)(@SYMBOL_PREFIX@_start)/\1(lib_main)/"
+				OBJCOPYOP="--localize-hidden --weaken"
+			fi
+
+			# Provide the magic parameter that defines the library data segment pointer offset
+			GOT_ADJ=4
+			case "@target_cpu@" in
+			    bfin)  GOT_OFFSET="_current_shared_library_p5_offset_" GOT_ADJ=1;;
+			    h8300) GOT_OFFSET="__current_shared_library_er5_offset_";;
+			    *)     GOT_OFFSET="_current_shared_library_a5_offset_";;
+			esac
+			ARG1="$ARG1 -defsym $GOT_OFFSET=`expr ${SHARED_ID} '*' -${GOT_ADJ} - ${GOT_ADJ}`"
+		fi
+		if [ "@emit_relocs@" = "yes" ]
+		then
+			SEDOP="$SEDOP -e s/^SINGLE_LINK://"
+		else
+			SEDOP="$SEDOP -e /^SINGLE_LINK:/d"
+		fi
+		if [ "@emit_ctor_dtor@" = "yes" ]
+		then
+			SEDOP="$SEDOP -e s/^TOR://"
+		else
+			SEDOP="$SEDOP -e /^TOR:/d"
+		fi
+
+		# provide a default linker script, we usually need one
+		[ -z "$LDSCRIPT" ] && LDSCRIPT="${LDSCRIPTPATH}/elf2flt.ld"
+
+		# if we can find the linker script we preprocess it,  otherwise
+		# we assume the user knows what they are doing
+		if [ -f "$LDSCRIPT" ]; then
+			sed $SEDOP < "$LDSCRIPT" > "$NEWLDSCRIPT"
+			LDSCRIPT="$NEWLDSCRIPT"
+		elif [ -f "${LDSCRIPTPATH}/$LDSCRIPT" ]; then
+			sed $SEDOP < "${LDSCRIPTPATH}/$LDSCRIPT" > "$NEWLDSCRIPT"
+			LDSCRIPT="$NEWLDSCRIPT"
+		elif [ -f "${LDSCRIPTPATH}/ldscripts/$LDSCRIPT" ]; then
+			sed $SEDOP < "${LDSCRIPTPATH}/ldscripts/$LDSCRIPT" > "$NEWLDSCRIPT"
+			LDSCRIPT="$NEWLDSCRIPT"
+		fi
+
+		if [ "@emit_relocs@" = "yes" ]
+		then
+		 $LINKER $EMUL $SDIRS -T $LDSCRIPT -q -o "$OFILE.gdb" $ARG1             ||exit $?
+		 RFILE="$OFILE.gdb"
+		 FLTFLAGS="$FLTFLAGS -a"
+		else
+		 if [ "@got_check@" = "no" ]
+		 then
+		  $LINKER $EMUL $SDIRS -T $LDSCRIPT -Ur -d -o "$OFILE.elf" $ARG1         ||exit $?
+		  $LINKER $EMUL $SDIRS -T $LDSCRIPT -o "$OFILE.gdb" $ARG1                ||exit $?
+		 else
+		  $LINKER $EMUL -r -d -o "$OFILE.elf2flt" $ARG1                          ||exit $?
+		  $LINKER $EMUL $SDIRS -T $LDSCRIPT -Ur -o "$OFILE.elf" "$OFILE.elf2flt" ||exit $?
+		  $LINKER $EMUL $SDIRS -T $LDSCRIPT -o "$OFILE.gdb" "$OFILE.elf2flt"     ||exit $?
+		  rm -f "$OFILE.elf2flt"
+		 fi
+		 RFILE="$OFILE.elf"
+		fi
+		if $NM "$OFILE.gdb" | grep _GLOBAL_OFFSET_TABLE_ > /dev/null
+		then
+			$ELF2FLT $FLTFLAGS -o "$OFILE" -p "$OFILE.gdb" "$RFILE" || exit $?
+		else
+			$ELF2FLT $FLTFLAGS -o "$OFILE" -r "$RFILE" || exit $?
+		fi
+		if [ "$OBJCOPYOP" ]
+		then
+		 if $OBJCOPY $OBJCOPYOP --help > /dev/null 2>&1
+		 then
+		  $OBJCOPY $OBJCOPYOP "$OFILE.gdb" ||exit $?
+		 else
+		  case " $OBJCOPYOP " in
+		  *" --localize-hidden "*)
+		    SYMS=`mktemp /tmp/flt-XXXXXX`
+		    $OBJDUMP --syms "$OFILE.gdb" > "$SYMS" ||exit $?
+		    sed -n 's/.*\(\.hidden\|\.internal\) \(.*\)/-L \2/p' < "$SYMS" > "$SYMS.hidden" ||exit $?
+		    if [ -s "$SYMS.hidden" ]
+		    then
+		     xargs ${VERBOSE:+-t} $OBJCOPY "$OFILE.gdb" < "$SYMS.hidden" ||exit $?
+		    fi
+		    rm -f "$SYMS" "$SYMS.hidden"
+		    ;;
+		  esac
+		  case " $OBJCOPYOP " in
+		  *" --weaken "*)
+		    $OBJCOPY --weaken "$OFILE.gdb" ||exit $?
+		    ;;
+		  esac
+		 fi
+		fi
+		[ "$RFILE" = "$OFILE.gdb" ] || rm -f "$RFILE"  # not needed for any reason
+		exit 0
+	fi
+
+	exec $LINKER -o "$OFILE" $ARG1
+fi
+
+#
+# otherwise pretend we aren't here
+#
+
+exec $LINKER "$@"
-- 
1.6.3.3

_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic