aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-09-28 14:08:28 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2017-09-28 14:08:28 +0100
commitfcef3abdc5b8ff77404e1cab97570a8431bcde5d (patch)
tree45878272f006c8d8b063fce30c9a5010c4817f6f /gcc
parent78c98bf2d98bba45b128e1461f79b85ba12d2775 (diff)
downloadgcc-fcef3abdc5b8ff77404e1cab97570a8431bcde5d.zip
gcc-fcef3abdc5b8ff77404e1cab97570a8431bcde5d.tar.gz
gcc-fcef3abdc5b8ff77404e1cab97570a8431bcde5d.tar.bz2
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. From-SVN: r253252
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/aarch64/aarch64.c4
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 71b1408..718f042 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2017-09-28 Joseph Myers <joseph@codesourcery.com>
+
+ * 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.
+
2017-09-27 Christophe Lyon <christophe.lyon@linaro.org>
PR target/71727
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 4c411df..23f5aff 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -6095,7 +6095,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);
@@ -6115,7 +6115,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);