[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