* targets.c: Add copy_private_symbol_data and link_split_section
authorJeff Law <law@redhat.com>
Sat, 10 Jun 1995 00:05:51 +0000 (00:05 +0000)
committerJeff Law <law@redhat.com>
Sat, 10 Jun 1995 00:05:51 +0000 (00:05 +0000)
to the target vector.
* libbfd-in.h (_bfd_generic_bfd_copy_private_symbol_data): Define.
(_bfd_nolink_bfd_link_split_section): Likewise.
(bfd_generic_link_split_section): Declare.
* syms.c (bfd_copy_private_symbol_data): Define.
* linker.c (bf_link_split_section): Likewise.
* som.c (som_bfd_copy_private_symbol_data): New function
(som_bfd_link_split_section): Likewise.
* All other targets updated with default versions of new routines.

* Take out my braindamaged bfd_true/bfd_false changes from earlier
today.  Replace with just:
* bfd-in.h: (TRUE_FALSE_ALREADY_DEFINED): Define this if
compiling with g++-2.6 or later.
* bfd-in2.h: Rebuilt.

bfd/ChangeLog
bfd/bfd-in.h
bfd/bfd-in2.h
bfd/elf32-target.h
bfd/elf64-target.h

index 162bb7f..c2cff07 100644 (file)
@@ -4,17 +4,21 @@ Fri Jun  9 12:20:28 1995  Steve Chamberlain  <sac@rtl.cygnus.com>
 
 Fri Jun  9 12:49:00 1995  Jeff Law  (law@snake.cs.utah.edu)
 
-       * bfd-in.h (bfd_true, bfd_false): Define these to true and false
-       if TRUE_FALSE_ALREADY_DEFINED is not defined.
-       * bfd-in2.h: Rebuilt.
-
+       * targets.c: Add copy_private_symbol_data and link_split_section
+       to the target vector.
+       * libbfd-in.h (_bfd_generic_bfd_copy_private_symbol_data): Define.
+       (_bfd_nolink_bfd_link_split_section): Likewise.
+       (bfd_generic_link_split_section): Declare.
+       * syms.c (bfd_copy_private_symbol_data): Define.
+       * linker.c (bf_link_split_section): Likewise.
+       * som.c (som_bfd_copy_private_symbol_data): New function
+       (som_bfd_link_split_section): Likewise.
+       * All other targets updated with default versions of new routines.
+
+       * Take out my braindamaged bfd_true/bfd_false changes from earlier
+       today.  Replace with just:
        * bfd-in.h: (TRUE_FALSE_ALREADY_DEFINED): Define this if
        compiling with g++-2.6 or later.
-       (bfd_set_section_vma): Use bfd_true and bfd_false rather than
-       true and false.
-       (bfd_set_section_alignment): Likewise.
-       (bfd_set_section_userdata): Likewise.
-       (bfd_set_cacheable): Likewise.
        * bfd-in2.h: Rebuilt.
 
 Fri Jun  9 07:54:29 1995  Steve Chamberlain  <sac@slash.cygnus.com>
index bdc4ed0..2c333c9 100644 (file)
@@ -89,8 +89,6 @@ typedef struct _bfd bfd;
 #ifndef TRUE_FALSE_ALREADY_DEFINED
 typedef enum bfd_boolean {false, true} boolean;
 #define BFD_TRUE_FALSE
-#define bfd_false false
-#define bfd_true true
 #else
 typedef enum bfd_boolean {bfd_false, bfd_true} boolean;
 #endif
@@ -299,9 +297,9 @@ typedef struct sec *sec_ptr;
 
 #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
 
-#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma= (val)), ((ptr)->user_set_vma = bfd_true), bfd_true)
-#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),bfd_true)
-#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),bfd_true)
+#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma= (val)), ((ptr)->user_set_vma = true), true)
+#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),true)
+#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),true)
 
 typedef struct stat stat_type; 
 \f
@@ -506,7 +504,7 @@ typedef struct _bfd_link_stack_heap bfd_link_stack_heap;
 
 #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
 
-#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = (bool)), bfd_true)
+#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = (bool)), true)
 
 /* Byte swapping routines.  */
 
index 42146ce..a0708f7 100644 (file)
@@ -89,8 +89,6 @@ typedef struct _bfd bfd;
 #ifndef TRUE_FALSE_ALREADY_DEFINED
 typedef enum bfd_boolean {false, true} boolean;
 #define BFD_TRUE_FALSE
-#define bfd_false false
-#define bfd_true true
 #else
 typedef enum bfd_boolean {bfd_false, bfd_true} boolean;
 #endif
@@ -299,9 +297,9 @@ typedef struct sec *sec_ptr;
 
 #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
 
-#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma= (val)), ((ptr)->user_set_vma = bfd_true), bfd_true)
-#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),bfd_true)
-#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),bfd_true)
+#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma= (val)), ((ptr)->user_set_vma = true), true)
+#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),true)
+#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),true)
 
 typedef struct stat stat_type; 
 \f
@@ -506,7 +504,7 @@ typedef struct _bfd_link_stack_heap bfd_link_stack_heap;
 
 #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
 
-#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = (bool)), bfd_true)
+#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = (bool)), true)
 
 /* Byte swapping routines.  */
 
@@ -1762,6 +1760,12 @@ bfd_decode_symclass PARAMS ((asymbol *symbol));
 void 
 bfd_symbol_info PARAMS ((asymbol *symbol, symbol_info *ret));
 
+boolean 
+bfd_copy_private_symbol_data PARAMS ((bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym));
+
+#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
+     BFD_SEND (ibfd, _bfd_copy_private_symbol_data, \
+               (ibfd, isymbol, obfd, osymbol))
 struct _bfd 
 {
      /* The filename the application opened the BFD with.  */
@@ -2181,6 +2185,7 @@ CAT(NAME,_get_section_contents)
 CAT(NAME,_bfd_copy_private_bfd_data),\
 CAT(NAME,_bfd_merge_private_bfd_data),\
 CAT(NAME,_bfd_copy_private_section_data),\
+CAT(NAME,_bfd_copy_private_symbol_data),\
 CAT(NAME,_bfd_set_private_flags)
    /* Called to copy BFD general private data from one object file
      to another.  */
@@ -2192,6 +2197,10 @@ CAT(NAME,_bfd_set_private_flags)
      to another.  */
   boolean       (*_bfd_copy_private_section_data) PARAMS ((bfd *, sec_ptr,
                                                        bfd *, sec_ptr));
+   /* Called to copy BFD private symbol data from one symbol 
+     to another.  */
+  boolean       (*_bfd_copy_private_symbol_data) PARAMS ((bfd *, asymbol *,
+                                                          bfd *, asymbol *));
    /* Called to set private backend flags */
   boolean       (*_bfd_set_private_flags) PARAMS ((bfd *, flagword));
 
@@ -2296,7 +2305,8 @@ CAT(NAME,_bfd_get_relocated_section_contents),\
 CAT(NAME,_bfd_relax_section),\
 CAT(NAME,_bfd_link_hash_table_create),\
 CAT(NAME,_bfd_link_add_symbols),\
-CAT(NAME,_bfd_final_link)
+CAT(NAME,_bfd_final_link),\
+CAT(NAME,_bfd_link_split_section)
   int        (*_bfd_sizeof_headers) PARAMS ((bfd *, boolean));
   bfd_byte * (*_bfd_get_relocated_section_contents) PARAMS ((bfd *,
                     struct bfd_link_info *, struct bfd_link_order *,
@@ -2317,6 +2327,9 @@ CAT(NAME,_bfd_final_link)
      section of the BFD.  */
   boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
 
+   /* Should this section be split up into smaller pieces during linking.  */
+  boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *));
+
   /* Routines to handle dynamic symbols and relocs.  */
 #define BFD_JUMP_TABLE_DYNAMIC(NAME)\
 CAT(NAME,_get_dynamic_symtab_upper_bound),\
index eb3ce76..01236fe 100644 (file)
@@ -39,6 +39,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define bfd_elf32_bfd_make_debug_symbol \
   ((asymbol *(*) PARAMS ((bfd *, void *, unsigned long))) bfd_nullvoidptr)
 
+#ifndef bfd_elf32_bfd_copy_private_symbol_data
+#define bfd_elf32_bfd_copy_private_symbol_data \
+  ((boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true)
+#endif
 #ifndef bfd_elf32_bfd_copy_private_section_data
 #define bfd_elf32_bfd_copy_private_section_data \
   ((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
@@ -85,6 +89,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define bfd_elf32_bfd_final_link       _bfd_generic_final_link
 #endif
 #endif /* ! defined (elf_backend_relocate_section) */
+#ifndef bfd_elf32_bfd_link_split_section
+#define bfd_elf32_bfd_link_split_section _bfd_generic_link_split_section
+#endif
+
 
 #ifndef elf_info_to_howto_rel
 #define elf_info_to_howto_rel 0
index b5fbce0..e7177f2 100644 (file)
@@ -40,6 +40,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define bfd_elf64_bfd_make_debug_symbol \
   ((asymbol *(*) PARAMS ((bfd *, void *, unsigned long))) bfd_nullvoidptr)
 
+#ifndef bfd_elf64_bfd_copy_private_symbol_data
+#define bfd_elf64_bfd_copy_private_symbol_data \
+  ((boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true)
+#endif
 #ifndef bfd_elf64_bfd_copy_private_section_data
 #define bfd_elf64_bfd_copy_private_section_data \
   ((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
@@ -86,6 +90,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define bfd_elf64_bfd_final_link       _bfd_generic_final_link
 #endif
 #endif /* ! defined (elf_backend_relocate_section) */
+#ifndef bfd_elf64_bfd_link_split_section
+#define bfd_elf64_bfd_link_split_section _bfd_generic_link_split_section
+#endif
 
 #ifndef elf_info_to_howto_rel
 #define elf_info_to_howto_rel 0