aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorDavid O'Brien <obrien@FreeBSD.org>2002-02-18 09:38:01 +0000
committerDavid O'Brien <obrien@FreeBSD.org>2002-02-18 09:38:01 +0000
commitac3e50bf05b9682d2bede73eaaddf0a2327f15cb (patch)
tree49f4cba3b91cc68983f1cb4ec489ad8ab383a0f2 /ld
parentc236e98b9ff197e950fc80215002288b92ce7d78 (diff)
downloadfsf-binutils-gdb-ac3e50bf05b9682d2bede73eaaddf0a2327f15cb.zip
fsf-binutils-gdb-ac3e50bf05b9682d2bede73eaaddf0a2327f15cb.tar.gz
fsf-binutils-gdb-ac3e50bf05b9682d2bede73eaaddf0a2327f15cb.tar.bz2
2002-02-18 David O'Brien <obrien@FreeBSD.org>
* Makefile.in: Add new files earmelf_fbsd, eelf32ppc_fbsd, eelf_i386_fbsd, eelf64_ia64_fbsd, eelf_x86_64_fbsd, eelf64_sparc_fbsd, and eelf64alpha_fbsd. * configure.tgt(sparc64-*-freebsd, ia64-*-freebsd, i[3456]86-*-freebsd, x86_64-*-freebsd, arm-*-freebsd, alpha*-*-freebsd, powerpc-*-freebsd): use a FreeBSD-specific emulation rather than the psABI one. * emulparams/elf_fbsd.sh (ELF_INTERPRETER_NAME): Set appropriate value for all FreeBSD ELF systems. * emulparams/armelf_fbsd.sh: Bridge elf_fbsd.sh and the "native" psABI emulation. * emulparams/elf32ppc_fbsd.sh: Likewise. * emulparams/elf64_ia64_fbsd.sh: Likewise. * emulparams/elf64_sparc_fbsd.sh: Likewise. * emulparams/elf64alpha_fbsd.sh: Likewise. * emulparams/elf_i386_fbsd.sh: Likewise. * emulparams/elf_x86_64_fbsd.sh: Likewise. Approved by: Nick Clifton <nickc@cambridge.redhat.com> <m3pu33yy0b.fsf@north-pole.nickc.cambridge.redhat.com>
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog19
-rw-r--r--ld/Makefile.in37
-rw-r--r--ld/configure.tgt28
-rw-r--r--ld/emulparams/armelf_fbsd.sh2
-rw-r--r--ld/emulparams/elf32ppc_fbsd.sh2
-rw-r--r--ld/emulparams/elf64_ia64_fbsd.sh2
-rw-r--r--ld/emulparams/elf64_sparc_fbsd.sh2
-rw-r--r--ld/emulparams/elf64alpha_fbsd.sh2
-rw-r--r--ld/emulparams/elf_fbsd.sh1
-rw-r--r--ld/emulparams/elf_i386_fbsd.sh2
-rw-r--r--ld/emulparams/elf_x86_64_fbsd.sh2
11 files changed, 87 insertions, 12 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b72009c..97ddebb 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,22 @@
+2002-02-18 David O'Brien <obrien@FreeBSD.org>
+
+ * Makefile.in: Add new files earmelf_fbsd, eelf32ppc_fbsd,
+ eelf_i386_fbsd, eelf64_ia64_fbsd, eelf_x86_64_fbsd, eelf64_sparc_fbsd,
+ and eelf64alpha_fbsd.
+ * configure.tgt(sparc64-*-freebsd, ia64-*-freebsd, i[3456]86-*-freebsd,
+ x86_64-*-freebsd, arm-*-freebsd, alpha*-*-freebsd, powerpc-*-freebsd):
+ use a FreeBSD-specific emulation rather than the psABI one.
+ * emulparams/elf_fbsd.sh (ELF_INTERPRETER_NAME): Set appropriate value
+ for all FreeBSD ELF systems.
+ * emulparams/armelf_fbsd.sh: Bridge elf_fbsd.sh and the "native" psABI
+ emulation.
+ * emulparams/elf32ppc_fbsd.sh: Likewise.
+ * emulparams/elf64_ia64_fbsd.sh: Likewise.
+ * emulparams/elf64_sparc_fbsd.sh: Likewise.
+ * emulparams/elf64alpha_fbsd.sh: Likewise.
+ * emulparams/elf_i386_fbsd.sh: Likewise.
+ * emulparams/elf_x86_64_fbsd.sh: Likewise.
+
2002-02-18 Nick Clifton <nickc@cambridge.redhat.com>
* po/tr.po: Updated version.
diff --git a/ld/Makefile.in b/ld/Makefile.in
index 9282d06..ff6ac37 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -226,6 +226,7 @@ ALL_EMULATIONS = \
earmaoutl.o \
earmcoff.o \
earmelf.o \
+ earmelf_fbsd.o \
earmelf_linux.o \
earmelf_nbsd.o \
earmelf_oabi.o \
@@ -268,12 +269,14 @@ ALL_EMULATIONS = \
eelf32mcore.o \
eelf32openrisc.o \
eelf32ppc.o \
+ eelf32ppc_fbsd.o \
eelf32ppclinux.o \
eelf32ppcsim.o \
eelf32xstormy16.o \
eelf_i386.o \
eelf_i386_be.o \
eelf_i386_chaos.o \
+ eelf_i386_fbsd.o \
eelf_i386_ldso.o \
eelf_s390.o \
egld960.o \
@@ -378,12 +381,16 @@ ALL_EMULATIONS = \
ALL_64_EMULATIONS = \
eelf64_aix.o \
eelf64_ia64.o \
+ eelf64_ia64_fbsd.o \
eshelf64.o \
eshlelf64.o \
eelf_x86_64.o \
+ eelf_x86_64_fbsd.o \
eelf64_s390.o \
eelf64_sparc.o \
+ eelf64_sparc_fbsd.o \
eelf64alpha.o \
+ eelf64alpha_fbsd.o \
eelf64alpha_nbsd.o \
eelf64bmip.o \
eelf64btsmip.o \
@@ -1086,6 +1093,11 @@ earmelf.c: $(srcdir)/emulparams/armelf.sh \
earmelf_oabi.c: $(srcdir)/emulparams/armelf_oabi.sh \
$(srcdir)/emultempl/armelf_oabi.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} armelf_oabi "$(tdir_armelf)"
+earmelf_fbsd.c: $(srcdir)/emulparams/armelf_fbsd.sh \
+ $(srcdir)/emulparams/armelf.sh \
+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} armelf_fbsd "$(tdir_armelf_fbsd)"
earmelf_linux.c: $(srcdir)/emulparams/armelf_linux.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
@@ -1253,6 +1265,10 @@ eelf32openrisc.c: $(srcdir)/emulparams/elf32openrisc.sh \
eelf32ppc.c: $(srcdir)/emulparams/elf32ppc.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf32ppc "$(tdir_elf32ppc)"
+eelf32ppc_fbsd.c: $(srcdir)/emulparams/elf32ppc_fbsd.sh \
+ $(srcdir)/emulparams/elf32ppc.sh \
+ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} elf32ppc_fbsd "$(tdir_elf32ppc_fbsd)"
eelf32ppcsim.c: $(srcdir)/emulparams/elf32ppcsim.sh \
$(srcdir)/emulparams/elf32ppc.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
@@ -1274,6 +1290,10 @@ eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \
eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf64alpha "$(tdir_elf64alpha)"
+eelf64alpha_fbsd.c: $(srcdir)/emulparams/elf64alpha_fbsd.sh \
+ $(srcdir)/emulparams/elf64alpha.sh \
+ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} elf64alpha_fbsd "$(tdir_elf64alpha_fbsd)"
eelf64alpha_nbsd.c: $(srcdir)/emulparams/elf64alpha_nbsd.sh \
$(srcdir)/emulparams/elf64alpha.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
@@ -1289,12 +1309,21 @@ eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf64_ia64 "$(tdir_elf64_ia64)"
+eelf64_ia64_fbsd.c: $(srcdir)/emulparams/elf64_ia64_fbsd.sh \
+ $(srcdir)/emulparams/elf64_ia64.sh \
+ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} elf64_ia64_fbsd "$(tdir_elf64_ia64_fbsd)"
eelf64_s390.c: $(srcdir)/emulparams/elf64_s390.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf64_s390 "$(tdir_elf64_s390)"
eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf64_sparc "$(tdir_elf64_sparc)"
+eelf64_sparc_fbsd.c: $(srcdir)/emulparams/elf64_sparc_fbsd.sh \
+ $(srcdir)/emulparams/elf64_sparc.sh \
+ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)"
eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \
$(srcdir)/emulparams/elf32bmipn32.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
@@ -1321,12 +1350,20 @@ eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \
eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_x86_64 "$(tdir_elf_x86_64)"
+eelf_x86_64_fbsd.c: $(srcdir)/emulparams/elf_x86_64_fbsd.sh \
+ $(srcdir)/emulparams/elf_x86_64.sh \
+ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} elf_x86_64_fbsd "$(tdir_elf_x86_64_fbsd)"
eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)"
eelf_i386_chaos.c: $(srcdir)/emulparams/elf_i386_chaos.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_i386_chaos "$(tdir_elf_i386_chaos)"
+eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \
+ $(srcdir)/emulparams/elf_i386.sh \
+ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} elf_i386_fbsd "$(tdir_elf_i386_fbsd)"
eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)"
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 1833c05..7828832 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -44,8 +44,8 @@ sparc*-*-coff) targ_emul=coff_sparc ;;
sparc*-*-elf) targ_emul=elf32_sparc ;;
sparc*-*-sysv4*) targ_emul=elf32_sparc ;;
sparc64-*-freebsd* | sparcv9-*-freebsd*)
- targ_emul=elf64_sparc
- targ_extra_emuls="elf32_sparc"
+ targ_emul=elf64_sparc_fbsd
+ targ_extra_emuls="elf64_sparc elf32_sparc"
targ_extra_libpath=$targ_extra_emuls
tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
;;
@@ -102,7 +102,8 @@ i960-intel-nindy) targ_emul=gld960 ;;
i960-*-rtems*) targ_emul=gld960coff ;;
i960-*-elf*) targ_emul=elf32_i960 ;;
ia64-*-elf*) targ_emul=elf64_ia64 ;;
-ia64-*-freebsd*) targ_emul=elf64_ia64 ;;
+ia64-*-freebsd*) targ_emul=elf64_ia64_fbsd
+ targ_extra_emuls="elf64_ia64" ;;
ia64-*-netbsd*) targ_emul=elf64_ia64 ;;
ia64-*-linux*) targ_emul=elf64_ia64 ;;
ia64-*-aix*) targ_emul=elf64_aix ;;
@@ -176,10 +177,12 @@ 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])
targ_emul=i386bsd ;;
-i[3456]86-*-freebsd*) targ_emul=elf_i386 ;;
-x86_64-*-freebsd*) targ_emul=elf_x86_64
- targ_extra_emuls=elf_i386
- tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
+i[3456]86-*-freebsd*) targ_emul=elf_i386_fbsd
+ targ_extra_emuls="elf_i386 i386bsd" ;;
+x86_64-*-freebsd*) targ_emul=elf_x86_64_fbsd
+ targ_extra_emuls="elf_i386_fbsd elf_x86_64 elf_i386"
+ tdir_elf_i386=`echo ${targ_alias} \
+ | sed -e 's/x86_64/i386/'`
;;
i[3456]86-*-sysv*) targ_emul=i386coff ;;
i[3456]86-*-ptx*) targ_emul=i386coff ;;
@@ -210,7 +213,8 @@ arm-*-aout | armel-*-aout) targ_emul=armaoutl ;;
armeb-*-aout) targ_emul=armaoutb ;;
arm-*-coff) targ_emul=armcoff ;;
arm-*-vxworks) targ_emul=armcoff ;;
-arm-*-freebsd*) targ_emul=armelf ;;
+arm-*-freebsd*) targ_emul=armelf_fbsd
+ targ_extra_emuls="armelf" ;;
arm-*-netbsdelf*) targ_emul=armelf_nbsd;
targ_extra_emuls="armelf armnbsd" ;;
arm-*-netbsd*) targ_emul=armnbsd;
@@ -356,8 +360,8 @@ mmix-*-*) targ_emul=mmo
;;
mn10200-*-*) targ_emul=mn10200 ;;
mn10300-*-*) targ_emul=mn10300 ;;
-alpha*-*-freebsd*) targ_emul=elf64alpha
- targ_extra_emuls=alpha
+alpha*-*-freebsd*) targ_emul=elf64alpha_fbsd
+ targ_extra_emuls="elf64alpha alpha"
tdir_alpha=`echo ${targ_alias} | sed -e 's/freebsd/freebsdecoff/'`
;;
alpha*-*-linuxecoff*) targ_emul=alpha targ_extra_emuls=elf64alpha
@@ -380,8 +384,8 @@ or32-*-rtems) targ_emul=or32 ;;
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;
+powerpc-*-freebsd*) targ_emul=elf32ppc_fbsd;
+ targ_extra_emuls="elf32ppc elf32ppcsim";
targ_extra_libpath=elf32ppc;
tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'`
;;
diff --git a/ld/emulparams/armelf_fbsd.sh b/ld/emulparams/armelf_fbsd.sh
new file mode 100644
index 0000000..52da345
--- /dev/null
+++ b/ld/emulparams/armelf_fbsd.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/armelf.sh
+. ${srcdir}/emulparams/elf_fbsd.sh
diff --git a/ld/emulparams/elf32ppc_fbsd.sh b/ld/emulparams/elf32ppc_fbsd.sh
new file mode 100644
index 0000000..2bac85c
--- /dev/null
+++ b/ld/emulparams/elf32ppc_fbsd.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/elf32ppc.sh
+. ${srcdir}/emulparams/elf_fbsd.sh
diff --git a/ld/emulparams/elf64_ia64_fbsd.sh b/ld/emulparams/elf64_ia64_fbsd.sh
new file mode 100644
index 0000000..d9c9600
--- /dev/null
+++ b/ld/emulparams/elf64_ia64_fbsd.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/elf64_ia64.sh
+. ${srcdir}/emulparams/elf_fbsd.sh
diff --git a/ld/emulparams/elf64_sparc_fbsd.sh b/ld/emulparams/elf64_sparc_fbsd.sh
new file mode 100644
index 0000000..232a321
--- /dev/null
+++ b/ld/emulparams/elf64_sparc_fbsd.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/elf64_sparc.sh
+. ${srcdir}/emulparams/elf_fbsd.sh
diff --git a/ld/emulparams/elf64alpha_fbsd.sh b/ld/emulparams/elf64alpha_fbsd.sh
new file mode 100644
index 0000000..37fbfa2
--- /dev/null
+++ b/ld/emulparams/elf64alpha_fbsd.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/elf64alpha.sh
+. ${srcdir}/emulparams/elf_fbsd.sh
diff --git a/ld/emulparams/elf_fbsd.sh b/ld/emulparams/elf_fbsd.sh
new file mode 100644
index 0000000..2ea646e
--- /dev/null
+++ b/ld/emulparams/elf_fbsd.sh
@@ -0,0 +1 @@
+ELF_INTERPRETER_NAME=\"/usr/libexec/ld-elf.so.1\"
diff --git a/ld/emulparams/elf_i386_fbsd.sh b/ld/emulparams/elf_i386_fbsd.sh
new file mode 100644
index 0000000..237145a
--- /dev/null
+++ b/ld/emulparams/elf_i386_fbsd.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/elf_i386.sh
+. ${srcdir}/emulparams/elf_fbsd.sh
diff --git a/ld/emulparams/elf_x86_64_fbsd.sh b/ld/emulparams/elf_x86_64_fbsd.sh
new file mode 100644
index 0000000..34258cb
--- /dev/null
+++ b/ld/emulparams/elf_x86_64_fbsd.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/elf_x86_64.sh
+. ${srcdir}/emulparams/elf_fbsd.sh