Changeset View
Changeset View
Standalone View
Standalone View
head/devel/binutils/files/patch-aarch64.diff
Property | Old Value | New Value |
---|---|---|
fbsd:nokeywords | null | yes \ No newline at end of property |
svn:eol-style | null | native \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
diff --git bfd/config.bfd bfd/config.bfd | |||||
index 4edcc6a..4c94f69 100644 | |||||
--- bfd/config.bfd | |||||
+++ bfd/config.bfd | |||||
@@ -173,6 +173,11 @@ case "${targ}" in | |||||
targ_selvecs="bfd_elf64_littleaarch64_vec bfd_elf32_littleaarch64_vec bfd_elf32_bigaarch64_vec bfd_elf32_bigarm_vec bfd_elf32_littlearm_vec" | |||||
want64=true | |||||
;; | |||||
+ aarch64-*-freebsd*) | |||||
+ targ_defvec=bfd_elf64_littleaarch64_vec | |||||
+ targ_selvecs="bfd_elf64_bigaarch64_vec bfd_elf32_littlearm_vec bfd_elf32_bigarm_vec" | |||||
+ want64=true | |||||
+ ;; | |||||
aarch64-*-linux*) | |||||
targ_defvec=bfd_elf64_littleaarch64_vec | |||||
targ_selvecs="bfd_elf64_bigaarch64_vec bfd_elf32_littleaarch64_vec bfd_elf32_bigaarch64_vec bfd_elf32_littlearm_vec bfd_elf32_bigarm_vec" | |||||
diff --git bfd/configure bfd/configure | |||||
index bef7295..91156fd 100755 | |||||
--- bfd/configure | |||||
+++ bfd/configure | |||||
@@ -12158,7 +12158,7 @@ fi | |||||
-GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes" | |||||
+GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-unused-function" | |||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |||||
/* end confdefs.h. */ | |||||
__GNUC__ | |||||
diff --git gas/config/tc-aarch64.c gas/config/tc-aarch64.c | |||||
index 4b243ce..83e4bb9 100644 | |||||
--- gas/config/tc-aarch64.c | |||||
+++ gas/config/tc-aarch64.c | |||||
@@ -54,9 +54,6 @@ static const aarch64_feature_set *march_cpu_opt = NULL; | |||||
/* Constants for known architecture features. */ | |||||
static const aarch64_feature_set cpu_default = CPU_DEFAULT; | |||||
-static const aarch64_feature_set aarch64_arch_any = AARCH64_ANY; | |||||
-static const aarch64_feature_set aarch64_arch_none = AARCH64_ARCH_NONE; | |||||
- | |||||
#ifdef OBJ_ELF | |||||
/* Pre-defined "_GLOBAL_OFFSET_TABLE_" */ | |||||
static symbolS *GOT_symbol; | |||||
diff --git gas/configure gas/configure | |||||
index 8a89e4f..a83138e 100755 | |||||
--- gas/configure | |||||
+++ gas/configure | |||||
@@ -11575,7 +11575,7 @@ fi | |||||
using_cgen=no | |||||
-GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes" | |||||
+GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-unused-function" | |||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |||||
/* end confdefs.h. */ | |||||
__GNUC__ | |||||
diff --git ld/Makefile.am ld/Makefile.am | |||||
index 5968668..5ffb2a4 100644 | |||||
--- ld/Makefile.am | |||||
+++ ld/Makefile.am | |||||
@@ -415,6 +415,8 @@ ALL_64_EMULATION_SOURCES = \ | |||||
eaarch64elf32.c \ | |||||
eaarch64elfb.c \ | |||||
eaarch64elf32b.c \ | |||||
+ eaarch64fbsd.c \ | |||||
+ eaarch64fbsdb.c \ | |||||
eaarch64linux.c \ | |||||
eaarch64linuxb.c \ | |||||
eaarch64linux32.c \ | |||||
@@ -1524,6 +1526,14 @@ eaarch64elf32b.c: $(srcdir)/emulparams/aarch64elf32b.sh $(srcdir)/emulparams/aar | |||||
$(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \ | |||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} | |||||
${GENSCRIPTS} aarch64elf32b "$(tdir_aarch64elf32b)" | |||||
+eaarch64fbsd.c: $(srcdir)/emulparams/aarch64fbsd.sh \ | |||||
+ $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \ | |||||
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} | |||||
+ ${GENSCRIPTS} aarch64fbsd "$(tdir_aarch64fbsd)" | |||||
+eaarch64fbsdb.c: $(srcdir)/emulparams/aarch64fbsdb.sh $(srcdir)/emulparams/aarch64fbsd.sh \ | |||||
+ $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \ | |||||
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} | |||||
+ ${GENSCRIPTS} aarch64fbsdb "$(tdir_aarch64fbsdb)" | |||||
eaarch64linux.c: $(srcdir)/emulparams/aarch64linux.sh \ | |||||
$(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \ | |||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} | |||||
diff --git ld/Makefile.in ld/Makefile.in | |||||
index 59cba73..0ed674f 100644 | |||||
--- ld/Makefile.in | |||||
+++ ld/Makefile.in | |||||
@@ -722,6 +722,8 @@ ALL_64_EMULATION_SOURCES = \ | |||||
eaarch64elf32.c \ | |||||
eaarch64elfb.c \ | |||||
eaarch64elf32b.c \ | |||||
+ eaarch64fbsd.c \ | |||||
+ eaarch64fbsdb.c \ | |||||
eaarch64linux.c \ | |||||
eaarch64linuxb.c \ | |||||
eaarch64linux32.c \ | |||||
@@ -1034,6 +1036,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@ | |||||
@@ -2956,6 +2960,14 @@ eaarch64elf32b.c: $(srcdir)/emulparams/aarch64elf32b.sh $(srcdir)/emulparams/aar | |||||
$(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \ | |||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} | |||||
${GENSCRIPTS} aarch64elf32b "$(tdir_aarch64elf32b)" | |||||
+eaarch64fbsd.c: $(srcdir)/emulparams/aarch64fbsd.sh \ | |||||
+ $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \ | |||||
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} | |||||
+ ${GENSCRIPTS} aarch64fbsd "$(tdir_aarch64fbsd)" | |||||
+eaarch64fbsdb.c: $(srcdir)/emulparams/aarch64fbsdb.sh $(srcdir)/emulparams/aarch64fbsd.sh \ | |||||
+ $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \ | |||||
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} | |||||
+ ${GENSCRIPTS} aarch64fbsdb "$(tdir_aarch64fbsdb)" | |||||
eaarch64linux.c: $(srcdir)/emulparams/aarch64linux.sh \ | |||||
$(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \ | |||||
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} | |||||
diff --git ld/configure ld/configure | |||||
index 8452a13..9ef7a54 100755 | |||||
--- ld/configure | |||||
+++ ld/configure | |||||
@@ -4642,7 +4642,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; } | |||||
-GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes" | |||||
+GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-uninitialized" | |||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |||||
/* end confdefs.h. */ | |||||
__GNUC__ | |||||
diff --git ld/configure.tgt ld/configure.tgt | |||||
index c2c3eab..36416e3 100644 | |||||
--- ld/configure.tgt | |||||
+++ ld/configure.tgt | |||||
@@ -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 ld/emulparams/aarch64fbsd.sh ld/emulparams/aarch64fbsd.sh | |||||
new file mode 100644 | |||||
index 0000000..b92bde9 | |||||
--- /dev/null | |||||
+++ ld/emulparams/aarch64fbsd.sh | |||||
@@ -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 ld/emulparams/aarch64fbsdb.sh ld/emulparams/aarch64fbsdb.sh | |||||
new file mode 100644 | |||||
index 0000000..2c55dde | |||||
--- /dev/null | |||||
+++ ld/emulparams/aarch64fbsdb.sh | |||||
@@ -0,0 +1,2 @@ | |||||
+. ${srcdir}/emulparams/aarch64fbsd.sh | |||||
+OUTPUT_FORMAT="elf64-bigaarch64" |