diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2010-12-15 14:56:40 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2010-12-15 14:56:40 +0000 |
commit | 02ecc8e968f7524f4c41cd7942adff4ff31afe5c (patch) | |
tree | d380df5339289f8d485d5cf384ff3285f3516647 /ld/ldgram.y | |
parent | sim: add --map-info option (diff) | |
download | binutils-gdb-02ecc8e968f7524f4c41cd7942adff4ff31afe5c.tar.gz binutils-gdb-02ecc8e968f7524f4c41cd7942adff4ff31afe5c.tar.bz2 binutils-gdb-02ecc8e968f7524f4c41cd7942adff4ff31afe5c.zip |
Add SORT_BY_INIT_PRIORITY.
bfd/
2010-12-15 H.J. Lu <hongjiu.lu@intel.com>
* elf.c (_bfd_elf_new_section_hook): Special handling for
.init_array/.fini_array output sections.
ld/
2010-12-15 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am (GENSCRIPTS): Add @enable_initfini_array@.
* NEWS: Mention SORT_BY_INIT_PRIORITY.
* configure.in: Add AC_CANONICAL_BUILD.
Add --enable-initfini-array.
* genscripts.sh (ENABLE_INITFINI_ARRAY): New.
* ld.h (sort_type): Add by_init_priority.
* ld.texinfo: Document SORT_BY_INIT_PRIORITY.
* ldgram.y (SORT_BY_INIT_PRIORITY): New.
(wildcard_spec): Handle SORT_BY_INIT_PRIORITY.
* ldlang.c (get_init_priority): New.
(compare_section): Use get_init_priority for by_init_priority.
* ldlex.l (SORT_BY_INIT_PRIORITY): New.
* scripttempl/elf.sc: Support ENABLE_INITFINI_ARRAY.
* Makefile.in: Regenerated.
* aclocal.m4: Regenerated.
* config.in: Likewise.
* configure: Likewise.
ld/testsuite/
2010-12-15 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/elf.exp (array_tests): Add init-mixed.
(array_tests_static): Likewise.
Also delete tmpdir/init-mixed.
* ld-elf/init-mixed.c: New.
* ld-elf/init-mixed.out: Likewise.
Diffstat (limited to 'ld/ldgram.y')
-rw-r--r-- | ld/ldgram.y | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/ld/ldgram.y b/ld/ldgram.y index 69a84c72982..ed0aaa76259 100644 --- a/ld/ldgram.y +++ b/ld/ldgram.y @@ -126,6 +126,7 @@ static int error_index; %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_INIT_PRIORITY %token '{' '}' %token SIZEOF_HEADERS OUTPUT_FORMAT FORCE_COMMON_ALLOCATION OUTPUT_ARCH %token INHIBIT_COMMON_ALLOCATION @@ -482,6 +483,12 @@ wildcard_spec: $$.sorted = by_name; $$.exclude_name_list = $5; } + | SORT_BY_INIT_PRIORITY '(' wildcard_name ')' + { + $$.name = $3; + $$.sorted = by_init_priority; + $$.exclude_name_list = NULL; + } ; exclude_name_list: |