summaryrefslogtreecommitdiff
path: root/ld/ldgram.y
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-07-10 06:50:54 +0000
committerH.J. Lu <hjl.tools@gmail.com>2012-07-10 06:50:54 +0000
commit6e9904258942022fdc259efc11add9f263637335 (patch)
tree359b733c8c7c585e5bf8fd9bf612e68d5cf02415 /ld/ldgram.y
parenta0dc025c30115826cbddeef648d3891ddb2b991f (diff)
downloadbinutils-redhat-6e9904258942022fdc259efc11add9f263637335.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 923ac0f8f4..6e001184e0 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;