[PATCH] ld arm config update for FreeBSD

Andreas Tobler andreast-list@fgznet.ch
Tue Jun 17 20:34:00 GMT 2014


Hello all,

this patch updates the arm*-*-freebsd* target for ld.

On one side I open the triple to allow more than only arm-*-freebsd and
on the other side I add with this patch the big endian target for
arm*b-*-freebsd*.

Ok for trunk?

Thanks,
Andreas

2014-06-17  Andreas Tobler  <andreast@fgznet.ch>

	* configure.tgt (arm*-*-freebsd*): Update targ_extra_emuls.
	(arm*b-*-freebsd*): Add target.
	* emulparams/armelfb_fbsd.sh: Added.
	* emulparams/armelf_fbsd.sh: Updated.
	* Makefile.am (ALL_EMULATION_SOURCES): Add earmelfb_fbsd.c.
	* Makefile.in: Regenerate.

-------------- next part --------------
diff --git a/ld/Makefile.am b/ld/Makefile.am
index a22006c..c537fa7 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -167,6 +167,7 @@ ALL_EMULATION_SOURCES = \
 	earmelf_nbsd.c \
 	earmelf_vxworks.c \
 	earmelfb.c \
+	earmelfb_fbsd.c \
 	earmelfb_linux.c \
 	earmelfb_linux_eabi.c \
 	earmelfb_nacl.c \
@@ -732,6 +733,11 @@ earmelfb.c: $(srcdir)/emulparams/armelfb.sh $(srcdir)/emulparams/armelf.sh \
   $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
+earmelfb_fbsd.c: $(srcdir)/emulparams/armelfb_fbsd.sh \
+  $(srcdir)/emulparams/armelf_fbsd.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
 earmelfb_linux.c: $(srcdir)/emulparams/armelfb_linux.sh \
   $(srcdir)/emulparams/armelf_linux.sh \
   $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
diff --git a/ld/Makefile.in b/ld/Makefile.in
index 1c43066..370a5a5 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -474,6 +474,7 @@ ALL_EMULATION_SOURCES = \
 	earmelf_nbsd.c \
 	earmelf_vxworks.c \
 	earmelfb.c \
+	earmelfb_fbsd.c \
 	earmelfb_linux.c \
 	earmelfb_linux_eabi.c \
 	earmelfb_nacl.c \
@@ -1065,6 +1066,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_nbsd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_vxworks.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_fbsd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_linux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_linux_eabi.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_nacl.Po@am__quote@
@@ -2170,6 +2172,11 @@ earmelfb.c: $(srcdir)/emulparams/armelfb.sh $(srcdir)/emulparams/armelf.sh \
   $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
+earmelfb_fbsd.c: $(srcdir)/emulparams/armelfb_fbsd.sh \
+  $(srcdir)/emulparams/armelf_fbsd.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
 earmelfb_linux.c: $(srcdir)/emulparams/armelfb_linux.sh \
   $(srcdir)/emulparams/armelf_linux.sh \
   $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 0eb743d..a230207 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -81,9 +81,11 @@ arm-*-pe)		targ_emul=armpe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;;
 arm-*-aout | armel-*-aout) targ_emul=armaoutl ;;
 armeb-*-aout)		targ_emul=armaoutb ;;
 arm-*-coff)		targ_emul=armcoff ;;
-arm-*-freebsd* | arm-*-kfreebsd*-gnu)
+arm*b-*-freebsd*)	targ_emul=armelfb_fbsd
+			targ_extra_emuls="armelf_fbsd armelf" ;;
+arm*-*-freebsd* | arm-*-kfreebsd*-gnu)
 	       		targ_emul=armelf_fbsd
-			targ_extra_emuls="armelf" ;;
+			targ_extra_emuls="armelfb_fbsd armelf" ;;
 armeb-*-netbsdelf*)	targ_emul=armelfb_nbsd;
 			targ_extra_emuls="armelf_nbsd armelf armnbsd" ;;
 arm-*-netbsdelf*)	targ_emul=armelf_nbsd;
diff --git a/ld/emulparams/armelf_fbsd.sh b/ld/emulparams/armelf_fbsd.sh
index ee9520d..5b3ccc6 100644
--- a/ld/emulparams/armelf_fbsd.sh
+++ b/ld/emulparams/armelf_fbsd.sh
@@ -1,3 +1,8 @@
 . ${srcdir}/emulparams/armelf.sh
 . ${srcdir}/emulparams/elf_fbsd.sh
 TARGET2_TYPE=got-rel
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+GENERATE_PIE_SCRIPT=yes
+
+unset STACK_ADDR
+unset EMBEDDED
diff --git a/ld/emulparams/armelfb_fbsd.sh b/ld/emulparams/armelfb_fbsd.sh
new file mode 100644
index 0000000..a28b476
--- /dev/null
+++ b/ld/emulparams/armelfb_fbsd.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/armelf_fbsd.sh
+OUTPUT_FORMAT="elf32-bigarm"


More information about the Binutils mailing list