+2016-09-14 Nick Clifton <nickc@redhat.com>
+
+ 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.
+
2016-09-06 H.J. Lu <hongjiu.lu@intel.com>
PR ld/20550
Changes in 2.28:
+* The command line option --no-eh-frame-hdr can now be used in ELF based
+ linkers to disable the automatic generation of .eh_frame_hdr sections.
+
* Add --in-implib=<infile> to the ARM linker to enable specifying a set of
Secure Gateway veneers that must exist in the output import library specified
by --out-implib=<outfile> and the address they must have. As such,
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
{"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
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. */
call before the linker has a chance to wrap it to @code{malloc}.
@kindex --eh-frame-hdr
+@kindex --no-eh-frame-hdr
@item --eh-frame-hdr
-Request creation of @code{.eh_frame_hdr} section and ELF
-@code{PT_GNU_EH_FRAME} segment header.
+@itemx --no-eh-frame-hdr
+Request (@option{--eh-frame-hdr}) or suppress
+(@option{--no-eh-frame-hdr}) the creation of @code{.eh_frame_hdr}
+section and ELF @code{PT_GNU_EH_FRAME} segment header.
@kindex --ld-generated-unwind-info
@item --no-ld-generated-unwind-info