binutils-gdb/ld/emulparams/x86-64-plt.sh
H.J. Lu f68c9d09a3 ld: Add --enable-mark-plt configure option
Add --enable-mark-plt linker configure option to mark PLT entries with
DT_X86_64_PLT, DT_X86_64_PLTSZ and DT_X86_64_PLTENT dynamic tags by
default.

	* NEWS: Mention -z mark-plt/-z nomark-plt and --enable-mark-plt.
	* config.in: Regenerated.
	* configure: Likewise.
	* configure.ac: Add --enable-mark-plt.
	(DEFAULT_LD_Z_MARK_PLT): New AC_DEFINE_UNQUOTED.
	* emulparams/x86-64-plt.sh (PARSE_AND_LIST_OPTIONS_X86_64_PLT):
	Support DEFAULT_LD_Z_MARK_PLT.
	* emultempl/elf-x86.em (elf_x86_64_before_parse): New function.
	(LDEMUL_BEFORE_PARSE): New.  Set to elf_x86_64_before_parse for
	x86-64 targets.
2024-01-09 06:45:38 -08:00

20 lines
774 B
Bash

PARSE_AND_LIST_OPTIONS_X86_64_PLT='
if (DEFAULT_LD_Z_MARK_PLT != 0)
fprintf (file, _("\
-z mark-plt Mark PLT with dynamic tags (default)\n\
-z nomark-plt Do not mark PLT with dynamic tags\n"));
else
fprintf (file, _("\
-z mark-plt Mark PLT with dynamic tags\n\
-z nomark-plt Do not mark PLT with dynamic tags (default)\n"));
'
PARSE_AND_LIST_ARGS_CASE_Z_X86_64_PLT='
else if (strcmp (optarg, "mark-plt") == 0)
params.mark_plt = 1;
else if (strcmp (optarg, "nomark-plt") == 0)
params.mark_plt = 0;
'
PARSE_AND_LIST_OPTIONS="$PARSE_AND_LIST_OPTIONS $PARSE_AND_LIST_OPTIONS_X86_64_PLT"
PARSE_AND_LIST_ARGS_CASE_Z="$PARSE_AND_LIST_ARGS_CASE_Z $PARSE_AND_LIST_ARGS_CASE_Z_X86_64_PLT"