From 04dc16b76b5164ce00213f0822234676d365eb5d Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 20 Jan 1995 16:57:34 +0000 Subject: [PATCH] * sunos.c (sunos_add_one_symbol): Only set the sunos specific fields if we are doing a sunos link. --- bfd/ChangeLog | 12 ++++++++++++ bfd/sunos.c | 53 +++++++++++++++++++++++++++------------------------ 2 files changed, 40 insertions(+), 25 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 63579580434..2eb4f020720 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,15 @@ +Fri Jan 20 11:44:45 1995 Ian Lance Taylor + + * sunos.c (sunos_add_one_symbol): Only set the sunos specific + fields if we are doing a sunos link. + +Wed Jan 18 12:28:17 1995 Ian Lance Taylor + + * cpu-h8300.c (h8300_info_struct): Change name from "H8/300" to + "h8300" for consistency with other cpu-* files. + (h8300h_info_struct): Change name from "H8/300H" to "h8300h". + * coff-h8300.c (special): Remove unused variable diff. + Tue Jan 17 10:52:32 1995 Ian Lance Taylor * bfd-in.h (bfd_byte, reloc_howto_type): Define here, not... diff --git a/bfd/sunos.c b/bfd/sunos.c index 71ad457fc86..157eba97a17 100644 --- a/bfd/sunos.c +++ b/bfd/sunos.c @@ -518,7 +518,7 @@ sunos_canonicalize_dynamic_reloc (abfd, storage, syms) #define SPARC_PLT_ENTRY_SIZE (12) -static bfd_byte sparc_plt_first_entry[SPARC_PLT_ENTRY_SIZE] = +static const bfd_byte sparc_plt_first_entry[SPARC_PLT_ENTRY_SIZE] = { /* sethi %hi(0),%g1; address filled in by runtime linker. */ 0x3, 0, 0, 0, @@ -542,7 +542,7 @@ static bfd_byte sparc_plt_first_entry[SPARC_PLT_ENTRY_SIZE] = #define M68K_PLT_ENTRY_SIZE (8) -static bfd_byte m68k_plt_first_entry[M68K_PLT_ENTRY_SIZE] = +static const bfd_byte m68k_plt_first_entry[M68K_PLT_ENTRY_SIZE] = { /* jmps @# */ 0x4e, 0xf9, @@ -891,32 +891,35 @@ sunos_add_one_symbol (info, abfd, name, flags, section, value, string, hashp)) return false; - /* Set a flag in the hash table entry indicating the type of - reference or definition we just found. Keep a count of the - number of dynamic symbols we find. A dynamic symbol is one which - is referenced or defined by both a regular object and a shared - object. */ - if ((abfd->flags & DYNAMIC) == 0) - { - if (bfd_is_und_section (section)) - new_flag = SUNOS_REF_REGULAR; - else - new_flag = SUNOS_DEF_REGULAR; - } - else + if (abfd->xvec == info->hash->creator) { - if (bfd_is_und_section (section)) - new_flag = SUNOS_REF_DYNAMIC; + /* Set a flag in the hash table entry indicating the type of + reference or definition we just found. Keep a count of the + number of dynamic symbols we find. A dynamic symbol is one + which is referenced or defined by both a regular object and a + shared object. */ + if ((abfd->flags & DYNAMIC) == 0) + { + if (bfd_is_und_section (section)) + new_flag = SUNOS_REF_REGULAR; + else + new_flag = SUNOS_DEF_REGULAR; + } else - new_flag = SUNOS_DEF_DYNAMIC; - } - h->flags |= new_flag; + { + if (bfd_is_und_section (section)) + new_flag = SUNOS_REF_DYNAMIC; + else + new_flag = SUNOS_DEF_DYNAMIC; + } + h->flags |= new_flag; - if (h->dynindx == -1 - && (h->flags & (SUNOS_DEF_REGULAR | SUNOS_REF_REGULAR)) != 0) - { - ++sunos_hash_table (info)->dynsymcount; - h->dynindx = -2; + if (h->dynindx == -1 + && (h->flags & (SUNOS_DEF_REGULAR | SUNOS_REF_REGULAR)) != 0) + { + ++sunos_hash_table (info)->dynsymcount; + h->dynindx = -2; + } } return true; -- 2.30.2