?? ld-elf2flt
字號:
#!/bin/sh## allow us to do flat processing if the flag -Welf2flt (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## Install by renaming all m68k-elf-ld/ld to XXX.real, and put this# script in their place.## Copyright (C) 2000, Lineo.# davidm@lineo.com#LINKER="$0.real" # the original renamed-linkerELF2FLT="`expr $0 : '\(.*\)ld'`elf2flt"TOOLDIR="`dirname $0`" # let gcc find the tools for us## if we have the elf2flt options, run it#if expr "$*" : ".*-elf2flt.*" > /dev/nullthen ARG1= ARG2= OFILE= PIC= SDIRS= LDSCRIPT= FINAL="yes" while [ $# -ne 0 ] do case "$1" in -elf2flt) ;; # we already know this -elf2flt*)FLTFLAGS="`expr \"$1\" : '-elf2flt=\(.*\)'` $FLTFLAGS";; -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 -r|-Ur) FINAL="" # this is not a final link ARG1="$ARG1 $1" ;; *) ARG1="$ARG1 $1" ;; esac shift done if [ "$FINAL" = "yes" ] then [ -z "$LDSCRIPT" ] && LDSCRIPT="elf2flt.ld" $LINKER -r -d -o $OFILE.elf2flt $ARG1 || exit $? $LINKER $SDIRS -T $LDSCRIPT -Ur -o $OFILE.elf $OFILE.elf2flt || exit $? $LINKER $SDIRS -T $LDSCRIPT -o $OFILE.gdb $OFILE.elf2flt || exit $? rm -f $OFILE.elf2flt if grep _GLOBAL_OFFSET_TABLE_ $OFILE.gdb > /dev/null then $ELF2FLT $FLTFLAGS -o $OFILE -p $OFILE.gdb $OFILE.elf || exit $? else $ELF2FLT $FLTFLAGS -o $OFILE -r $OFILE.elf || exit $? fi rm -f $OFILE.elf # not needed for any reason exit 0 fi exec $LINKER -o $OFILE $ARG1fi## otherwise pretend we aren't here#exec $LINKER "$@"
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -