2002-02-18 David O'Brien <obrien@FreeBSD.org>
authorDavid O'Brien <obrien@FreeBSD.org>
Mon, 18 Feb 2002 09:38:01 +0000 (09:38 +0000)
committerDavid O'Brien <obrien@FreeBSD.org>
Mon, 18 Feb 2002 09:38:01 +0000 (09:38 +0000)
* 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>

ld/ChangeLog
ld/Makefile.in
ld/configure.tgt
ld/emulparams/armelf_fbsd.sh [new file with mode: 0644]
ld/emulparams/elf32ppc_fbsd.sh [new file with mode: 0644]
ld/emulparams/elf64_ia64_fbsd.sh [new file with mode: 0644]
ld/emulparams/elf64_sparc_fbsd.sh [new file with mode: 0644]
ld/emulparams/elf64alpha_fbsd.sh [new file with mode: 0644]
ld/emulparams/elf_fbsd.sh [new file with mode: 0644]
ld/emulparams/elf_i386_fbsd.sh [new file with mode: 0644]
ld/emulparams/elf_x86_64_fbsd.sh [new file with mode: 0644]

index b72009c..97ddebb 100644 (file)
@@ -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.
index 9282d06..ff6ac37 100644 (file)
@@ -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)"
index 1833c05..7828832 100644 (file)
@@ -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 (file)
index 0000000..52da345
--- /dev/null
@@ -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 (file)
index 0000000..2bac85c
--- /dev/null
@@ -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 (file)
index 0000000..d9c9600
--- /dev/null
@@ -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 (file)
index 0000000..232a321
--- /dev/null
@@ -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 (file)
index 0000000..37fbfa2
--- /dev/null
@@ -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 (file)
index 0000000..2ea646e
--- /dev/null
@@ -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 (file)
index 0000000..237145a
--- /dev/null
@@ -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 (file)
index 0000000..34258cb
--- /dev/null
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/elf_x86_64.sh
+. ${srcdir}/emulparams/elf_fbsd.sh