[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