summaryrefslogtreecommitdiff
path: root/bfd/section.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2011-05-07 14:12:59 +0000
committerH.J. Lu <hjl.tools@gmail.com>2011-05-07 14:12:59 +0000
commit310fd250b9bdab1eae5303f363577e30b2932a77 (patch)
tree728a50e468368a77342a5f692954d19fc0c938d6 /bfd/section.c
parent70778fc76803fd416f0bb898773811f12baa0714 (diff)
Reverse copy .ctors/.dtors sections if needed.
bfd/ 2011-05-07 H.J. Lu <hongjiu.lu@intel.com> PR ld/12730 * elf.c (_bfd_elf_section_offset): Check SEC_ELF_REVERSE_COPY. * elflink.c (elf_link_input_bfd): Reverse copy .ctors/.dtors sections if needed. * section.c (SEC_ELF_REVERSE_COPY): New. * bfd-in2.h: Regenerated. ld/testsuite/ 2011-05-07 H.J. Lu <hongjiu.lu@intel.com> PR ld/12730 * ld-elf/elf.exp (array_tests): Add "pr12730". (array_tests_pie): New. (array_tests_static): Add -static for "static init array mixed". Add "static pr12730". Run array_tests_pie for Linux. * ld-elf/init-mixed.c (ctor1007): Renamed to ... (ctor1007a): This. (ctor1007b): New. (ctors1007): Remove ctor1007. Add ctor1007b and ctor1007a. (dtor1007): Renamed to ... (dtor1007a): This. (dtor1007b): New. (dtors1007): Remove dtor1007. Add dtor1007b and dtor1007a. (ctor65535): Renamed to ... (ctor65535a): This. (ctor65535b): New. (ctors65535): Remove ctor65535. Add ctor65535b and ctor65535a. (dtor65535): Renamed to ... (dtor65535a): This. (dtor65535b): New. (dtors65535): Remove dtor65535. Add dtor65535b and dtor65535a. * ld-elf/pr12730.cc: New. * ld-elf/pr12730.out: Likewise.
Diffstat (limited to 'bfd/section.c')
-rw-r--r--bfd/section.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/bfd/section.c b/bfd/section.c
index 65ac5e6f7a..3cd7e658e7 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -327,6 +327,11 @@ CODE_FRAGMENT
. sections. *}
.#define SEC_COFF_SHARED_LIBRARY 0x4000000
.
+. {* This input section should be copied to output in reverse order
+. as an array of pointers. This is for ELF linker internal use
+. only. *}
+.#define SEC_ELF_REVERSE_COPY 0x4000000
+.
. {* This section contains data which may be shared with other
. executables or shared objects. This is for COFF only. *}
.#define SEC_COFF_SHARED 0x8000000