diff options
author | Nick Clifton <nickc@redhat.com> | 2016-09-14 10:42:10 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2016-09-14 10:42:10 +0100 |
commit | 29063f8bfb9d68a213efd1d0ab7a66f97ed9a013 (patch) | |
tree | e3dc42be85b5b08d1854d6b174d359670a4eebdf /ld/emultempl | |
parent | d68ff01f176038a3a1f21bd2a60dd3d5a2ea0343 (diff) | |
download | gdb-29063f8bfb9d68a213efd1d0ab7a66f97ed9a013.zip gdb-29063f8bfb9d68a213efd1d0ab7a66f97ed9a013.tar.gz gdb-29063f8bfb9d68a213efd1d0ab7a66f97ed9a013.tar.bz2 |
Add support for disabling automatic generation of .eh_frame_hdr sections in ELF based linkers.
PR ld/20537
* emultempl/elf32.em: More OPTION_xxx values into an enum. Add
OPTION_NO_EH_FRAME_HDR.
(_add_options): Add support for --no-eh-frame-hdr.
* ld.texinfo: Document new option.
* lexsup.c (elf_shlib_list_options): List new option.
* NEWS: Mention the new option.
Diffstat (limited to 'ld/emultempl')
-rw-r--r-- | ld/emultempl/elf32.em | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index dd4d35a..2153bf9 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -2199,15 +2199,19 @@ fi fragment <<EOF -#define OPTION_DISABLE_NEW_DTAGS (400) -#define OPTION_ENABLE_NEW_DTAGS (OPTION_DISABLE_NEW_DTAGS + 1) -#define OPTION_GROUP (OPTION_ENABLE_NEW_DTAGS + 1) -#define OPTION_EH_FRAME_HDR (OPTION_GROUP + 1) -#define OPTION_EXCLUDE_LIBS (OPTION_EH_FRAME_HDR + 1) -#define OPTION_HASH_STYLE (OPTION_EXCLUDE_LIBS + 1) -#define OPTION_BUILD_ID (OPTION_HASH_STYLE + 1) -#define OPTION_AUDIT (OPTION_BUILD_ID + 1) -#define OPTION_COMPRESS_DEBUG (OPTION_AUDIT + 1) +enum elf_options +{ + OPTION_DISABLE_NEW_DTAGS = 400, + OPTION_ENABLE_NEW_DTAGS, + OPTION_GROUP, + OPTION_EH_FRAME_HDR, + OPTION_NO_EH_FRAME_HDR, + OPTION_EXCLUDE_LIBS, + OPTION_HASH_STYLE, + OPTION_BUILD_ID, + OPTION_AUDIT, + OPTION_COMPRESS_DEBUG +}; static void gld${EMULATION_NAME}_add_options @@ -2243,6 +2247,7 @@ fragment <<EOF {"disable-new-dtags", no_argument, NULL, OPTION_DISABLE_NEW_DTAGS}, {"enable-new-dtags", no_argument, NULL, OPTION_ENABLE_NEW_DTAGS}, {"eh-frame-hdr", no_argument, NULL, OPTION_EH_FRAME_HDR}, + {"no-eh-frame-hdr", no_argument, NULL, OPTION_NO_EH_FRAME_HDR}, {"exclude-libs", required_argument, NULL, OPTION_EXCLUDE_LIBS}, {"hash-style", required_argument, NULL, OPTION_HASH_STYLE}, EOF @@ -2322,6 +2327,10 @@ fragment <<EOF link_info.eh_frame_hdr_type = DWARF2_EH_HDR; break; + case OPTION_NO_EH_FRAME_HDR: + link_info.eh_frame_hdr_type = 0; + break; + case OPTION_GROUP: link_info.flags_1 |= (bfd_vma) DF_1_GROUP; /* Groups must be self-contained. */ |