- Backport changes from binutils-cvs needed to support 32- and 64-bit
powerpc PR: ports/163041 Submitted by: andreast@ Approved by: maintainer timeouet (3 weeks)
This commit is contained in:
parent
daa6d85477
commit
a5123c5f6c
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=287969
11 changed files with 231 additions and 0 deletions
26
devel/binutils/files/patch-bfd__config.bfd
Normal file
26
devel/binutils/files/patch-bfd__config.bfd
Normal file
|
@ -0,0 +1,26 @@
|
|||
--- ./bfd/config.bfd.orig 2011-07-29 00:35:13.000000000 +0200
|
||||
+++ ./bfd/config.bfd 2011-12-21 09:44:40.000000000 +0100
|
||||
@@ -1128,6 +1128,11 @@
|
||||
targ_selvecs=rs6000coff_vec
|
||||
want64=true
|
||||
;;
|
||||
+ powerpc64-*-freebsd*)
|
||||
+ targ_defvec=bfd_elf64_powerpc_freebsd_vec
|
||||
+ targ_selvecs="bfd_elf64_powerpc_vec bfd_elf32_powerpc_vec bfd_elf32_powerpc_freebsd_vec bfd_elf32_powerpcle_vec rs6000coff_vec rs6000coff64_vec aix5coff64_vec"
|
||||
+ want64=true
|
||||
+ ;;
|
||||
powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-linux* | \
|
||||
powerpc64-*-*bsd*)
|
||||
targ_defvec=bfd_elf64_powerpc_vec
|
||||
@@ -1140,6 +1145,11 @@
|
||||
want64=true
|
||||
;;
|
||||
#endif
|
||||
+ powerpc-*-*freebsd*)
|
||||
+ targ_defvec=bfd_elf32_powerpc_freebsd_vec
|
||||
+ targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec bfd_elf32_powerpcle_vec ppcboot_vec"
|
||||
+ targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec bfd_elf64_powerpc_freebsd_vec"
|
||||
+ ;;
|
||||
powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
|
||||
powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \
|
||||
powerpc-*-chorus*)
|
18
devel/binutils/files/patch-bfd__configure
Normal file
18
devel/binutils/files/patch-bfd__configure
Normal file
|
@ -0,0 +1,18 @@
|
|||
--- ./bfd/configure.orig 2011-11-21 12:55:48.000000000 +0100
|
||||
+++ ./bfd/configure 2011-12-21 09:44:40.000000000 +0100
|
||||
@@ -15262,6 +15262,7 @@
|
||||
bfd_elf32_pjl_vec) tb="$tb elf32-pj.lo elf32.lo $elf";;
|
||||
bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_powerpcle_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
+ bfd_elf32_powerpc_freebsd_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_powerpc_vxworks_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_rx_le_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_rx_be_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
|
||||
@@ -15327,6 +15328,7 @@
|
||||
bfd_elf64_mmix_vec) tb="$tb elf64-mmix.lo elf64.lo $elf" target_size=64 ;;
|
||||
bfd_elf64_powerpc_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_powerpcle_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
|
||||
+ bfd_elf64_powerpc_freebsd_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
|
||||
bfd_elf64_s390_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;;
|
||||
bfd_elf64_sh64_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
|
||||
bfd_elf64_sh64l_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
|
36
devel/binutils/files/patch-bfd__elf32-ppc.c
Normal file
36
devel/binutils/files/patch-bfd__elf32-ppc.c
Normal file
|
@ -0,0 +1,36 @@
|
|||
--- ./bfd/elf32-ppc.c.orig 2011-11-21 10:29:21.000000000 +0100
|
||||
+++ ./bfd/elf32-ppc.c 2011-12-21 09:44:40.000000000 +0100
|
||||
@@ -9127,6 +9127,24 @@
|
||||
|
||||
#include "elf32-target.h"
|
||||
|
||||
+/* FreeBSD Target */
|
||||
+
|
||||
+#undef TARGET_LITTLE_SYM
|
||||
+#undef TARGET_LITTLE_NAME
|
||||
+
|
||||
+#undef TARGET_BIG_SYM
|
||||
+#define TARGET_BIG_SYM bfd_elf32_powerpc_freebsd_vec
|
||||
+#undef TARGET_BIG_NAME
|
||||
+#define TARGET_BIG_NAME "elf32-powerpc-freebsd"
|
||||
+
|
||||
+#undef ELF_OSABI
|
||||
+#define ELF_OSABI ELFOSABI_FREEBSD
|
||||
+
|
||||
+#undef elf32_bed
|
||||
+#define elf32_bed elf32_powerpc_fbsd_bed
|
||||
+
|
||||
+#include "elf32-target.h"
|
||||
+
|
||||
/* VxWorks Target */
|
||||
|
||||
#undef TARGET_LITTLE_SYM
|
||||
@@ -9137,6 +9155,8 @@
|
||||
#undef TARGET_BIG_NAME
|
||||
#define TARGET_BIG_NAME "elf32-powerpc-vxworks"
|
||||
|
||||
+#undef ELF_OSABI
|
||||
+
|
||||
/* VxWorks uses the elf default section flags for .plt. */
|
||||
static const struct bfd_elf_special_section *
|
||||
ppc_elf_vxworks_get_sec_type_attr (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
|
25
devel/binutils/files/patch-bfd__elf64-ppc.c
Normal file
25
devel/binutils/files/patch-bfd__elf64-ppc.c
Normal file
|
@ -0,0 +1,25 @@
|
|||
--- ./bfd/elf64-ppc.c.orig 2011-11-21 10:29:24.000000000 +0100
|
||||
+++ ./bfd/elf64-ppc.c 2011-12-21 09:44:40.000000000 +0100
|
||||
@@ -13897,3 +13897,22 @@
|
||||
}
|
||||
|
||||
#include "elf64-target.h"
|
||||
+
|
||||
+/* FreeBSD support */
|
||||
+
|
||||
+#undef TARGET_LITTLE_SYM
|
||||
+#undef TARGET_LITTLE_NAME
|
||||
+
|
||||
+#undef TARGET_BIG_SYM
|
||||
+#define TARGET_BIG_SYM bfd_elf64_powerpc_freebsd_vec
|
||||
+#undef TARGET_BIG_NAME
|
||||
+#define TARGET_BIG_NAME "elf64-powerpc-freebsd"
|
||||
+
|
||||
+#undef ELF_OSABI
|
||||
+#define ELF_OSABI ELFOSABI_FREEBSD
|
||||
+
|
||||
+#undef elf64_bed
|
||||
+#define elf64_bed elf64_powerpc_fbsd_bed
|
||||
+
|
||||
+#include "elf64-target.h"
|
||||
+
|
34
devel/binutils/files/patch-bfd__targets.c
Normal file
34
devel/binutils/files/patch-bfd__targets.c
Normal file
|
@ -0,0 +1,34 @@
|
|||
--- ./bfd/targets.c.orig 2011-08-17 02:39:38.000000000 +0200
|
||||
+++ ./bfd/targets.c 2011-12-21 09:44:40.000000000 +0100
|
||||
@@ -667,6 +667,7 @@
|
||||
extern const bfd_target bfd_elf32_pjl_vec;
|
||||
extern const bfd_target bfd_elf32_powerpc_vec;
|
||||
extern const bfd_target bfd_elf32_powerpcle_vec;
|
||||
+extern const bfd_target bfd_elf32_powerpc_freebsd_vec;
|
||||
extern const bfd_target bfd_elf32_powerpc_vxworks_vec;
|
||||
extern const bfd_target bfd_elf32_rx_le_vec;
|
||||
extern const bfd_target bfd_elf32_rx_be_vec;
|
||||
@@ -729,6 +730,7 @@
|
||||
extern const bfd_target bfd_elf64_mmix_vec;
|
||||
extern const bfd_target bfd_elf64_powerpc_vec;
|
||||
extern const bfd_target bfd_elf64_powerpcle_vec;
|
||||
+extern const bfd_target bfd_elf64_powerpc_freebsd_vec;
|
||||
extern const bfd_target bfd_elf64_s390_vec;
|
||||
extern const bfd_target bfd_elf64_sh64_vec;
|
||||
extern const bfd_target bfd_elf64_sh64l_vec;
|
||||
@@ -1033,6 +1035,7 @@
|
||||
&bfd_elf32_powerpc_vec,
|
||||
&bfd_elf32_powerpc_vxworks_vec,
|
||||
&bfd_elf32_powerpcle_vec,
|
||||
+ &bfd_elf32_powerpc_freebsd_vec,
|
||||
&bfd_elf32_rx_be_vec,
|
||||
&bfd_elf32_rx_be_ns_vec,
|
||||
&bfd_elf32_rx_le_vec,
|
||||
@@ -1095,6 +1098,7 @@
|
||||
&bfd_elf64_mmix_vec,
|
||||
&bfd_elf64_powerpc_vec,
|
||||
&bfd_elf64_powerpcle_vec,
|
||||
+ &bfd_elf64_powerpc_freebsd_vec,
|
||||
&bfd_elf64_s390_vec,
|
||||
&bfd_elf64_sh64_vec,
|
||||
&bfd_elf64_sh64l_vec,
|
13
devel/binutils/files/patch-gas__config__tc-ppc.c
Normal file
13
devel/binutils/files/patch-gas__config__tc-ppc.c
Normal file
|
@ -0,0 +1,13 @@
|
|||
--- ./gas/config/tc-ppc.c.orig 2011-06-14 11:03:51.000000000 +0200
|
||||
+++ ./gas/config/tc-ppc.c 2011-12-21 09:44:40.000000000 +0100
|
||||
@@ -1370,7 +1370,9 @@
|
||||
#endif
|
||||
#endif
|
||||
#ifdef OBJ_ELF
|
||||
-# ifdef TE_VXWORKS
|
||||
+# ifdef TE_FreeBSD
|
||||
+ return (ppc_obj64 ? "elf64-powerpc-freebsd" : "elf32-powerpc-freebsd");
|
||||
+# elif defined (TE_VXWORKS)
|
||||
return "elf32-powerpc-vxworks";
|
||||
# else
|
||||
return (target_big_endian
|
29
devel/binutils/files/patch-ld__Makefile.in
Normal file
29
devel/binutils/files/patch-ld__Makefile.in
Normal file
|
@ -0,0 +1,29 @@
|
|||
--- ./ld/Makefile.in.orig 2011-07-22 22:22:37.000000000 +0200
|
||||
+++ ./ld/Makefile.in 2011-12-21 09:44:40.000000000 +0100
|
||||
@@ -783,6 +783,7 @@
|
||||
eelf64ltsmip_fbsd.c \
|
||||
eelf64mmix.c \
|
||||
eelf64ppc.c \
|
||||
+ eelf64ppc_fbsd.c \
|
||||
eelf64tilegx.c \
|
||||
eelf_l1om.c \
|
||||
eelf_l1om_fbsd.c \
|
||||
@@ -1180,6 +1181,7 @@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64ltsmip_fbsd.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64mmix.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64ppc.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64ppc_fbsd.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64tilegx.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_be.Po@am__quote@
|
||||
@@ -3425,6 +3427,10 @@
|
||||
ldemul-list.h \
|
||||
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf64ppc "$(tdir_elf64ppc)"
|
||||
+eelf64ppc_fbsd.c: $(srcdir)/emulparams/elf64ppc_fbsd.sh \
|
||||
+ $(srcdir)/emultempl/ppc64elf.em ldemul-list.h \
|
||||
+ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
+ ${GENSCRIPTS} elf64ppc_fbsd "$(tdir_elf64ppc_fbsd)"
|
||||
eelf64tilegx.c: $(srcdir)/emulparams/elf64tilegx.sh \
|
||||
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
|
||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
22
devel/binutils/files/patch-ld__configure.tgt
Normal file
22
devel/binutils/files/patch-ld__configure.tgt
Normal file
|
@ -0,0 +1,22 @@
|
|||
--- ./ld/configure.tgt.orig 2011-11-21 10:29:37.000000000 +0100
|
||||
+++ ./ld/configure.tgt 2011-12-21 09:44:40.000000000 +0100
|
||||
@@ -453,10 +453,17 @@
|
||||
pj*-*-*) targ_emul=pjelf
|
||||
;;
|
||||
powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu)
|
||||
- targ_emul=elf32ppc_fbsd;
|
||||
- targ_extra_emuls="elf32ppc elf32ppcsim";
|
||||
+ targ_emul=elf32ppc_fbsd
|
||||
+ targ_extra_emuls="elf32ppc elf32ppcsim"
|
||||
targ_extra_libpath=elf32ppc;
|
||||
tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'` ;;
|
||||
+powerpc64-*-freebsd*)
|
||||
+ targ_emul=elf64ppc_fbsd
|
||||
+ targ_extra_emuls="elf64ppc elf32ppc_fbsd elf32ppc"
|
||||
+ targ_extra_libpath="elf32ppc_fbsd elf32ppc"
|
||||
+ tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
|
||||
+ tdir_elf32ppc_fbsd=$tdir_elf32ppc
|
||||
+ ;;
|
||||
powerpc*-*-linux*) case "${targ}" in
|
||||
*64*) targ_emul=elf64ppc
|
||||
targ_extra_emuls="elf32ppclinux elf32ppc elf32ppcsim"
|
|
@ -0,0 +1,8 @@
|
|||
--- ./ld/emulparams/elf32ppc_fbsd.sh.orig 2002-02-18 10:38:01.000000000 +0100
|
||||
+++ ./ld/emulparams/elf32ppc_fbsd.sh 2011-12-21 09:44:40.000000000 +0100
|
||||
@@ -1,2 +1,5 @@
|
||||
. ${srcdir}/emulparams/elf32ppc.sh
|
||||
. ${srcdir}/emulparams/elf_fbsd.sh
|
||||
+
|
||||
+OUTPUT_FORMAT="elf32-powerpc-freebsd"
|
||||
+
|
|
@ -0,0 +1,9 @@
|
|||
--- ./ld/emulparams/elf64ppc_fbsd.sh.orig 2011-12-21 09:44:40.000000000 +0100
|
||||
+++ ./ld/emulparams/elf64ppc_fbsd.sh 2011-12-21 09:44:40.000000000 +0100
|
||||
@@ -0,0 +1,6 @@
|
||||
+. ${srcdir}/emulparams/elf64ppc.sh
|
||||
+. ${srcdir}/emulparams/elf_fbsd.sh
|
||||
+
|
||||
+OUTPUT_FORMAT="elf64-powerpc-freebsd"
|
||||
+DEFAULT_PLT_STATIC_CHAIN=1
|
||||
+
|
11
devel/binutils/files/patch-ld__emultempl__ppc64elf.em
Normal file
11
devel/binutils/files/patch-ld__emultempl__ppc64elf.em
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- ./ld/emultempl/ppc64elf.em.orig 2011-11-21 10:29:39.000000000 +0100
|
||||
+++ ./ld/emultempl/ppc64elf.em 2011-12-21 09:44:40.000000000 +0100
|
||||
@@ -62,7 +62,7 @@
|
||||
static int no_toc_sort = 0;
|
||||
|
||||
/* Set if PLT call stubs should load r11. */
|
||||
-static int plt_static_chain = 0;
|
||||
+static int plt_static_chain = ${DEFAULT_PLT_STATIC_CHAIN-0};
|
||||
|
||||
/* Whether to emit symbols for stubs. */
|
||||
static int emit_stub_syms = -1;
|
Loading…
Reference in a new issue