summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2002-01-27 12:23:29 +0000
committerobrien <obrien@FreeBSD.org>2002-01-27 12:23:29 +0000
commit9065e980a4f15264a94d9bf01140109a23aa3e6a (patch)
treec58afe85554ffb16205e514c1ee84f8a110d99d8 /contrib
parent6f96e0a4731848dde031a066ca5350d0081c9127 (diff)
downloadFreeBSD-src-9065e980a4f15264a94d9bf01140109a23aa3e6a.zip
FreeBSD-src-9065e980a4f15264a94d9bf01140109a23aa3e6a.tar.gz
Bring the binutils_2_12_cvs_20020127 version of this to the HEAD branch.
Diffstat (limited to 'contrib')
-rw-r--r--contrib/binutils/ld/configure.tgt120
-rw-r--r--contrib/binutils/ld/emulparams/elf64alpha.sh7
2 files changed, 103 insertions, 24 deletions
diff --git a/contrib/binutils/ld/configure.tgt b/contrib/binutils/ld/configure.tgt
index a0a1526..b03cc27 100644
--- a/contrib/binutils/ld/configure.tgt
+++ b/contrib/binutils/ld/configure.tgt
@@ -59,18 +59,22 @@ sparc*-*-linux*aout*) targ_emul=sparclinux
;;
sparc64-*-linux-gnu*) targ_emul=elf64_sparc
targ_extra_emuls="elf32_sparc sparclinux sun4"
+ targ_extra_libpath=elf32_sparc
tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
tdir_sparclinux=${tdir_elf32_sparc}aout
tdir_sun4=sparc-sun-sunos4
;;
sparc*-*-linux-gnu*) targ_emul=elf32_sparc
targ_extra_emuls="sparclinux elf64_sparc sun4"
+ targ_extra_libpath=elf64_sparc
tdir_sparclinux=${targ_alias}aout
tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`
tdir_sun4=sparc-sun-sunos4
;;
sparc*-*-lynxos*) targ_emul=sparclynx ;;
-sparc64-*-netbsd*) targ_emul=elf64_sparc ;;
+sparc64-*-netbsd*) targ_emul=elf64_sparc
+ targ_extra_emuls="elf32_sparc"
+ ;;
sparc*-*-netbsd*elf*) targ_emul=elf32_sparc ;;
sparc*-*-netbsd*) targ_emul=sparcnbsd ;;
sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
@@ -102,7 +106,9 @@ i960-*-rtems*) targ_emul=gld960coff ;;
i960-*-elf*) targ_emul=elf32_i960 ;;
ia64-*-elf*) targ_emul=elf64_ia64 ;;
ia64-*-freebsd*) targ_emul=elf64_ia64 ;;
+ia64-*-netbsd*) targ_emul=elf64_ia64 ;;
ia64-*-linux*) targ_emul=elf64_ia64 ;;
+ia64-*-aix*) targ_emul=elf64_aix ;;
m32r-*-*) targ_emul=m32relf ;;
m68hc11-*-*|m6811-*-*) targ_emul=m68hc11elf
targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;;
@@ -114,7 +120,6 @@ m68*-ericsson-ose) targ_emul=sun3 ;;
m68*-apple-aux*) targ_emul=m68kaux ;;
*-tandem-none) targ_emul=st2000 ;;
i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;;
-i370-*-mvs*) targ_emul=mvs ;;
i[3456]86-*-vsta) targ_emul=vsta ;;
i[3456]86-go32-rtems*) targ_emul=i386go32 ;;
i[3456]86-*-go32) targ_emul=i386go32 ;;
@@ -145,15 +150,31 @@ x86_64-*-linux-gnu*) targ_emul=elf_x86_64
tdir_i386linux=${targ_alias}aout
;;
i[3456]86-*-sysv[45]*) targ_emul=elf_i386 ;;
-i[3456]86-*-solaris2*) targ_emul=elf_i386 ;;
+i[3456]86-*-solaris2*) targ_emul=elf_i386_ldso
+ targ_extra_emuls="elf_i386"
+ ;;
i[3456]86-*-unixware) targ_emul=elf_i386 ;;
-i[3456]86-*-solaris*) targ_emul=elf_i386 ;;
+i[3456]86-*-solaris*) targ_emul=elf_i386_ldso
+ targ_extra_emuls="elf_i386"
+ ;;
i[3456]86-*-netbsdelf*) targ_emul=elf_i386
targ_extra_emuls=i386nbsd
;;
i[3456]86-*-netbsd*) targ_emul=i386nbsd
targ_extra_emuls=elf_i386
;;
+x86_64-*-netbsd*) targ_emul=elf_x86_64
+ targ_extra_emuls="elf_i386 i386nbsd"
+ tdir_elf_i386=`echo ${targ_alias} | \
+ sed -e 's/x86_64/i386/'`
+ case "${tdir_elf_i386}" in
+ *-netbsdelf*) ;;
+ *)
+ tdir_elf_i386=`echo ${tdir_elf_i386} | \
+ sed -e 's/netbsd/netbsdelf/'`
+ ;;
+ esac
+ ;;
i[3456]86-*-netware) targ_emul=i386nw ;;
i[3456]86-*-elf*) targ_emul=elf_i386 ;;
i[3456]86-*-freebsdaout* | i[3456]86-*-freebsd[12].* | i[3456]86-*-freebsd[12])
@@ -193,9 +214,14 @@ armeb-*-aout) targ_emul=armaoutb ;;
arm-*-coff) targ_emul=armcoff ;;
arm-*-vxworks) targ_emul=armcoff ;;
arm-*-freebsd*) targ_emul=armelf ;;
-arm-*-netbsd*) targ_emul=armnbsd ;;
+arm-*-netbsdelf*) targ_emul=armelf_nbsd;
+ targ_extra_emuls="armelf armnbsd" ;;
+arm-*-netbsd*) targ_emul=armnbsd;
+ targ_extra_emuls="armelf armelf_nbsd" ;;
+arm-*-openbsd*) targ_emul=armnbsd ;;
arm-*-rtems*) targ_emul=armelf ;;
arm-*-elf) targ_emul=armelf ;;
+arm9e-*-elf) targ_emul=armelf ;;
arm-*-oabi) targ_emul=armelf_oabi ;;
arm*-*-linux-gnu*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
arm*-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
@@ -215,13 +241,32 @@ xscale-*-elf) targ_emul=armelf ;;
h8300-*-hms* | h8300-*-coff* | h8300-*-rtems*)
targ_emul=h8300; targ_extra_emuls="h8300h h8300s"
;;
+h8300-*-elf*)
+ targ_emul=h8300elf;
+ targ_extra_emuls="h8300helf h8300self"
+ ;;
h8500-*-hms* | h8500-*-coff*)
targ_emul=h8500
targ_extra_emuls="h8500s h8500b h8500m h8500c"
;;
sh-*-linux*)
+ targ_emul=shlelf_linux
+ targ_extra_emuls=shelf_linux
+ targ_extra_libpath=shelf_linux
+ ;;
+sh*eb-*-linux*)
targ_emul=shelf_linux
- targ_extra_emuls=shlelf_linux
+ ;;
+sh*-*-linux*)
+ targ_emul=shlelf_linux
+ ;;
+sh*le-*-netbsdelf*)
+ targ_emul=shlelf_nbsd
+ targ_extra_emuls=shelf_nbsd
+ ;;
+sh*-*-netbsdelf*)
+ targ_emul=shelf_nbsd
+ targ_extra_emuls=shlelf_nbsd
;;
sh-*-elf* | sh-*-rtemself*)
targ_emul=shelf
@@ -247,8 +292,13 @@ m68k-*-linux-gnu*) targ_emul=m68kelf
;;
m68*-*-gnu*) targ_emul=m68kelf ;;
m68*-*-lynxos*) targ_emul=m68klynx ;;
-m68*-hp*-netbsd*) targ_emul=m68k4knbsd ;;
-m68*-*-netbsd*) targ_emul=m68knbsd ;;
+m68*-*-netbsd*4k*) targ_emul=m68k4knbsd
+ targ_extra_emuls="m68knbsd m68kelfnbsd" ;;
+m68*-*-netbsdelf*) targ_emul=m68kelfnbsd
+ targ_extra_emuls="m68knbsd m68k4knbsd" ;;
+m68*-*-netbsdaout* | m68*-*-netbsd*)
+ targ_emul=m68knbsd
+ targ_extra_emuls="m68kelfnbsd m68k4knbsd" ;;
m68*-*-psos*) targ_emul=m68kpsos ;;
m68*-*-rtemscoff*) targ_emul=m68kcoff ;;
m68*-*-rtems*) targ_emul=m68kelf ;;
@@ -271,7 +321,12 @@ mips*-sgi-irix*) targ_emul=mipsbig ;;
mips*el-*-ecoff*) targ_emul=mipsidtl ;;
mips*-*-ecoff*) targ_emul=mipsidt ;;
mips*-dec-bsd*) targ_emul=mipsbsd ;;
-mips*-dec-netbsd*) targ_emul=elf32lmip ;;
+mips*el-*-netbsd*) targ_emul=elf32lmip
+ targ_extra_emuls="elf32bmip"
+ ;;
+mips*-*-netbsd*) targ_emul=elf32bmip
+ targ_extra_emuls="elf32lmip"
+ ;;
mips*-*-bsd*) targ_emul=mipsbig ;;
mips*vr4300el-*-elf*) targ_emul=elf32l4300 ;;
mips*vr4300-*-elf*) targ_emul=elf32b4300 ;;
@@ -293,6 +348,9 @@ mips*-*-linux-gnu*) targ_emul=elf32btsmip
;;
mips*-*-lnews*) targ_emul=mipslnews ;;
mips*-*-sysv4*) targ_emul=elf32btsmip ;;
+mmix-*-*) targ_emul=mmo
+ targ_extra_emuls=elf64mmix
+ ;;
mn10200-*-*) targ_emul=mn10200 ;;
mn10300-*-*) targ_emul=mn10300 ;;
alpha*-*-freebsd*) targ_emul=elf64alpha
@@ -308,26 +366,43 @@ alpha*-*-linux-gnu*) targ_emul=elf64alpha targ_extra_emuls=alpha
alpha*-*-osf*) targ_emul=alpha ;;
alpha*-*-gnu*) targ_emul=elf64alpha ;;
alpha*-*-netware*) targ_emul=alpha ;;
-alpha*-*-netbsd*) targ_emul=elf64alpha ;;
+alpha*-*-netbsd*) targ_emul=elf64alpha_nbsd ;;
z8k-*-coff) targ_emul=z8002; targ_extra_emuls=z8001 ;;
ns32k-pc532-mach* | ns32k-pc532-ux*) targ_emul=pc532macha ;;
ns32k-pc532-netbsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd ;;
+openrisc-*-*) targ_emul=elf32openrisc ;;
+pdp11-*-*) targ_emul=pdp11 ;;
+pjl*-*-*) targ_emul=pjlelf ; targ_extra_emuls="elf_i386" ;;
+pj*-*-*) targ_emul=pjelf ;;
powerpc-*-freebsd*) targ_emul=elf32ppc;
targ_extra_emuls=elf32ppcsim;
targ_extra_libpath=elf32ppc;
tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'`
;;
-powerpc-*-linux-gnu*) targ_emul=elf32ppclinux;
- targ_extra_emuls="elf32ppc elf32ppcsim";
- targ_extra_libpath=elf32ppc ;;
-pjl*-*-*) targ_emul=pjlelf ; targ_extra_emuls="elf_i386" ;;
-pj*-*-*) targ_emul=pjelf ;;
-powerpc-*-elf* | powerpc-*-eabi* | powerpc-*-sysv* \
- | powerpc-*-netbsd* | powerpc-*-vxworks*)
- targ_emul=elf32ppc targ_extra_emuls="elf32ppclinux elf32ppcsim";;
-powerpcle-*-elf* | powerpcle-*-eabi* | powerpcle-*-solaris* \
- | powerpcle-*-sysv* | powerpcle-*-vxworks*)
- targ_emul=elf32lppc targ_extra_emuls="elf32ppcsim";;
+powerpc*-*-linux*)
+ case "${targ}" in
+ *64*) targ_emul=elf64ppc
+ targ_extra_emuls="elf32ppclinux elf32ppc elf32ppcsim" ;;
+ *) targ_emul=elf32ppclinux
+ targ_extra_emuls="elf32ppc elf32ppcsim"
+ targ_extra_libpath=elf32ppc ;;
+ esac ;;
+powerpc*le-*-elf* | powerpc*le-*-eabi* | powerpc*le-*-solaris* \
+ | powerpc*le-*-sysv* | powerpc*le-*-vxworks*)
+ case "${targ}" in
+ *64*) targ_emul=elf64lppc
+ targ_extra_emuls="elf32lppc elf32ppcsim" ;;
+ *) targ_emul=elf32lppc
+ targ_extra_emuls="elf32ppcsim" ;;
+ esac ;;
+powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \
+ | powerpc*-*-netbsd* | powerpc*-*-vxworks*)
+ case "${targ}" in
+ *64*) targ_emul=elf64ppc
+ targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" ;;
+ *) targ_emul=elf32ppc
+ targ_extra_emuls="elf32ppclinux elf32ppcsim" ;;
+ esac ;;
powerpcle-*-rtems*) targ_emul=elf32leppc ;;
powerpc-*-rtems*) targ_emul=elf32ppc ;;
powerpc-*-macos*) targ_emul=ppcmacos ;;
@@ -346,10 +421,13 @@ v850-*-*) targ_emul=v850 ;;
v850e-*-*) targ_emul=v850 ;;
v850ea-*-*) targ_emul=v850 ;;
w65-*-*) targ_emul=w65 ;;
+xstormy16-*-*) targ_emul=elf32xstormy16 ;;
fr30-*-*) targ_emul=elf32fr30 ;;
mcore-*-pe) targ_emul=mcorepe ;
targ_extra_ofiles="deffilep.o pe-dll.o" ;;
mcore-*-elf) targ_emul=elf32mcore ;;
+s390x-*-linux*) targ_emul=elf64_s390 ;;
+s390-*-linux*) targ_emul=elf_s390 ;;
*-*-ieee*) targ_emul=vanilla ;;
*)
diff --git a/contrib/binutils/ld/emulparams/elf64alpha.sh b/contrib/binutils/ld/emulparams/elf64alpha.sh
index 98d65b2..a245065 100644
--- a/contrib/binutils/ld/emulparams/elf64alpha.sh
+++ b/contrib/binutils/ld/emulparams/elf64alpha.sh
@@ -13,9 +13,10 @@ ARCH=alpha
MACHINE=
GENERATE_SHLIB_SCRIPT=yes
DATA_PLT=
-NOP=0x47ff041f
+NOP=0x2ffe0000 # unop
-OTHER_READONLY_SECTIONS='.reginfo : { *(.reginfo) }'
+OTHER_READONLY_SECTIONS="
+ .reginfo ${RELOCATING-0} : { *(.reginfo) }"
# This code gets inserted into the generic elf32.sc linker script
# and allows us to define our own command line switches.
@@ -27,7 +28,7 @@ PARSE_AND_LIST_PROLOGUE='
static int elf64alpha_32bit = 0;
struct ld_emulation_xfer_struct ld_elf64alpha_emulation;
-static void gld_elf64alpha_finish ();
+static void gld_elf64alpha_finish PARAMS ((void));
'
PARSE_AND_LIST_LONGOPTS='
OpenPOWER on IntegriCloud