[binutils-gdb] PR26667, Add powerpc64le-*-freebsd* support

Alan Modra amodra@sourceware.org
Tue Oct 6 06:40:13 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6afcdeb3581e99e2d4ce06d0034c7c47292aeec1

commit 6afcdeb3581e99e2d4ce06d0034c7c47292aeec1
Author: Brandon Bergren <bdragon@FreeBSD.org>
Date:   Tue Oct 6 09:19:23 2020 +1030

    PR26667, Add powerpc64le-*-freebsd* support
    
            PR 26667
    bfd/
            * config.bfd: Add powerpc64le-*-freebsd*.
            * configure.ac: Add powerpc_elf64_fbsd_le_vec.
            * elf64-ppc.c (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME): Define for
            freebsd.
            * targets.c (powerpc_elf64_fbsd_le_vec): Declare.
            (_bfd_target_vector): Add it.
            * configure: Regenerate.
    ld/
            * Makefile.am (ALL_64_EMULATION_SOURCES): Add eelf64lppc_fbsd.c.
            Include $(DEPDIR)/eelf64lppc_fbsd.Pc.
            * configure.tgt: Add powerpc64le-*-freebsd*.
            * emulparams/elf64lppc_fbsd.sh: New file.
            * Makefile.in: Regenerate.
            * po/BLD-POTFILES.in: Regenerate.

Diff:
---
 bfd/ChangeLog                   | 10 ++++++++++
 bfd/config.bfd                  |  5 +++++
 bfd/configure                   |  1 +
 bfd/configure.ac                |  1 +
 bfd/elf64-ppc.c                 |  2 ++
 bfd/targets.c                   |  2 ++
 ld/ChangeLog                    |  9 +++++++++
 ld/Makefile.am                  |  2 ++
 ld/Makefile.in                  |  3 +++
 ld/configure.tgt                |  4 ++++
 ld/emulparams/elf64lppc_fbsd.sh |  6 ++++++
 ld/po/BLD-POTFILES.in           |  1 +
 12 files changed, 46 insertions(+)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1517db98050..5121889969f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,13 @@
+2020-10-06  Brandon Bergren  <bdragon@FreeBSD.org>
+
+	* config.bfd: Add powerpc64le-*-freebsd*.
+	* configure.ac: Add powerpc_elf64_fbsd_le_vec.
+	* elf64-ppc.c (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME): Define for
+	freebsd.
+	* targets.c (powerpc_elf64_fbsd_le_vec): Declare.
+	(_bfd_target_vector): Add it.
+	* configure: Regenerate.
+
 2020-10-05  Kamil Rytarowski  <n54@gmx.com>
 
 	* config.bfd (aarch64-*-netbsd*, aarch64_be-*-netbsd*): Add target.
diff --git a/bfd/config.bfd b/bfd/config.bfd
index e2992a0df25..fdc6dbe3dda 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -1085,6 +1085,11 @@ case "${targ}" in
     targ_selvecs="powerpc_elf64_vec powerpc_elf32_vec powerpc_elf32_fbsd_vec powerpc_elf32_le_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
     want64=true
     ;;
+  powerpc64le-*-freebsd*)
+    targ_defvec=powerpc_elf64_fbsd_le_vec
+    targ_selvecs="powerpc_elf64_vec powerpc_elf32_vec powerpc_elf32_fbsd_vec powerpc_elf32_le_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
+    want64=true
+    ;;
   powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-linux* | \
   powerpc64-*-*bsd*)
     targ_defvec=powerpc_elf64_vec
diff --git a/bfd/configure b/bfd/configure
index a9c4fd93669..636f338569b 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -14914,6 +14914,7 @@ do
     powerpc_elf64_vec)		 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
     powerpc_elf64_le_vec)	 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
     powerpc_elf64_fbsd_vec)	 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
+    powerpc_elf64_fbsd_le_vec)	 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
     powerpc_xcoff_vec)		 tb="$tb coff-rs6000.lo $xcoff" ;;
     pru_elf32_vec)		 tb="$tb elf32-pru.lo elf32.lo $elf" ;;
     riscv_elf32_vec)		 tb="$tb elf32-riscv.lo elfxx-riscv.lo elf32.lo $elf" ;;
diff --git a/bfd/configure.ac b/bfd/configure.ac
index f62659acd7f..cecb0fbb761 100644
--- a/bfd/configure.ac
+++ b/bfd/configure.ac
@@ -620,6 +620,7 @@ do
     powerpc_elf64_vec)		 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
     powerpc_elf64_le_vec)	 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
     powerpc_elf64_fbsd_vec)	 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
+    powerpc_elf64_fbsd_le_vec)	 tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
     powerpc_xcoff_vec)		 tb="$tb coff-rs6000.lo $xcoff" ;;
     pru_elf32_vec)		 tb="$tb elf32-pru.lo elf32.lo $elf" ;;
     riscv_elf32_vec)		 tb="$tb elf32-riscv.lo elfxx-riscv.lo elf32.lo $elf" ;;
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 35f3cbef1ef..fa0c7f96e79 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -17717,7 +17717,9 @@ ppc64_elf_finish_dynamic_sections (bfd *output_bfd,
 /* FreeBSD support */
 
 #undef  TARGET_LITTLE_SYM
+#define TARGET_LITTLE_SYM powerpc_elf64_fbsd_le_vec
 #undef  TARGET_LITTLE_NAME
+#define TARGET_LITTLE_NAME "elf64-powerpcle-freebsd"
 
 #undef  TARGET_BIG_SYM
 #define TARGET_BIG_SYM	powerpc_elf64_fbsd_vec
diff --git a/bfd/targets.c b/bfd/targets.c
index 35492b92bbe..b18800928c4 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -838,6 +838,7 @@ extern const bfd_target powerpc_elf32_vxworks_vec;
 extern const bfd_target powerpc_elf64_vec;
 extern const bfd_target powerpc_elf64_le_vec;
 extern const bfd_target powerpc_elf64_fbsd_vec;
+extern const bfd_target powerpc_elf64_fbsd_le_vec;
 extern const bfd_target powerpc_xcoff_vec;
 extern const bfd_target pru_elf32_vec;
 extern const bfd_target riscv_elf32_vec;
@@ -1224,6 +1225,7 @@ static const bfd_target * const _bfd_target_vector[] =
 	&powerpc_elf64_vec,
 	&powerpc_elf64_le_vec,
 	&powerpc_elf64_fbsd_vec,
+	&powerpc_elf64_fbsd_le_vec,
 #endif
 #if 0
 	/* This has the same magic number as RS/6000.  */
diff --git a/ld/ChangeLog b/ld/ChangeLog
index c259b09c74a..62937a1b904 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,12 @@
+2020-10-06  Brandon Bergren  <bdragon@FreeBSD.org>
+
+	* Makefile.am (ALL_64_EMULATION_SOURCES): Add eelf64lppc_fbsd.c.
+	Include $(DEPDIR)/eelf64lppc_fbsd.Pc.
+	* configure.tgt: Add powerpc64le-*-freebsd*.
+	* emulparams/elf64lppc_fbsd.sh: New file.
+	* Makefile.in: Regenerate.
+	* po/BLD-POTFILES.in: Regenerate.
+
 2020-10-05  T.K. Chia  <u1049321969@caramail.com>
 
 	PR gas/26694
diff --git a/ld/Makefile.am b/ld/Makefile.am
index e5b19203d14..41db0c6016c 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -431,6 +431,7 @@ ALL_64_EMULATION_SOURCES = \
 	eelf64btsmip_fbsd.c \
 	eelf64hppa.c \
 	eelf64lppc.c \
+	eelf64lppc_fbsd.c \
 	eelf64lriscv.c \
 	eelf64lriscv_lp64f.c \
 	eelf64lriscv_lp64.c \
@@ -911,6 +912,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64btsmip_fbsd.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64hppa.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lppc.Pc@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lppc_fbsd.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv_lp64f.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv_lp64.Pc@am__quote@
diff --git a/ld/Makefile.in b/ld/Makefile.in
index 48ecc756906..712e3f44809 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -915,6 +915,7 @@ ALL_64_EMULATION_SOURCES = \
 	eelf64btsmip_fbsd.c \
 	eelf64hppa.c \
 	eelf64lppc.c \
+	eelf64lppc_fbsd.c \
 	eelf64lriscv.c \
 	eelf64lriscv_lp64f.c \
 	eelf64lriscv_lp64.c \
@@ -1355,6 +1356,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64btsmip_fbsd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64hppa.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lppc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lppc_fbsd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv_lp64.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv_lp64f.Po@am__quote@
@@ -2506,6 +2508,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64btsmip_fbsd.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64hppa.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lppc.Pc@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lppc_fbsd.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv_lp64f.Pc@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lriscv_lp64.Pc@am__quote@
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 32f17d24026..70359301b5e 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -636,6 +636,10 @@ powerpc64-*-freebsd*)
 			tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
 			tdir_elf32ppc_fbsd=$tdir_elf32ppc
 			;;
+powerpc64le-*-freebsd*)
+			targ_emul=elf64lppc_fbsd
+			targ_extra_emuls="elf64lppc"
+			;;
 powerpc-*-vxworks*)
 			targ_emul=elf32ppcvxworks
 			targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim"
diff --git a/ld/emulparams/elf64lppc_fbsd.sh b/ld/emulparams/elf64lppc_fbsd.sh
new file mode 100644
index 00000000000..5e70ab694ac
--- /dev/null
+++ b/ld/emulparams/elf64lppc_fbsd.sh
@@ -0,0 +1,6 @@
+source_sh ${srcdir}/emulparams/elf64lppc.sh
+source_sh ${srcdir}/emulparams/elf_fbsd.sh
+
+OUTPUT_FORMAT="elf64-powerpcle-freebsd"
+DEFAULT_PLT_STATIC_CHAIN=1
+
diff --git a/ld/po/BLD-POTFILES.in b/ld/po/BLD-POTFILES.in
index a954e775f69..2d6a30f89a4 100644
--- a/ld/po/BLD-POTFILES.in
+++ b/ld/po/BLD-POTFILES.in
@@ -177,6 +177,7 @@ eelf64btsmip.c
 eelf64btsmip_fbsd.c
 eelf64hppa.c
 eelf64lppc.c
+eelf64lppc_fbsd.c
 eelf64lriscv.c
 eelf64lriscv_lp64.c
 eelf64lriscv_lp64f.c


More information about the Binutils-cvs mailing list