summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2017-09-28 13:08:28 +0000
committerChristoph Muellner <christoph.muellner@theobroma-systems.com>2018-04-27 12:21:38 +0200
commitaebbf1f37938b6143d62be77275cd1744551d6bb (patch)
tree0eda2f86e6977f27c2340a2ab578d7ee0b9a5acf
parentd28b83f9d0284a6a7c55638ff25715d650b8012a (diff)
Avoid assembler warnings from AArch64 constructor/destructor priorities.
Many GCC tests fail for AArch64 with current binutils because of assembler warnings of the form "Warning: ignoring incorrect section type for .init_array.00100". The same issue was fixed for ARM in r247015 by using SECTION_NOTYPE when creating those sections; this patch applies the same fix to AArch64. Tested with no regressions with cross to aarch64-linux-gnu. * config/aarch64/aarch64.c (aarch64_elf_asm_constructor) (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section when creating .init_array and .fini_array sections with priority specified. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253252 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/config/aarch64/aarch64.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 91bc84012fdd..1cea7c7aaf51 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -5810,7 +5810,7 @@ aarch64_elf_asm_constructor (rtx symbol, int priority)
-Wformat-truncation false positive, use a larger size. */
char buf[23];
snprintf (buf, sizeof (buf), ".init_array.%.5u", priority);
- s = get_section (buf, SECTION_WRITE, NULL);
+ s = get_section (buf, SECTION_WRITE | SECTION_NOTYPE, NULL);
switch_to_section (s);
assemble_align (POINTER_SIZE);
assemble_aligned_integer (POINTER_BYTES, symbol);
@@ -5830,7 +5830,7 @@ aarch64_elf_asm_destructor (rtx symbol, int priority)
-Wformat-truncation false positive, use a larger size. */
char buf[23];
snprintf (buf, sizeof (buf), ".fini_array.%.5u", priority);
- s = get_section (buf, SECTION_WRITE, NULL);
+ s = get_section (buf, SECTION_WRITE | SECTION_NOTYPE, NULL);
switch_to_section (s);
assemble_align (POINTER_SIZE);
assemble_aligned_integer (POINTER_BYTES, symbol);