summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2015-08-25 02:24:51 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2015-08-25 02:24:51 +0000
commite9f37c36b5e31af9528bbfb2a4d1ef289feb0b41 (patch)
treee95f036098d3d7dbd8893c6dcbe59ada5621c886
parentae81cbc1762739c5c83dbc1f97d7b28a99ef3d89 (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.h11
-rw-r--r--gnu/usr.bin/binutils-2.17/bfd/elf32-i386.c4
-rw-r--r--gnu/usr.bin/binutils-2.17/bfd/elf64-x86-64.c4
-rw-r--r--gnu/usr.bin/binutils-2.17/bfd/elflink.c48
-rw-r--r--gnu/usr.bin/binutils-2.17/bfd/elfxx-ia64.c4
-rw-r--r--gnu/usr.bin/binutils-2.17/include/bfdlink.h20
-rw-r--r--gnu/usr.bin/binutils-2.17/ld/Makefile.am10
-rw-r--r--gnu/usr.bin/binutils-2.17/ld/Makefile.in10
-rw-r--r--gnu/usr.bin/binutils-2.17/ld/ld.texinfo34
-rw-r--r--gnu/usr.bin/binutils-2.17/ld/ldgram.y30
-rw-r--r--gnu/usr.bin/binutils-2.17/ld/ldlang.c72
-rw-r--r--gnu/usr.bin/binutils-2.17/ld/ldlang.h3
-rw-r--r--gnu/usr.bin/binutils-2.17/ld/ldlex.h1
-rw-r--r--gnu/usr.bin/binutils-2.17/ld/ldlex.l1
-rw-r--r--gnu/usr.bin/binutils-2.17/ld/ldmain.c3
-rw-r--r--gnu/usr.bin/binutils-2.17/ld/lexsup.c41
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;