Add support for configuring an aarch64-freebsd target.
authorAndrew Turner <andrew@freebsd.org>
Thu, 2 Apr 2015 14:07:27 +0000 (15:07 +0100)
committerNick Clifton <nickc@redhat.com>
Thu, 2 Apr 2015 14:07:27 +0000 (15:07 +0100)
ld * Makefile.am: Add FreeBSD aarch64 files.
* Makefile.in: Regenerate.
* configure.tgt: Add aarch64-*-freebsd* target triple.
* emulparams/aarch64fbsd.sh: New file.
* emulparams/aarch64fbsdb.sh: New file.

bfd * config.bfd: Add aarch64-*-freebsd* target triple.

bfd/ChangeLog
bfd/config.bfd
ld/ChangeLog
ld/Makefile.am
ld/Makefile.in
ld/configure.tgt
ld/emulparams/aarch64fbsd.sh [new file with mode: 0644]
ld/emulparams/aarch64fbsdb.sh [new file with mode: 0644]

index 1f3dc15b49a02dae82b21a263d4504b2a8e06dc9..810705f996655df0e1e6dbb81cd94e8654c155a1 100644 (file)
@@ -1,3 +1,7 @@
+2015-04-02  Andrew Turner  <andrew@freebsd.org>
+
+       * config.bfd: Add aarch64-*-freebsd* target triple.
+
 2015-04-02  H.J. Lu  <hongjiu.lu@intel.com>
 
        * configure: Regenerated.
index 4799da862870250008f377998b69f598457da3bf..2fdec8b5b01093bb4938c785eced2c18190e1e0f 100644 (file)
@@ -178,6 +178,11 @@ case "${targ}" in
     targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec"
     want64=true
     ;;
+  aarch64-*-freebsd*)
+    targ_defvec=aarch64_elf64_le_vec
+    targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
+    want64=true
+    ;;
   aarch64-*-linux*)
     targ_defvec=aarch64_elf64_le_vec
     targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec"
index 1348f46c730ac99db1d4660ab307bbd6e822c957..91e8c11ec0945c76038fa50df3361b9c4a160bdc 100644 (file)
@@ -1,3 +1,11 @@
+2015-04-02  Andrew Turner <andrew@freebsd.org>
+
+       * Makefile.am: Add FreeBSD aarch64 files.
+       * Makefile.in: Regenerate.
+       * configure.tgt: Add aarch64-*-freebsd* target triple.
+       * emulparams/aarch64fbsd.sh: New file.
+       * emulparams/aarch64fbsdb.sh: New file.
+
 2015-04-01  H.J. Lu  <hongjiu.lu@intel.com>
 
        * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Work
index 14cfeddea60a1bf196d1283ba384e1c05c85c183..80c748755c63b2fda377494f84cfce157fc6ad01 100644 (file)
@@ -426,6 +426,8 @@ ALL_64_EMULATION_SOURCES = \
        eaarch64elf32.c \
        eaarch64elfb.c \
        eaarch64elf32b.c \
+       eaarch64fbsd.c \
+       eaarch64fbsdb.c \
        eaarch64linux.c \
        eaarch64linuxb.c \
        eaarch64linux32.c \
@@ -1584,6 +1586,14 @@ eaarch64elf32b.c: $(srcdir)/emulparams/aarch64elf32b.sh $(srcdir)/emulparams/aar
   $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
+eaarch64fbsd.c: $(srcdir)/emulparams/aarch64fbsd.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64fbsdb.c: $(srcdir)/emulparams/aarch64fbsdb.sh $(srcdir)/emulparams/aarch64fbsd.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
 eaarch64linux.c: $(srcdir)/emulparams/aarch64linux.sh \
   $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
index eba36a09efd89274e7976c3dd7eef5c08f51f06a..81159cb851acc7b29cb7397945088d006db8f45c 100644 (file)
@@ -751,6 +751,8 @@ ALL_64_EMULATION_SOURCES = \
        eaarch64elf32.c \
        eaarch64elfb.c \
        eaarch64elf32b.c \
+       eaarch64fbsd.c \
+       eaarch64fbsdb.c \
        eaarch64linux.c \
        eaarch64linuxb.c \
        eaarch64linux32.c \
@@ -1081,6 +1083,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf32.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf32b.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elfb.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64fbsd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64fbsdb.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32b.Po@am__quote@
@@ -3076,6 +3080,14 @@ eaarch64elf32b.c: $(srcdir)/emulparams/aarch64elf32b.sh $(srcdir)/emulparams/aar
   $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
+eaarch64fbsd.c: $(srcdir)/emulparams/aarch64fbsd.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64fbsdb.c: $(srcdir)/emulparams/aarch64fbsdb.sh $(srcdir)/emulparams/aarch64fbsd.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
 eaarch64linux.c: $(srcdir)/emulparams/aarch64linux.sh \
   $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
index 4b967febfe74c6a9f9d4062c497d9f09a1ed63a8..4a45f14e8586586f625fd605ffafbf6ddb5a7d6b 100644 (file)
@@ -49,6 +49,8 @@ aarch64_be-*-elf)     targ_emul=aarch64elfb
                        targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf" ;;
 aarch64-*-elf)         targ_emul=aarch64elf
                        targ_extra_emuls="aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb" ;;
+aarch64-*-freebsd*)    targ_emul=aarch64fbsd
+                       targ_extra_emuls="aarch64fbsdb aarch64elf" ;;
 aarch64_be-*-linux*)   targ_emul=aarch64linuxb
                        targ_extra_libpath="aarch64linux aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
                        targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath" ;;
diff --git a/ld/emulparams/aarch64fbsd.sh b/ld/emulparams/aarch64fbsd.sh
new file mode 100644 (file)
index 0000000..b92bde9
--- /dev/null
@@ -0,0 +1,37 @@
+ARCH=aarch64
+MACHINE=
+NOP=0
+
+SCRIPT_NAME=elf
+ELFSIZE=64
+OUTPUT_FORMAT="elf64-littleaarch64"
+BIG_OUTPUT_FORMAT="elf64-bigaarch64"
+LITTLE_OUTPUT_FORMAT="elf64-littleaarch64"
+NO_REL_RELOCS=yes
+
+TEMPLATE_NAME=elf32
+EXTRA_EM_FILE=aarch64elf
+
+GENERATE_SHLIB_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
+
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
+SEPARATE_GOTPLT=24
+IREL_IN_PLT=
+
+TEXT_START_ADDR=0x400000
+
+DATA_START_SYMBOLS='PROVIDE (__data_start = .);';
+
+# AArch64 does not support .s* sections.
+NO_SMALL_DATA=yes
+
+OTHER_BSS_SYMBOLS='__bss_start__ = .;'
+OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ;'
+OTHER_END_SYMBOLS='__end__ = . ;'
+
+OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'
+ATTRS_SECTIONS='.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }'
+# Ensure each PLT entry is aligned to a cache line.
+PLT=".plt          ${RELOCATING-0} : ALIGN(16) { *(.plt)${IREL_IN_PLT+ *(.iplt)} }"
diff --git a/ld/emulparams/aarch64fbsdb.sh b/ld/emulparams/aarch64fbsdb.sh
new file mode 100644 (file)
index 0000000..2c55dde
--- /dev/null
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/aarch64fbsd.sh
+OUTPUT_FORMAT="elf64-bigaarch64"
This page took 0.037357 seconds and 4 git commands to generate.