diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2015-08-25 02:24:51 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2015-08-25 02:24:51 +0000 |
commit | e9f37c36b5e31af9528bbfb2a4d1ef289feb0b41 (patch) | |
tree | e95f036098d3d7dbd8893c6dcbe59ada5621c886 | |
parent | ae81cbc1762739c5c83dbc1f97d7b28a99ef3d89 (diff) |
Unbreak binutils on sparc64, hppa (and probably some others).
Jumbo merges are NOT WELCOME. They have to be seperated out and tested.
-rw-r--r-- | gnu/usr.bin/binutils-2.17/bfd/elf-bfd.h | 11 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/bfd/elf32-i386.c | 4 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/bfd/elf64-x86-64.c | 4 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/bfd/elflink.c | 48 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/bfd/elfxx-ia64.c | 4 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/include/bfdlink.h | 20 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/ld/Makefile.am | 10 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/ld/Makefile.in | 10 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/ld/ld.texinfo | 34 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/ld/ldgram.y | 30 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/ld/ldlang.c | 72 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/ld/ldlang.h | 3 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/ld/ldlex.h | 1 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/ld/ldlex.l | 1 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/ld/ldmain.c | 3 | ||||
-rw-r--r-- | gnu/usr.bin/binutils-2.17/ld/lexsup.c | 41 |
16 files changed, 24 insertions, 272 deletions
diff --git a/gnu/usr.bin/binutils-2.17/bfd/elf-bfd.h b/gnu/usr.bin/binutils-2.17/bfd/elf-bfd.h index fd428dc3d80..e6971087236 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/elf-bfd.h +++ b/gnu/usr.bin/binutils-2.17/bfd/elf-bfd.h @@ -155,8 +155,6 @@ struct elf_link_hash_entry unsigned int hidden : 1; /* Symbol was forced to local scope due to a version script file. */ unsigned int forced_local : 1; - /* Symbol was forced to be dynamic due to a version script file. */ - unsigned int dynamic : 1; /* Symbol was marked during garbage collection. */ unsigned int mark : 1; /* Symbol is referenced by a non-GOT/non-PLT relocation. This is @@ -1807,10 +1805,6 @@ extern bfd_boolean bfd_elf_link_record_dynamic_symbol extern int bfd_elf_link_record_local_dynamic_symbol (struct bfd_link_info *, bfd *, long); -extern void bfd_elf_link_mark_dynamic_symbol - (struct bfd_link_info *, struct elf_link_hash_entry *, - Elf_Internal_Sym *); - extern bfd_boolean _bfd_elf_close_and_cleanup (bfd *); @@ -1961,9 +1955,4 @@ extern bfd_boolean _sh_elf_set_mach_from_flags } \ while (0) -/* Will a symbol be bound to the the definition within the shared - library, if any. */ -#define SYMBOLIC_BIND(INFO, H) \ - ((INFO)->symbolic || ((INFO)->dynamic && !(H)->dynamic)) - #endif /* _LIBELF_H_ */ diff --git a/gnu/usr.bin/binutils-2.17/bfd/elf32-i386.c b/gnu/usr.bin/binutils-2.17/bfd/elf32-i386.c index edb19e20665..081432a1bf8 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/elf32-i386.c +++ b/gnu/usr.bin/binutils-2.17/bfd/elf32-i386.c @@ -1165,7 +1165,7 @@ elf_i386_check_relocs (bfd *abfd, && (sec->flags & SEC_ALLOC) != 0 && (r_type != R_386_PC32 || (h != NULL - && (! SYMBOLIC_BIND (info, h) + && (! info->symbolic || h->root.type == bfd_link_hash_defweak || !h->def_regular)))) || (ELIMINATE_COPY_RELOCS @@ -2652,7 +2652,7 @@ elf_i386_relocate_section (bfd *output_bfd, && h->dynindx != -1 && (r_type == R_386_PC32 || !info->shared - || !SYMBOLIC_BIND (info, h) + || !info->symbolic || !h->def_regular)) outrel.r_info = ELF32_R_INFO (h->dynindx, r_type); else diff --git a/gnu/usr.bin/binutils-2.17/bfd/elf64-x86-64.c b/gnu/usr.bin/binutils-2.17/bfd/elf64-x86-64.c index cad580e165d..752d6be212e 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/elf64-x86-64.c +++ b/gnu/usr.bin/binutils-2.17/bfd/elf64-x86-64.c @@ -994,7 +994,7 @@ elf64_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec, && (r_type != R_X86_64_PC32) && (r_type != R_X86_64_PC64)) || (h != NULL - && (! SYMBOLIC_BIND (info, h) + && (! info->symbolic || h->root.type == bfd_link_hash_defweak || !h->def_regular)))) || (ELIMINATE_COPY_RELOCS @@ -2442,7 +2442,7 @@ elf64_x86_64_relocate_section (bfd *output_bfd, struct bfd_link_info *info, || r_type == R_X86_64_PC32 || r_type == R_X86_64_PC64 || !info->shared - || !SYMBOLIC_BIND (info, h) + || !info->symbolic || !h->def_regular)) { outrel.r_info = ELF64_R_INFO (h->dynindx, r_type); diff --git a/gnu/usr.bin/binutils-2.17/bfd/elflink.c b/gnu/usr.bin/binutils-2.17/bfd/elflink.c index 365a531d0dc..75fff26a14b 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/elflink.c +++ b/gnu/usr.bin/binutils-2.17/bfd/elflink.c @@ -425,30 +425,7 @@ bfd_elf_link_record_dynamic_symbol (struct bfd_link_info *info, return TRUE; } - -/* Mark a symbol dynamic. */ - -void -bfd_elf_link_mark_dynamic_symbol (struct bfd_link_info *info, - struct elf_link_hash_entry *h, - Elf_Internal_Sym *sym) -{ - struct bfd_elf_dynamic_list *d = info->dynamic_list; - - /* It may be called more than once on the same H. */ - if(h->dynamic || info->relocatable) - return; - - if ((info->dynamic_data - && (h->type == STT_OBJECT - || (sym != NULL - && ELF_ST_TYPE (sym->st_info) == STT_OBJECT))) - || (d != NULL - && h->root.type == bfd_link_hash_new - && (*d->match) (&d->head, NULL, h->root.root.string))) - h->dynamic = 1; -} - + /* Record an assignment to a symbol made by a linker script. We need this in case some dynamic object refers to this symbol. */ @@ -482,10 +459,7 @@ bfd_elf_record_link_assignment (bfd *output_bfd, } if (h->root.type == bfd_link_hash_new) - { - bfd_elf_link_mark_dynamic_symbol (info, h, NULL); - h->non_elf = 0; - } + h->non_elf = 0; /* If this symbol is being provided by the linker script, and it is currently defined by a dynamic object, but not by a regular @@ -842,11 +816,6 @@ _bfd_elf_merge_symbol (bfd *abfd, || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; - /* We have to check it for every instance since the first few may be - refereences and not all compilers emit symbol type for undefined - symbols. */ - bfd_elf_link_mark_dynamic_symbol (info, h, sym); - /* If we just created the symbol, mark it as being an ELF symbol. Other than that, there is nothing to do--there is no merge issue with a newly defined symbol--so we just return. */ @@ -1605,10 +1574,6 @@ _bfd_elf_export_symbol (struct elf_link_hash_entry *h, void *data) { struct elf_info_failed *eif = data; - /* Ignore this if we won't export it. */ - if (!eif->info->export_dynamic && !h->dynamic) - return TRUE; - /* Ignore indirect symbols. These are added by the versioning code. */ if (h->root.type == bfd_link_hash_indirect) return TRUE; @@ -2362,7 +2327,7 @@ _bfd_elf_fix_symbol_flags (struct elf_link_hash_entry *h, if (h->needs_plt && eif->info->shared && is_elf_hash_table (eif->info->hash) - && (SYMBOLIC_BIND (eif->info, h) + && (eif->info->symbolic || eif->info->static_link || ELF_ST_VISIBILITY (h->other) != STV_DEFAULT) && h->def_regular) { @@ -2591,7 +2556,7 @@ _bfd_elf_dynamic_symbol_p (struct elf_link_hash_entry *h, /* Identify the cases where name binding rules say that a visible symbol resolves locally. */ - binding_stays_local_p = info->executable || SYMBOLIC_BIND (info, h); + binding_stays_local_p = info->executable || info->symbolic; switch (ELF_ST_VISIBILITY (h->other)) { @@ -2654,7 +2619,7 @@ _bfd_elf_symbol_refs_local_p (struct elf_link_hash_entry *h, /* At this point, we know the symbol is defined and dynamic. In an executable it must resolve locally, likewise when building symbolic shared libraries. */ - if (info->executable || SYMBOLIC_BIND (info, h)) + if (info->executable || info->symbolic) return TRUE; /* Now deal with defined dynamic symbols in shared libraries. Ones @@ -5152,8 +5117,7 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd, /* If we are supposed to export all symbols into the dynamic symbol table (this is not the normal case), then do so. */ - if (info->export_dynamic - || (info->executable && info->dynamic)) + if (info->export_dynamic) { elf_link_hash_traverse (elf_hash_table (info), _bfd_elf_export_symbol, diff --git a/gnu/usr.bin/binutils-2.17/bfd/elfxx-ia64.c b/gnu/usr.bin/binutils-2.17/bfd/elfxx-ia64.c index 799d568bade..ca7eb6cc9a4 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/elfxx-ia64.c +++ b/gnu/usr.bin/binutils-2.17/bfd/elfxx-ia64.c @@ -2733,7 +2733,7 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs) have yet been processed. Do something with what we know, as this may help reduce memory usage and processing time later. */ maybe_dynamic = (h && ((!info->executable - && (!SYMBOLIC_BIND (info, h) + && (!info->symbolic || info->unresolved_syms_in_shared_libs == RM_IGNORE)) || !h->def_regular || h->root.type == bfd_link_hash_defweak)); @@ -2905,7 +2905,7 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs) have yet been processed. Do something with what we know, as this may help reduce memory usage and processing time later. */ maybe_dynamic = (h && ((!info->executable - && (!SYMBOLIC_BIND (info, h) + && (!info->symbolic || info->unresolved_syms_in_shared_libs == RM_IGNORE)) || !h->def_regular || h->root.type == bfd_link_hash_defweak)); diff --git a/gnu/usr.bin/binutils-2.17/include/bfdlink.h b/gnu/usr.bin/binutils-2.17/include/bfdlink.h index 8139617b435..f4b7aa7cfa4 100644 --- a/gnu/usr.bin/binutils-2.17/include/bfdlink.h +++ b/gnu/usr.bin/binutils-2.17/include/bfdlink.h @@ -221,8 +221,6 @@ enum report_method RM_GENERATE_ERROR }; -struct bfd_elf_dynamic_list; - /* This structure holds all the information needed to communicate between BFD and the linker when doing a link. */ @@ -326,13 +324,6 @@ struct bfd_link_info /* TRUE if unreferenced sections should be removed. */ unsigned int gc_sections: 1; - /* TRUE if all data symbols should be dynamic. */ - unsigned int dynamic_data: 1; - - /* TRUE if some symbols have to be dynamic, controlled by - --dynamic-list command line options. */ - unsigned int dynamic: 1; - /* What to do with unresolved symbols in an object file. When producing executables the default is GENERATE_ERROR. When producing shared libraries the default is IGNORE. The @@ -431,9 +422,6 @@ struct bfd_link_info /* Start and end of RELRO region. */ bfd_vma relro_start, relro_end; - - /* List of symbols should be dynamic. */ - struct bfd_elf_dynamic_list *dynamic_list; }; /* This structures holds a set of callback functions. These are @@ -727,12 +715,4 @@ struct bfd_elf_version_tree struct bfd_elf_version_expr *prev, const char *sym); }; -struct bfd_elf_dynamic_list -{ - struct bfd_elf_version_expr_head head; - struct bfd_elf_version_expr *(*match) - (struct bfd_elf_version_expr_head *head, - struct bfd_elf_version_expr *prev, const char *sym); -}; - #endif diff --git a/gnu/usr.bin/binutils-2.17/ld/Makefile.am b/gnu/usr.bin/binutils-2.17/ld/Makefile.am index d7cefce34be..d0dbdc7944d 100644 --- a/gnu/usr.bin/binutils-2.17/ld/Makefile.am +++ b/gnu/usr.bin/binutils-2.17/ld/Makefile.am @@ -76,19 +76,19 @@ CC_FOR_TARGET = ` \ fi; \ fi` -CXX = g++ +CXX = gcc CXX_FOR_TARGET = ` \ - if [ -f $$r/../gcc/g++ ] ; then \ + if [ -f $$r/../gcc/xgcc ] ; then \ if [ -f $$r/../newlib/Makefile ] ; then \ - echo $$r/../gcc/g++ -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \ + echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \ else \ - echo $$r/../gcc/g++ -B$$r/../gcc/; \ + echo $$r/../gcc/xgcc -B$$r/../gcc/; \ fi; \ else \ if [ "@host@" = "@target@" ] ; then \ echo $(CXX); \ else \ - echo g++ | sed '$(transform)'; \ + echo gcc | sed '$(transform)'; \ fi; \ fi` diff --git a/gnu/usr.bin/binutils-2.17/ld/Makefile.in b/gnu/usr.bin/binutils-2.17/ld/Makefile.in index 31f8d892564..5436b9f2832 100644 --- a/gnu/usr.bin/binutils-2.17/ld/Makefile.in +++ b/gnu/usr.bin/binutils-2.17/ld/Makefile.in @@ -305,19 +305,19 @@ CC_FOR_TARGET = ` \ fi; \ fi` -CXX = g++ +CXX = gcc CXX_FOR_TARGET = ` \ - if [ -f $$r/../gcc/g++ ] ; then \ + if [ -f $$r/../gcc/xgcc ] ; then \ if [ -f $$r/../newlib/Makefile ] ; then \ - echo $$r/../gcc/g++ -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \ + echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \ else \ - echo $$r/../gcc/g++ -B$$r/../gcc/; \ + echo $$r/../gcc/xgcc -B$$r/../gcc/; \ fi; \ else \ if [ "@host@" = "@target@" ] ; then \ echo $(CXX); \ else \ - echo g++ | sed '$(transform)'; \ + echo gcc | sed '$(transform)'; \ fi; \ fi` diff --git a/gnu/usr.bin/binutils-2.17/ld/ld.texinfo b/gnu/usr.bin/binutils-2.17/ld/ld.texinfo index 3b6a51edcd0..6d94f6cb33b 100644 --- a/gnu/usr.bin/binutils-2.17/ld/ld.texinfo +++ b/gnu/usr.bin/binutils-2.17/ld/ld.texinfo @@ -489,9 +489,9 @@ back to the symbols defined by the program, rather than some other dynamic object, then you will probably need to use this option when linking the program itself. -You can also use the dynamic list to control what symbols should +You can also use the version script to control what symbols should be added to the dynamic symbol table if the output format supports it. -See the description of @samp{--dynamic-list}. +See the description of @samp{--version-script} in @ref{VERSION}. @ifclear SingleFormat @cindex big-endian objects @@ -1125,36 +1125,6 @@ for a program linked against a shared library to override the definition within the shared library. This option is only meaningful on ELF platforms which support shared libraries. -@kindex -Bsymbolic-functions -@item -Bsymbolic-functions -When creating a shared library, bind references to global function -symbols to the definition within the shared library, if any. -@option{-Bsymbolic-functions} is an alias for @option{--dynamic-list-data}. -This option is only meaningful on ELF platforms which support shared -libraries. - -@kindex --dynamic-list=@var{dynamic-list-file} -@item --dynamic-list=@var{dynamic-list-file} -Specify the name of a dynamic list file to the linker. This is -typically used when creating shared libraries to specify a list of -global symbols whose references shouldn't be bound to the definition -within the shared library, or creating dynamically linked executables -to specify a list of symbols which should be added to the symbol table -in the executable. This option is only meaningful on ELF platforms -which support shared libraries. - -The format of the dynamic list is the same as the version node without -scope and node name. See @ref{VERSION} for more information. - -@kindex --dynamic-list-data -@item --dynamic-list-data -Include all global data symbols to the dynamic list. - -@kindex --dynamic-list-cpp-new -@item --dynamic-list-cpp-new -Provide the builtin dynamic list for C++ operator new and delete. It -is mainly useful for building shared libstdc++. - @kindex --check-sections @kindex --no-check-sections @item --check-sections diff --git a/gnu/usr.bin/binutils-2.17/ld/ldgram.y b/gnu/usr.bin/binutils-2.17/ld/ldgram.y index a022e9e2471..890b64dfcdb 100644 --- a/gnu/usr.bin/binutils-2.17/ld/ldgram.y +++ b/gnu/usr.bin/binutils-2.17/ld/ldgram.y @@ -155,7 +155,6 @@ static int error_index; %type <versyms> vers_defns %type <versnode> vers_tag %type <deflist> verdep -%token INPUT_DYNAMIC_LIST %% @@ -163,7 +162,6 @@ file: INPUT_SCRIPT script_file | INPUT_MRI_SCRIPT mri_script_file | INPUT_VERSION_SCRIPT version_script_file - | INPUT_DYNAMIC_LIST dynamic_list_file | INPUT_DEFSYM defsym_expr ; @@ -1140,34 +1138,6 @@ phdr_val: } ; -dynamic_list_file: - { - ldlex_version_file (); - PUSH_ERROR (_("dynamic list")); - } - dynamic_list_nodes - { - ldlex_popstate (); - POP_ERROR (); - } - ; - -dynamic_list_nodes: - dynamic_list_node - | dynamic_list_nodes dynamic_list_node - ; - -dynamic_list_node: - '{' dynamic_list_tag '}' ';' - ; - -dynamic_list_tag: - vers_defns ';' - { - lang_append_dynamic_list ($1); - } - ; - /* This syntax is used within an external version script file. */ version_script_file: diff --git a/gnu/usr.bin/binutils-2.17/ld/ldlang.c b/gnu/usr.bin/binutils-2.17/ld/ldlang.c index 6086cea8480..099a4ccb507 100644 --- a/gnu/usr.bin/binutils-2.17/ld/ldlang.c +++ b/gnu/usr.bin/binutils-2.17/ld/ldlang.c @@ -85,8 +85,6 @@ static void print_input_section (asection *); static bfd_boolean lang_one_common (struct bfd_link_hash_entry *, void *); static void lang_record_phdrs (void); static void lang_do_version_exports_section (void); -static void lang_finalize_version_expr_head - (struct bfd_elf_version_expr_head *); /* Exported variables. */ lang_output_section_statement_type *abs_output_section; @@ -5458,10 +5456,6 @@ relax_sections (void) void lang_process (void) { - /* Finalize dynamic list. */ - if (link_info.dynamic_list) - lang_finalize_version_expr_head (&link_info.dynamic_list->head); - current_target = default_target; /* Open the output file. */ @@ -6768,69 +6762,3 @@ lang_add_unique (const char *name) ent->next = unique_section_list; unique_section_list = ent; } - -/* Append the list of dynamic symbols to the existing one. */ - -void -lang_append_dynamic_list (struct bfd_elf_version_expr *dynamic) -{ - if (link_info.dynamic_list) - { - struct bfd_elf_version_expr *tail; - for (tail = dynamic; tail->next != NULL; tail = tail->next) - ; - tail->next = link_info.dynamic_list->head.list; - link_info.dynamic_list->head.list = dynamic; - } - else - { - struct bfd_elf_dynamic_list *d; - - d = xcalloc (1, sizeof *d); - d->head.list = dynamic; - d->match = lang_vers_match; - link_info.dynamic_list = d; - } -} - -/* Append the list of C++ typeinfo dynamic symbols to the existing - one. */ - -void -lang_append_dynamic_list_cpp_typeinfo (void) -{ - const char * symbols [] = - { - "typeinfo name for*", - "typeinfo for*" - }; - struct bfd_elf_version_expr *dynamic = NULL; - unsigned int i; - - for (i = 0; i < ARRAY_SIZE (symbols); i++) - dynamic = lang_new_vers_pattern (dynamic, symbols [i], "C++", - FALSE); - - lang_append_dynamic_list (dynamic); -} - -/* Append the list of C++ operator new and delete dynamic symbols to the - existing one. */ - -void -lang_append_dynamic_list_cpp_new (void) -{ - const char * symbols [] = - { - "operator new*", - "operator delete*" - }; - struct bfd_elf_version_expr *dynamic = NULL; - unsigned int i; - - for (i = 0; i < ARRAY_SIZE (symbols); i++) - dynamic = lang_new_vers_pattern (dynamic, symbols [i], "C++", - FALSE); - - lang_append_dynamic_list (dynamic); -} diff --git a/gnu/usr.bin/binutils-2.17/ld/ldlang.h b/gnu/usr.bin/binutils-2.17/ld/ldlang.h index 5f226bf9296..8b0d492ed09 100644 --- a/gnu/usr.bin/binutils-2.17/ld/ldlang.h +++ b/gnu/usr.bin/binutils-2.17/ld/ldlang.h @@ -592,9 +592,6 @@ extern struct bfd_elf_version_deps *lang_add_vers_depend (struct bfd_elf_version_deps *, const char *); extern void lang_register_vers_node (const char *, struct bfd_elf_version_tree *, struct bfd_elf_version_deps *); -extern void lang_append_dynamic_list (struct bfd_elf_version_expr *); -extern void lang_append_dynamic_list_cpp_typeinfo (void); -extern void lang_append_dynamic_list_cpp_new (void); bfd_boolean unique_section_p (const asection *); extern void lang_add_unique diff --git a/gnu/usr.bin/binutils-2.17/ld/ldlex.h b/gnu/usr.bin/binutils-2.17/ld/ldlex.h index f274c6826df..d35ead6a648 100644 --- a/gnu/usr.bin/binutils-2.17/ld/ldlex.h +++ b/gnu/usr.bin/binutils-2.17/ld/ldlex.h @@ -30,7 +30,6 @@ typedef enum input_enum { input_script, input_mri_script, input_version_script, - input_dynamic_list, input_defsym } input_type; diff --git a/gnu/usr.bin/binutils-2.17/ld/ldlex.l b/gnu/usr.bin/binutils-2.17/ld/ldlex.l index 3b20653a731..56ec39164b4 100644 --- a/gnu/usr.bin/binutils-2.17/ld/ldlex.l +++ b/gnu/usr.bin/binutils-2.17/ld/ldlex.l @@ -132,7 +132,6 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* case input_script: return INPUT_SCRIPT; break; case input_mri_script: return INPUT_MRI_SCRIPT; break; case input_version_script: return INPUT_VERSION_SCRIPT; break; - case input_dynamic_list: return INPUT_DYNAMIC_LIST; break; case input_defsym: return INPUT_DEFSYM; break; default: abort (); } diff --git a/gnu/usr.bin/binutils-2.17/ld/ldmain.c b/gnu/usr.bin/binutils-2.17/ld/ldmain.c index 251d07aee43..84c26962324 100644 --- a/gnu/usr.bin/binutils-2.17/ld/ldmain.c +++ b/gnu/usr.bin/binutils-2.17/ld/ldmain.c @@ -320,9 +320,6 @@ main (int argc, char **argv) link_info.relax_pass = 1; link_info.warn_shared_textrel = FALSE; link_info.gc_sections = FALSE; - link_info.dynamic = FALSE; - link_info.dynamic_list = NULL; - link_info.dynamic_data = FALSE; ldfile_add_arch (""); diff --git a/gnu/usr.bin/binutils-2.17/ld/lexsup.c b/gnu/usr.bin/binutils-2.17/ld/lexsup.c index fe61209334c..654edb52f27 100644 --- a/gnu/usr.bin/binutils-2.17/ld/lexsup.c +++ b/gnu/usr.bin/binutils-2.17/ld/lexsup.c @@ -107,10 +107,6 @@ enum option_values OPTION_VERSION, OPTION_VERSION_SCRIPT, OPTION_VERSION_EXPORTS_SECTION, - OPTION_DYNAMIC_LIST, - OPTION_DYNAMIC_LIST_CPP_NEW, - OPTION_DYNAMIC_LIST_CPP_TYPEINFO, - OPTION_DYNAMIC_LIST_DATA, OPTION_WARN_COMMON, OPTION_WARN_CONSTRUCTORS, OPTION_WARN_FATAL, @@ -350,8 +346,6 @@ static const struct ld_option ld_options[] = '\0', NULL, NULL, ONE_DASH }, { {"Bsymbolic", no_argument, NULL, OPTION_SYMBOLIC}, '\0', NULL, N_("Bind global references locally"), ONE_DASH }, - { {"Bsymbolic-functions", no_argument, NULL, OPTION_DYNAMIC_LIST_DATA}, - '\0', NULL, N_("Bind global function references locally"), ONE_DASH }, { {"check-sections", no_argument, NULL, OPTION_CHECK_SECTIONS}, '\0', NULL, N_("Check section addresses for overlaps (default)"), TWO_DASHES }, @@ -505,14 +499,6 @@ 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-data", no_argument, NULL, OPTION_DYNAMIC_LIST_DATA}, - '\0', NULL, N_("Add data symbols to dynamic list"), TWO_DASHES }, - { {"dynamic-list-cpp-new", no_argument, NULL, OPTION_DYNAMIC_LIST_CPP_NEW}, - '\0', NULL, N_("Use C++ operator new/delete dynamic list"), 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}, @@ -1252,33 +1238,6 @@ parse_args (unsigned argc, char **argv) .exports sections. */ command_line.version_exports_section = optarg; break; - case OPTION_DYNAMIC_LIST_DATA: - link_info.dynamic_data = TRUE; - link_info.dynamic = TRUE; - break; - case OPTION_DYNAMIC_LIST_CPP_TYPEINFO: - lang_append_dynamic_list_cpp_typeinfo (); - link_info.dynamic = TRUE; - break; - case OPTION_DYNAMIC_LIST_CPP_NEW: - lang_append_dynamic_list_cpp_new (); - link_info.dynamic = TRUE; - 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 (); - } - link_info.dynamic = TRUE; - break; case OPTION_WARN_COMMON: config.warn_common = TRUE; break; |