diff options
Diffstat (limited to 'ld/lexsup.c')
-rw-r--r-- | ld/lexsup.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/ld/lexsup.c b/ld/lexsup.c index 4d526b0..19cb037 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -107,6 +107,8 @@ enum option_values OPTION_VERSION, OPTION_VERSION_SCRIPT, OPTION_VERSION_EXPORTS_SECTION, + OPTION_DYNAMIC_LIST, + OPTION_DYNAMIC_LIST_CPP_TYPEINFO, OPTION_WARN_COMMON, OPTION_WARN_CONSTRUCTORS, OPTION_WARN_FATAL, @@ -501,6 +503,10 @@ static const struct ld_option ld_options[] = OPTION_VERSION_EXPORTS_SECTION }, '\0', N_("SYMBOL"), N_("Take export symbols list from .exports, using\n" "\t\t\t\tSYMBOL as the version."), TWO_DASHES }, + { {"dynamic-list-cpp-typeinfo", no_argument, NULL, OPTION_DYNAMIC_LIST_CPP_TYPEINFO}, + '\0', NULL, N_("Use C++ typeinfo dynamic list"), TWO_DASHES }, + { {"dynamic-list", required_argument, NULL, OPTION_DYNAMIC_LIST}, + '\0', N_("FILE"), N_("Read dynamic list"), TWO_DASHES }, { {"warn-common", no_argument, NULL, OPTION_WARN_COMMON}, '\0', NULL, N_("Warn about duplicate common symbols"), TWO_DASHES }, { {"warn-constructors", no_argument, NULL, OPTION_WARN_CONSTRUCTORS}, @@ -1236,6 +1242,23 @@ parse_args (unsigned argc, char **argv) .exports sections. */ command_line.version_exports_section = optarg; break; + case OPTION_DYNAMIC_LIST_CPP_TYPEINFO: + lang_append_dynamic_list_cpp_typeinfo (); + break; + case OPTION_DYNAMIC_LIST: + /* This option indicates a small script that only specifies + a dynamic list. Read it, but don't assume that we've + seen a linker script. */ + { + FILE *hold_script_handle; + + hold_script_handle = saved_script_handle; + ldfile_open_command_file (optarg); + saved_script_handle = hold_script_handle; + parser_input = input_dynamic_list; + yyparse (); + } + break; case OPTION_WARN_COMMON: config.warn_common = TRUE; break; |