X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=ld%2Femultempl%2Fsolaris2.em;h=396f34ac81112590d44f298b5f7504187756815e;hb=f9a6a8f09dc2310d5f4a482a2e7ffc1be3984cd7;hp=0b773751ef3d1892e89d2d3eaff703404402cbba;hpb=18a1a992e09a0c3bfc61e6deb828d60a97b92b88;p=binutils-gdb.git diff --git a/ld/emultempl/solaris2.em b/ld/emultempl/solaris2.em index 0b773751ef3..396f34ac811 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 - && (lang_elf_version_info != NULL || link_info.create_default_symver)) + 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; struct bfd_elf_version_tree *basever; @@ -108,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