This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb/binutils-2_28-branch] Remove "collect" forms of generic linker add symbols functions


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d3ce90d0de48615efeacf98bbd54aa8fe3413722

commit d3ce90d0de48615efeacf98bbd54aa8fe3413722
Author: Alan Modra <amodra@gmail.com>
Date:   Fri Dec 23 23:28:38 2016 +1030

    Remove "collect" forms of generic linker add symbols functions
    
    Nothing calls them and they were in the way of a bug fix.
    
    	* linker.c (generic_link_add_symbols): Delete.  Merge into..
    	(_bfd_generic_link_add_symbols): ..here.
    	(generic_link_check_archive_element_no_collect): Delete.
    	(generic_link_check_archive_element_collect): Likewise.
    	(generic_link_add_object_symbols): Remove "collect" param.  Update
    	callers.
    	(generic_link_add_symbol_list): Likewise.
    	(generic_link_check_archive_element): Likewise.  Call
    	bfd_link_add_symbols rather than generic_link_add_object_symbols.
    	* libbfd-in.h (_bfd_generic_link_add_symbols_collect): Delete.
    	* libbfd.h: Regenerate.

Diff:
---
 bfd/ChangeLog   |  14 ++++++++
 bfd/libbfd-in.h |   6 ----
 bfd/libbfd.h    |   6 ----
 bfd/linker.c    | 107 +++++++++-----------------------------------------------
 4 files changed, 31 insertions(+), 102 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f8453fb..ce8822e 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,19 @@
 2016-12-23  Alan Modra  <amodra@gmail.com>
 
+	* linker.c (generic_link_add_symbols): Delete.  Merge into..
+	(_bfd_generic_link_add_symbols): ..here.
+	(generic_link_check_archive_element_no_collect): Delete.
+	(generic_link_check_archive_element_collect): Likewise.
+	(generic_link_add_object_symbols): Remove "collect" param.  Update
+	callers.
+	(generic_link_add_symbol_list): Likewise.
+	(generic_link_check_archive_element): Likewise.  Call
+	bfd_link_add_symbols rather than generic_link_add_object_symbols.
+	* libbfd-in.h (_bfd_generic_link_add_symbols_collect): Delete.
+	* libbfd.h: Regenerate.
+
+2016-12-23  Alan Modra  <amodra@gmail.com>
+
 	PR binutils/20464
 	PR binutils/14625
 	* configure.ac: Revert 2016-05-25 configure change setting
diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h
index fec1b89..db2f143 100644
--- a/bfd/libbfd-in.h
+++ b/bfd/libbfd-in.h
@@ -613,12 +613,6 @@ extern void _bfd_generic_link_hash_table_free
 extern bfd_boolean _bfd_generic_link_add_symbols
   (bfd *, struct bfd_link_info *);
 
-/* Generic add symbol routine.  This version is used by targets for
-   which the linker must collect constructors and destructors by name,
-   as the collect2 program does.  */
-extern bfd_boolean _bfd_generic_link_add_symbols_collect
-  (bfd *, struct bfd_link_info *);
-
 /* Generic archive add symbol routine.  */
 extern bfd_boolean _bfd_generic_link_add_archive_symbols
   (bfd *, struct bfd_link_info *,
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index ee85163..30be5dd 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -618,12 +618,6 @@ extern void _bfd_generic_link_hash_table_free
 extern bfd_boolean _bfd_generic_link_add_symbols
   (bfd *, struct bfd_link_info *);
 
-/* Generic add symbol routine.  This version is used by targets for
-   which the linker must collect constructors and destructors by name,
-   as the collect2 program does.  */
-extern bfd_boolean _bfd_generic_link_add_symbols_collect
-  (bfd *, struct bfd_link_info *);
-
 /* Generic archive add symbol routine.  */
 extern bfd_boolean _bfd_generic_link_add_archive_symbols
   (bfd *, struct bfd_link_info *,
diff --git a/bfd/linker.c b/bfd/linker.c
index 067ea9c..9763b84 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -403,21 +403,12 @@ SUBSUBSECTION
 */
 
 static bfd_boolean generic_link_add_object_symbols
-  (bfd *, struct bfd_link_info *, bfd_boolean collect);
-static bfd_boolean generic_link_add_symbols
-  (bfd *, struct bfd_link_info *, bfd_boolean);
-static bfd_boolean generic_link_check_archive_element_no_collect
-  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *,
-   bfd_boolean *);
-static bfd_boolean generic_link_check_archive_element_collect
-  (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *,
-   bfd_boolean *);
+  (bfd *, struct bfd_link_info *);
 static bfd_boolean generic_link_check_archive_element
   (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *,
-   bfd_boolean *, bfd_boolean);
+   bfd_boolean *);
 static bfd_boolean generic_link_add_symbol_list
-  (bfd *, struct bfd_link_info *, bfd_size_type count, asymbol **,
-   bfd_boolean);
+  (bfd *, struct bfd_link_info *, bfd_size_type count, asymbol **);
 static bfd_boolean generic_add_output_symbol
   (bfd *, size_t *psymalloc, asymbol *);
 static bfd_boolean default_data_link_order
@@ -816,29 +807,6 @@ bfd_generic_link_read_symbols (bfd *abfd)
   return TRUE;
 }
 
-/* Generic function to add symbols to from an object file to the
-   global hash table.  This version does not automatically collect
-   constructors by name.  */
-
-bfd_boolean
-_bfd_generic_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
-{
-  return generic_link_add_symbols (abfd, info, FALSE);
-}
-
-/* Generic function to add symbols from an object file to the global
-   hash table.  This version automatically collects constructors by
-   name, as the collect2 program does.  It should be used for any
-   target which does not provide some other mechanism for setting up
-   constructors and destructors; these are approximately those targets
-   for which gcc uses collect2 and do not support stabs.  */
-
-bfd_boolean
-_bfd_generic_link_add_symbols_collect (bfd *abfd, struct bfd_link_info *info)
-{
-  return generic_link_add_symbols (abfd, info, TRUE);
-}
-
 /* Indicate that we are only retrieving symbol values from this
    section.  We want the symbols to act as though the values in the
    file are absolute.  */
@@ -862,26 +830,22 @@ _bfd_generic_copy_link_hash_symbol_type (bfd *abfd ATTRIBUTE_UNUSED,
 {
 }
 
-/* Add symbols from an object file to the global hash table.  */
+/* Generic function to add symbols from an object file to the
+   global hash table.  */
 
-static bfd_boolean
-generic_link_add_symbols (bfd *abfd,
-			  struct bfd_link_info *info,
-			  bfd_boolean collect)
+bfd_boolean
+_bfd_generic_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
 {
   bfd_boolean ret;
 
   switch (bfd_get_format (abfd))
     {
     case bfd_object:
-      ret = generic_link_add_object_symbols (abfd, info, collect);
+      ret = generic_link_add_object_symbols (abfd, info);
       break;
     case bfd_archive:
       ret = (_bfd_generic_link_add_archive_symbols
-	     (abfd, info,
-	      (collect
-	       ? generic_link_check_archive_element_collect
-	       : generic_link_check_archive_element_no_collect)));
+	     (abfd, info, generic_link_check_archive_element));
       break;
     default:
       bfd_set_error (bfd_error_wrong_format);
@@ -895,8 +859,7 @@ generic_link_add_symbols (bfd *abfd,
 
 static bfd_boolean
 generic_link_add_object_symbols (bfd *abfd,
-				 struct bfd_link_info *info,
-				 bfd_boolean collect)
+				 struct bfd_link_info *info)
 {
   bfd_size_type symcount;
   struct bfd_symbol **outsyms;
@@ -905,7 +868,7 @@ generic_link_add_object_symbols (bfd *abfd,
     return FALSE;
   symcount = _bfd_generic_link_get_symcount (abfd);
   outsyms = _bfd_generic_link_get_symbols (abfd);
-  return generic_link_add_symbol_list (abfd, info, symcount, outsyms, collect);
+  return generic_link_add_symbol_list (abfd, info, symcount, outsyms);
 }
 
 /* Generic function to add symbols from an archive file to the global
@@ -1044,47 +1007,14 @@ _bfd_generic_link_add_archive_symbols
   return FALSE;
 }
 
-/* See if we should include an archive element.  This version is used
-   when we do not want to automatically collect constructors based on
-   the symbol name, presumably because we have some other mechanism
-   for finding them.  */
-
-static bfd_boolean
-generic_link_check_archive_element_no_collect (bfd *abfd,
-					       struct bfd_link_info *info,
-					       struct bfd_link_hash_entry *h,
-					       const char *name,
-					       bfd_boolean *pneeded)
-{
-  return generic_link_check_archive_element (abfd, info, h, name, pneeded,
-					     FALSE);
-}
-
-/* See if we should include an archive element.  This version is used
-   when we want to automatically collect constructors based on the
-   symbol name, as collect2 does.  */
-
-static bfd_boolean
-generic_link_check_archive_element_collect (bfd *abfd,
-					    struct bfd_link_info *info,
-					    struct bfd_link_hash_entry *h,
-					    const char *name,
-					    bfd_boolean *pneeded)
-{
-  return generic_link_check_archive_element (abfd, info, h, name, pneeded,
-					     TRUE);
-}
-
-/* See if we should include an archive element.  Optionally collect
-   constructors.  */
+/* See if we should include an archive element.  */
 
 static bfd_boolean
 generic_link_check_archive_element (bfd *abfd,
 				    struct bfd_link_info *info,
 				    struct bfd_link_hash_entry *h,
 				    const char *name ATTRIBUTE_UNUSED,
-				    bfd_boolean *pneeded,
-				    bfd_boolean collect)
+				    bfd_boolean *pneeded)
 {
   asymbol **pp, **ppend;
 
@@ -1134,7 +1064,7 @@ generic_link_check_archive_element (bfd *abfd,
 	    return FALSE;
 	  /* Potentially, the add_archive_element hook may have set a
 	     substitute BFD for us.  */
-	  return generic_link_add_object_symbols (abfd, info, collect);
+	  return generic_link_add_object_symbols (abfd, info);
 	}
 
       /* P is a common symbol.  */
@@ -1192,16 +1122,13 @@ generic_link_check_archive_element (bfd *abfd,
 
 /* Add the symbols from an object file to the global hash table.  ABFD
    is the object file.  INFO is the linker information.  SYMBOL_COUNT
-   is the number of symbols.  SYMBOLS is the list of symbols.  COLLECT
-   is TRUE if constructors should be automatically collected by name
-   as is done by collect2.  */
+   is the number of symbols.  SYMBOLS is the list of symbols.  */
 
 static bfd_boolean
 generic_link_add_symbol_list (bfd *abfd,
 			      struct bfd_link_info *info,
 			      bfd_size_type symbol_count,
-			      asymbol **symbols,
-			      bfd_boolean collect)
+			      asymbol **symbols)
 {
   asymbol **pp, **ppend;
 
@@ -1247,7 +1174,7 @@ generic_link_add_symbol_list (bfd *abfd,
 	  bh = NULL;
 	  if (! (_bfd_generic_link_add_one_symbol
 		 (info, abfd, name, p->flags, bfd_get_section (p),
-		  p->value, string, FALSE, collect, &bh)))
+		  p->value, string, FALSE, FALSE, &bh)))
 	    return FALSE;
 	  h = (struct generic_link_hash_entry *) bh;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]