From 1804dbce5a7c0298a98dcedde14ab4d432fad754 Mon Sep 17 00:00:00 2001 From: Andreas Tobler Date: Wed, 18 Jun 2014 21:58:19 +0200 Subject: [PATCH] ld/ARM: Add target arm*b-*-freebsd*, update target arm*-*-freebsd*. ld/ChangeLog: 2014-06-18 Andreas Tobler * 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. --- ld/ChangeLog | 9 +++++++++ ld/Makefile.am | 6 ++++++ ld/Makefile.in | 7 +++++++ ld/configure.tgt | 6 ++++-- ld/emulparams/armelf_fbsd.sh | 5 +++++ ld/emulparams/armelfb_fbsd.sh | 2 ++ 6 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 ld/emulparams/armelfb_fbsd.sh diff --git a/ld/ChangeLog b/ld/ChangeLog index ef8234e..c3c2906 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,12 @@ +2014-06-18 Andreas Tobler + + * 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. + 2014-06-16 Alan Modra * scripttempl/elf.sc: Edit out __rela_iplt symbol assignments from 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" -- 2.7.4