X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=ld%2Femultempl%2Fsolaris2.em;h=4cdfa8cc2307abbb08e2a98e8dca5936d6498a2e;hb=618265039f697eab9e72bb58b95fc2d32925df58;hp=e0edce26461f7fc4114498821f5789e02805792a;hpb=b90efa5b79ac1524ec260f8eb89d1be37e0219a7;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/emultempl/solaris2.em b/ld/emultempl/solaris2.em index e0edce2646..4cdfa8cc23 100644 --- a/ld/emultempl/solaris2.em +++ b/ld/emultempl/solaris2.em @@ -9,7 +9,7 @@ fragment < This file is part of the GNU Binutils. @@ -35,8 +35,12 @@ fragment <forced_local = 1; + /* Type should be STT_OBJECT, not STT_NOTYPE. */ + h->type = STT_OBJECT; + } } /* Only do this if emitting a shared object and versioning is in place. */ - if (link_info.shared - && (link_info.version_info != NULL + if (bfd_link_dll (&link_info) + && ((link_info.version_info != NULL + && link_info.version_info->name[0] != '\0') || link_info.create_default_symver)) { struct bfd_elf_version_expr *globals = NULL, *locals = NULL; @@ -109,47 +137,6 @@ elf_solaris2_before_allocation (void) gld${EMULATION_NAME}_before_allocation (); } -/* The Solaris 2 ABI requires two local symbols to be emitted for every - executable and shared object. - - Cf. Linker and Libraries Guide, Ch. 2, Link-Editor, Generating the Output - File, p.63. */ -static void -elf_solaris2_after_allocation (void) -{ - /* Local symbols required by the Solaris 2 ABI. Already emitted by - emulparams/solaris2.sh. */ - static const char *local_syms[] = { - "_START_", - "_END_", - NULL - }; - const char **sym; - - /* Do this for both executables and shared objects. */ - if (!link_info.relocatable) - { - for (sym = local_syms; *sym != NULL; sym++) - { - struct elf_link_hash_entry *h; - - /* Lookup symbol. */ - h = elf_link_hash_lookup (elf_hash_table (&link_info), *sym, - FALSE, FALSE, FALSE); - if (h == NULL) - continue; - - /* Turn it local. */ - h->forced_local = 1; - /* Type should be STT_OBJECT, not STT_NOTYPE. */ - h->type = STT_OBJECT; - } - } - - gld${EMULATION_NAME}_after_allocation (); -} - EOF LDEMUL_BEFORE_ALLOCATION=elf_solaris2_before_allocation -LDEMUL_AFTER_ALLOCATION=elf_solaris2_after_allocation