aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrandon Bergren <bdragon@FreeBSD.org>2020-10-06 09:19:23 +1030
committerAlan Modra <amodra@gmail.com>2020-10-06 17:09:27 +1030
commit6afcdeb3581e99e2d4ce06d0034c7c47292aeec1 (patch)
tree742611b296f94d1680d5d4b06e0872bad3935afd
parent0897537869c1b81955140ae4bd693e504ac05016 (diff)
downloadgdb-6afcdeb3581e99e2d4ce06d0034c7c47292aeec1.zip
gdb-6afcdeb3581e99e2d4ce06d0034c7c47292aeec1.tar.gz
gdb-6afcdeb3581e99e2d4ce06d0034c7c47292aeec1.tar.bz2
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.
-rw-r--r--bfd/ChangeLog10
-rw-r--r--bfd/config.bfd5
-rwxr-xr-xbfd/configure1
-rw-r--r--bfd/configure.ac1
-rw-r--r--bfd/elf64-ppc.c2
-rw-r--r--bfd/targets.c2
-rw-r--r--ld/ChangeLog9
-rw-r--r--ld/Makefile.am2
-rw-r--r--ld/Makefile.in3
-rw-r--r--ld/configure.tgt4
-rw-r--r--ld/emulparams/elf64lppc_fbsd.sh6
-rw-r--r--ld/po/BLD-POTFILES.in1
12 files changed, 46 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1517db9..5121889 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 e2992a0..fdc6dbe 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 a9c4fd9..636f338 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 f62659a..cecb0fb 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 35f3cbe..fa0c7f9 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 35492b9..b188009 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 c259b09..62937a1 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 e5b1920..41db0c6 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 48ecc75..712e3f4 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 32f17d2..7035930 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 0000000..5e70ab6
--- /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 a954e77..2d6a30f 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