diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 11 | ||||
-rw-r--r-- | ld/emultempl/alphaelf.em | 6 | ||||
-rw-r--r-- | ld/emultempl/hppaelf.em | 9 | ||||
-rw-r--r-- | ld/emultempl/ppc32elf.em | 18 | ||||
-rw-r--r-- | ld/emultempl/ppc64elf.em | 7 |
5 files changed, 22 insertions, 29 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index ec63420..f8d3bf85 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,16 @@ 2008-02-15 Alan Modra <amodra@bigpond.net.au> + * emultempl/alphaelf.em (alpha_after_open): Use elf_object_id. + * emultempl/hppaelf.em (hppaelf_create_output_section_statements): + Likewise. + * emultempl/ppc64elf.em (ppc_create_output_section_statements): + Likewise. + * emultempl/ppc32elf.em (is_ppc_elf32_vec): Delete. Replace all + uses with.. + (is_ppc_elf): ..this new macro. + +2008-02-15 Alan Modra <amodra@bigpond.net.au> + * ldmain.h (output_bfd): Delete. * ldmain.c (output_bfd): Delete. Replace all occurrences of output_bfd with link_info.output_bfd. diff --git a/ld/emultempl/alphaelf.em b/ld/emultempl/alphaelf.em index 81bb377..d6766ba 100644 --- a/ld/emultempl/alphaelf.em +++ b/ld/emultempl/alphaelf.em @@ -32,8 +32,6 @@ static bfd_boolean limit_32bit; static bfd_boolean disable_relaxation; extern bfd_boolean elf64_alpha_use_secureplt; -extern const bfd_target bfd_elf64_alpha_vec; -extern const bfd_target bfd_elf64_alpha_freebsd_vec; /* Set the start address as in the Tru64 ld. */ @@ -42,8 +40,8 @@ extern const bfd_target bfd_elf64_alpha_freebsd_vec; static void alpha_after_open (void) { - if (link_info.output_bfd->xvec == &bfd_elf64_alpha_vec - || link_info.output_bfd->xvec == &bfd_elf64_alpha_freebsd_vec) + if (bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour + && elf_object_id (link_info.output_bfd) == ALPHA_ELF_TDATA) { unsigned int num_plt; lang_output_section_statement_type *os; diff --git a/ld/emultempl/hppaelf.em b/ld/emultempl/hppaelf.em index f5808b3..182ab53 100644 --- a/ld/emultempl/hppaelf.em +++ b/ld/emultempl/hppaelf.em @@ -67,13 +67,8 @@ hppaelf_after_parse (void) static void hppaelf_create_output_section_statements (void) { - extern const bfd_target bfd_elf32_hppa_linux_vec; - extern const bfd_target bfd_elf32_hppa_nbsd_vec; - extern const bfd_target bfd_elf32_hppa_vec; - - if (link_info.output_bfd->xvec != &bfd_elf32_hppa_linux_vec - && link_info.output_bfd->xvec != &bfd_elf32_hppa_nbsd_vec - && link_info.output_bfd->xvec != &bfd_elf32_hppa_vec) + if (!(bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour + && elf_object_id (link_info.output_bfd) == HPPA_ELF_TDATA)) return; stub_file = lang_add_input_file ("linker stubs", diff --git a/ld/emultempl/ppc32elf.em b/ld/emultempl/ppc32elf.em index 79266a1..1a93ed4 100644 --- a/ld/emultempl/ppc32elf.em +++ b/ld/emultempl/ppc32elf.em @@ -27,17 +27,9 @@ fragment <<EOF #include "libbfd.h" #include "elf32-ppc.h" -extern const bfd_target bfd_elf32_powerpc_vec; -extern const bfd_target bfd_elf32_powerpcle_vec; -extern const bfd_target bfd_elf32_powerpc_vxworks_vec; - -static inline int -is_ppc_elf32_vec(const bfd_target * vec) -{ - return (vec == &bfd_elf32_powerpc_vec - || vec == &bfd_elf32_powerpc_vxworks_vec - || vec == &bfd_elf32_powerpcle_vec); -} +#define is_ppc_elf(bfd) \ + (bfd_get_flavour (bfd) == bfd_target_elf_flavour \ + && elf_object_id (bfd) == PPC32_ELF_TDATA) /* Whether to run tls optimization. */ static int notlsopt = 0; @@ -52,7 +44,7 @@ static int old_got = 0; static void ppc_after_open (void) { - if (is_ppc_elf32_vec (link_info.output_bfd->xvec)) + if (is_ppc_elf (link_info.output_bfd)) { int new_plt; int keep_new; @@ -109,7 +101,7 @@ ppc_after_open (void) static void ppc_before_allocation (void) { - if (is_ppc_elf32_vec (link_info.output_bfd->xvec)) + if (is_ppc_elf (link_info.output_bfd)) { if (ppc_elf_tls_setup (link_info.output_bfd, &link_info) && !notlsopt) { diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em index f6af695..51623b1 100644 --- a/ld/emultempl/ppc64elf.em +++ b/ld/emultempl/ppc64elf.em @@ -72,11 +72,8 @@ static int non_overlapping_opd = 0; static void ppc_create_output_section_statements (void) { - extern const bfd_target bfd_elf64_powerpc_vec; - extern const bfd_target bfd_elf64_powerpcle_vec; - - if (link_info.output_bfd->xvec != &bfd_elf64_powerpc_vec - && link_info.output_bfd->xvec != &bfd_elf64_powerpcle_vec) + if (!(bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour + && elf_object_id (link_info.output_bfd) == PPC64_ELF_TDATA)) return; link_info.wrap_char = '.'; |