* bfd-in2.h, libbfd.h, libcoff.h: Rebuilt.
authorJeff Law <law@redhat.com>
Wed, 16 Mar 1994 07:02:05 +0000 (07:02 +0000)
committerJeff Law <law@redhat.com>
Wed, 16 Mar 1994 07:02:05 +0000 (07:02 +0000)
* bfd-in.h (JUMP_TABLE): Add new entries to the jump table
for bfd_copy_private_section_data, bfd_copy_private_bfd_data,
and bfd_is_local_label.

* targets.c: Add new entries to the bfd_target structure.

* bfd.c (bfd_copy_private_bfd_data): New definition.

* section.c (bfd_copy_private_section_data): New definition.

* syms.c (bfd_is_local_label): New definition.

* libbfd-in.h (bfd_generic_is_local_label): Declare.

* libbfd.c (bfd_generic_is_local_label): New function.

* *-core.c: Provide default definitions for new functions in
the target vector which all point to bfd_false.

* aout-target.h, coffcode.h, elf32-target.h elf64-target.h, ieee.c
libaout.h, libecoff.h, nlm-target.h, oasys.c, srec.c, tekhex.c
Default new vectors for copying private backend data to bfd_true.
Default new vector for determining if a symbol is a local label
to bfd_generic_is_local_label.

* som.c (som_bfd_copy_private_section_data): New function.
(som_bfd_is_local_label): New function.
(som_bfd_copy_private_bfd_data): For now default to bfd_true.

* elf32-hppa.c (hppa_elf_is_local_label): New function.

bfd/ChangeLog
bfd/elf32-target.h
bfd/elf64-target.h
bfd/som.c

index 62e0435a24ced9f8eda735bec5e933f331daceec..f71b12cfd4af61d17859fe3f16a45945c9e047e5 100644 (file)
@@ -1,3 +1,38 @@
+Tue Mar 15 22:58:28 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * bfd-in2.h, libbfd.h, libcoff.h: Rebuilt.
+
+       * bfd-in.h (JUMP_TABLE): Add new entries to the jump table
+       for bfd_copy_private_section_data, bfd_copy_private_bfd_data,
+       and bfd_is_local_label.
+
+       * targets.c: Add new entries to the bfd_target structure.
+       
+       * bfd.c (bfd_copy_private_bfd_data): New definition.
+
+       * section.c (bfd_copy_private_section_data): New definition.
+
+       * syms.c (bfd_is_local_label): New definition.
+
+       * libbfd-in.h (bfd_generic_is_local_label): Declare.
+
+       * libbfd.c (bfd_generic_is_local_label): New function.
+
+       * *-core.c: Provide default definitions for new functions in
+       the target vector which all point to bfd_false.
+
+       * aout-target.h, coffcode.h, elf32-target.h elf64-target.h, ieee.c
+       libaout.h, libecoff.h, nlm-target.h, oasys.c, srec.c, tekhex.c
+       Default new vectors for copying private backend data to bfd_true.
+       Default new vector for determining if a symbol is a local label
+       to bfd_generic_is_local_label.
+
+       * som.c (som_bfd_copy_private_section_data): New function.
+       (som_bfd_is_local_label): New function.
+       (som_bfd_copy_private_bfd_data): For now default to bfd_true.
+
+       * elf32-hppa.c (hppa_elf_is_local_label): New function.
+
 Tue Mar 15 23:55:47 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
 
        * cf-m68klynx.c (CALC_ADDEND): Use _bfd_m68klynx_howto_table.
index bdbb4a51e106dd54793e42fb3ac62a01e33f2fa2..79bacb6160945c1de6d4b9cd57fd50508f47a4f8 100644 (file)
@@ -60,6 +60,18 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define bfd_elf32_bfd_final_link       _bfd_generic_final_link
 #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)
+#endif
+#ifndef bfd_elf32_bfd_copy_private_bfd_data
+#define bfd_elf32_bfd_copy_private_bfd_data \
+  ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+#endif
+#ifndef bfd_elf32_bfd_is_local_label
+#define bfd_elf32_bfd_is_local_label bfd_generic_is_local_label
+#endif
+
 #ifndef elf_info_to_howto_rel
 #define elf_info_to_howto_rel 0
 #endif
index 7fdfa26daca0f2c590ed273b51ffc090083d9ff0..75ba99850f93692c2e181732109f9ab36291eedd 100644 (file)
@@ -60,6 +60,19 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define bfd_elf64_bfd_final_link       _bfd_generic_final_link
 #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)
+#endif
+#ifndef bfd_elf64_bfd_copy_private_bfd_data
+#define bfd_elf64_bfd_copy_private_bfd_data \
+  ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+#endif
+
+#ifndef bfd_elf64_bfd_is_local_label
+#define bfd_elf64_bfd_is_local_label bfd_generic_is_local_label
+#endif
+
 #ifndef elf_info_to_howto_rel
 #define elf_info_to_howto_rel 0
 #endif
index d399e0f11e3ff2f04b3bb0054b5d402773097dff..c71b60767858dd0647b65b3180eeb092bc710f96 100644 (file)
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -149,6 +149,9 @@ static asymbol * som_make_empty_symbol PARAMS ((bfd *));
 static void som_print_symbol PARAMS ((bfd *, PTR,
                                      asymbol *, bfd_print_symbol_type));
 static boolean som_new_section_hook PARAMS ((bfd *, asection *));
+static boolean som_bfd_copy_private_section_data PARAMS ((bfd *, asection *,
+                                                         bfd *, asection *));
+static boolean som_bfd_is_local_label PARAMS ((bfd *, asymbol *));
 static boolean som_set_section_contents PARAMS ((bfd *, sec_ptr, PTR,
                                                 file_ptr, bfd_size_type));
 static boolean som_set_arch_mach PARAMS ((bfd *, enum bfd_architecture,
@@ -3644,6 +3647,14 @@ som_print_symbol (ignore_abfd, afile, symbol, how)
     }
 }
 
+static boolean
+som_bfd_is_local_label (abfd, sym)
+     bfd *abfd;
+     asymbol *sym;
+{
+  return (sym->name[0] == 'L' && sym->name[1] == '$');
+}
+
 /* Count or process variable-length SOM fixup records.
 
    To avoid code duplication we use this code both to compute the number
@@ -4036,6 +4047,29 @@ som_new_section_hook (abfd, newsect)
   return true;
 }
 
+/* Copy any private info we understand from the input section
+   to the output section.  */
+static boolean
+som_bfd_copy_private_section_data (ibfd, isection, obfd, osection)
+     bfd *ibfd;
+     asection *isection;
+     bfd *obfd;
+     asection *osection;
+{
+  /* One day we may try to grok other private data.  */
+  if (ibfd->xvec->flavour != bfd_target_som_flavour
+      || obfd->xvec->flavour != bfd_target_som_flavour)
+    return false;
+
+  memcpy (som_section_data (osection), som_section_data (isection),
+         sizeof (struct som_section_data_struct));
+
+  /* Reparent if necessary.  */
+  if (som_section_data (osection)->containing_space)
+    som_section_data (osection)->containing_space =
+      som_section_data (osection)->containing_space->output_section;
+}
+       
 /* Set backend info for sections which can not be described
    in the BFD data structures.  */
 
@@ -5190,6 +5224,9 @@ som_slurp_extended_name_table (abfd)
 #define som_core_file_failing_signal   _bfd_dummy_core_file_failing_signal
 #define som_core_file_matches_executable_p     _bfd_dummy_core_file_matches_executable_p
 
+#define som_bfd_copy_private_bfd_data \
+  ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+
 bfd_target som_vec =
 {
   "som",                       /* name */