forked from Imagelibrary/binutils-gdb
Let the user change the dynamic linker used by ELF code.
* ld.h (args_type): Add new field interpreter.
* lexsup.c (parse_args): Add dynamic-linker to longopts, and
handle it.
* ldmain.c (main): Initialize command_line.interpreter to NULL.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Get
the ELF backend to return the .interp section. If
command_line.interpreter is not NULL, set the contents of .interp
to it.
* ld.texinfo: Mention -dynamic-linker.
This commit is contained in:
@@ -57,7 +57,8 @@ parse_args (argc, argv)
|
||||
|
||||
#define OPTION_CALL_SHARED 150
|
||||
#define OPTION_DEFSYM (OPTION_CALL_SHARED + 1)
|
||||
#define OPTION_EB (OPTION_DEFSYM + 1)
|
||||
#define OPTION_DYNAMIC_LINKER (OPTION_DEFSYM + 1)
|
||||
#define OPTION_EB (OPTION_DYNAMIC_LINKER + 1)
|
||||
#define OPTION_EL (OPTION_EB + 1)
|
||||
#define OPTION_HELP (OPTION_EL + 1)
|
||||
#define OPTION_IGNORE (OPTION_HELP + 1)
|
||||
@@ -85,6 +86,7 @@ parse_args (argc, argv)
|
||||
{"dn", no_argument, NULL, OPTION_NON_SHARED},
|
||||
{"dp", no_argument, NULL, 'd'},
|
||||
{"dy", no_argument, NULL, OPTION_CALL_SHARED},
|
||||
{"dynamic-linker", required_argument, NULL, OPTION_DYNAMIC_LINKER},
|
||||
{"EB", no_argument, NULL, OPTION_EB},
|
||||
{"EL", no_argument, NULL, OPTION_EL},
|
||||
{"format", required_argument, NULL, 'b'},
|
||||
@@ -160,6 +162,9 @@ parse_args (argc, argv)
|
||||
parser_input = input_defsym;
|
||||
yyparse ();
|
||||
break;
|
||||
case OPTION_DYNAMIC_LINKER:
|
||||
command_line.interpreter = optarg;
|
||||
break;
|
||||
case OPTION_EB:
|
||||
/* FIXME: This is currently ignored. It means
|
||||
``produce a big-endian object file''. It could
|
||||
|
||||
Reference in New Issue
Block a user