aboutsummaryrefslogtreecommitdiff
path: root/bfd/elfxx-target.h
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1996-01-11 21:06:42 +0000
committerIan Lance Taylor <ian@airs.com>1996-01-11 21:06:42 +0000
commit5b3b9ff61d3a2a6cdd90fcec1a61d38699f3c608 (patch)
tree4a38d859537ed0e9e8ac23a9e6b9989bd9bd9d0d /bfd/elfxx-target.h
parentf9407a89f45c77372d823af6a5aaffe23b2653b2 (diff)
downloadgdb-5b3b9ff61d3a2a6cdd90fcec1a61d38699f3c608.zip
gdb-5b3b9ff61d3a2a6cdd90fcec1a61d38699f3c608.tar.gz
gdb-5b3b9ff61d3a2a6cdd90fcec1a61d38699f3c608.tar.bz2
* elf32-mips.c: Extensive changes for a start at dynamic linking
support, from Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>. * elf-bfd.h (struct elf_backend_data): Add type_change_ok field. (struct elf_backend_data): Remove elf_backend_create_program_headers field. Add elf_backend_additional_program_headers and elf_backend_modify_segment_map fields. * elfxx-target.h (elf_backend_type_change_ok): Define if not defined. (elf_backend_additional_program_headers): Likewise. (elf_backend_modify_segment_map): Likewise. (elf_backend_create_program_headers): Don't define. (elfNN_bed): Change to account for field changes. * elf.c (assign_file_positions_for_segments): Call new modify_segment_map backend function. Don't call old create_program_headers backend function. (get_program_header_size): Call additional_program_headers rather than create_program_headers. * elflink.h (elf_link_add_object_symbols): Initialize type_change_ok from new backend field. (elf_link_output_extsym): Don't warn if _rld_new_interface is defined. (elf_reloc_link_order): Treat a reloc against a defined symbol as a reloc against the appropriate section.
Diffstat (limited to 'bfd/elfxx-target.h')
-rw-r--r--bfd/elfxx-target.h30
1 files changed, 19 insertions, 11 deletions
diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h
index e719d0d..989a1dc 100644
--- a/bfd/elfxx-target.h
+++ b/bfd/elfxx-target.h
@@ -156,6 +156,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef elf_backend_collect
#define elf_backend_collect false
#endif
+#ifndef elf_backend_type_change_ok
+#define elf_backend_type_change_ok false
+#endif
#ifndef elf_backend_sym_is_global
#define elf_backend_sym_is_global 0
@@ -214,8 +217,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef elf_backend_final_write_processing
#define elf_backend_final_write_processing 0
#endif
-#ifndef elf_backend_create_program_headers
-#define elf_backend_create_program_headers 0
+#ifndef elf_backend_additional_program_headers
+#define elf_backend_additional_program_headers 0
+#endif
+#ifndef elf_backend_modify_segment_map
+#define elf_backend_modify_segment_map 0
#endif
#ifndef elf_backend_ecoff_debug_swap
#define elf_backend_ecoff_debug_swap 0
@@ -242,6 +248,7 @@ static CONST struct elf_backend_data elfNN_bed =
ELF_MACHINE_CODE, /* elf_machine_code */
ELF_MAXPAGESIZE, /* maxpagesize */
elf_backend_collect,
+ elf_backend_type_change_ok,
elf_info_to_howto,
elf_info_to_howto_rel,
elf_backend_sym_is_global,
@@ -263,7 +270,8 @@ static CONST struct elf_backend_data elfNN_bed =
elf_backend_finish_dynamic_sections,
elf_backend_begin_write_processing,
elf_backend_final_write_processing,
- elf_backend_create_program_headers,
+ elf_backend_additional_program_headers,
+ elf_backend_modify_segment_map,
elf_backend_ecoff_debug_swap,
ELF_MACHINE_ALT1,
ELF_MACHINE_ALT2,
@@ -283,11 +291,11 @@ const bfd_target TARGET_BIG_SYM =
/* flavour: general indication about file */
bfd_target_elf_flavour,
- /* byteorder_big_p: data is big endian */
- true,
+ /* byteorder: data is big endian */
+ BFD_ENDIAN_BIG,
- /* header_byteorder_big_p: header is also big endian */
- true,
+ /* header_byteorder: header is also big endian */
+ BFD_ENDIAN_BIG,
/* object_flags: mask of all file flags */
(HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS |
@@ -367,11 +375,11 @@ const bfd_target TARGET_LITTLE_SYM =
/* flavour: general indication about file */
bfd_target_elf_flavour,
- /* byteorder_big_p: data is big endian */
- false, /* Nope -- this one's little endian */
+ /* byteorder: data is little endian */
+ BFD_ENDIAN_LITTLE,
- /* header_byteorder_big_p: header is also big endian */
- false, /* Nope -- this one's little endian */
+ /* header_byteorder: header is also little endian */
+ BFD_ENDIAN_LITTLE,
/* object_flags: mask of all file flags */
(HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS |