summaryrefslogtreecommitdiff
path: root/ld/ldgram.y
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-07-10 06:50:57 +0000
committerH.J. Lu <hjl.tools@gmail.com>2012-07-10 06:50:57 +0000
commiteda680f805f57e7acae71350b98c9cfabbda9a58 (patch)
tree5198a27a8a5b8a09404620bca38bca5d7f01772c /ld/ldgram.y
parentbc9ad2e430bc419d4e37555d5d70bb6bb4fac341 (diff)
downloadbinutils-gdb-eda680f805f57e7acae71350b98c9cfabbda9a58.tar.gz
Add SORT_NONE and don't sort sort .init/.fini sections
ld/ PR ld/14156 * NEWS: Mention SORT_NONE. * ld.h (sort_type): Add by_none. * ld.texinfo: Document SORT_NONE. * ldgram.y: Handle SORT_NONE. * ldlang.c (update_wild_statements): Handle by_none. Don't sort .init/.fini sections. * ldlex.l: Add SORT_NONE. ld/testsuite/ PR ld/14156 * ld-elf/fini0.s: New file. * ld-elf/fini1.s: Likewise. * ld-elf/fini2.s: Likewise. * ld-elf/fini3.s: Likewise. * ld-elf/finin.s: Likewise. * ld-elf/foo0.s: Likewise. * ld-elf/foo1.s: Likewise. * ld-elf/foo2.s: Likewise. * ld-elf/foo3.s: Likewise. * ld-elf/foon.s: Likewise. * ld-elf/init0.s: Likewise. * ld-elf/init1.s: Likewise. * ld-elf/init2.s: Likewise. * ld-elf/init3.s: Likewise. * ld-elf/initn.s: Likewise. * ld-elf/pr14156a.d: Likewise. * ld-elf/pr14156b.d: Likewise. * ld-elf/pr14156c.d: Likewise. * ld-elf/pr14156c.t: Likewise.
Diffstat (limited to 'ld/ldgram.y')
-rw-r--r--ld/ldgram.y9
1 files changed, 8 insertions, 1 deletions
diff --git a/ld/ldgram.y b/ld/ldgram.y
index 923ac0f8f44..6e001184e09 100644
--- a/ld/ldgram.y
+++ b/ld/ldgram.y
@@ -129,7 +129,7 @@ static int error_index;
%token <token> ALIGN_K BLOCK BIND QUAD SQUAD LONG SHORT BYTE
%token SECTIONS PHDRS INSERT_K AFTER BEFORE
%token DATA_SEGMENT_ALIGN DATA_SEGMENT_RELRO_END DATA_SEGMENT_END
-%token SORT_BY_NAME SORT_BY_ALIGNMENT
+%token SORT_BY_NAME SORT_BY_ALIGNMENT SORT_NONE
%token SORT_BY_INIT_PRIORITY
%token '{' '}'
%token SIZEOF_HEADERS OUTPUT_FORMAT FORCE_COMMON_ALLOCATION OUTPUT_ARCH
@@ -467,6 +467,13 @@ wildcard_spec:
$$.exclude_name_list = NULL;
$$.section_flag_list = NULL;
}
+ | SORT_NONE '(' wildcard_name ')'
+ {
+ $$.name = $3;
+ $$.sorted = by_none;
+ $$.exclude_name_list = NULL;
+ $$.section_flag_list = NULL;
+ }
| SORT_BY_NAME '(' SORT_BY_ALIGNMENT '(' wildcard_name ')' ')'
{
$$.name = $5;