aboutsummaryrefslogtreecommitdiff
path: root/ld/emultempl
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2016-09-14 10:42:10 +0100
committerNick Clifton <nickc@redhat.com>2016-09-14 10:42:10 +0100
commit29063f8bfb9d68a213efd1d0ab7a66f97ed9a013 (patch)
treee3dc42be85b5b08d1854d6b174d359670a4eebdf /ld/emultempl
parentd68ff01f176038a3a1f21bd2a60dd3d5a2ea0343 (diff)
downloadgdb-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.em27
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. */