* sunos.c (sunos_add_one_symbol): Only set the sunos specific

fields if we are doing a sunos link.
This commit is contained in:
Ian Lance Taylor 1995-01-20 16:57:34 +00:00
parent 11618ce8f2
commit 04dc16b76b
2 changed files with 40 additions and 25 deletions

View File

@ -1,3 +1,15 @@
Fri Jan 20 11:44:45 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
* 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 <ian@sanguine.cygnus.com>
* 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 <ian@sanguine.cygnus.com>
* bfd-in.h (bfd_byte, reloc_howto_type): Define here, not...

View File

@ -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 (abfd->xvec == info->hash->creator)
{
if (bfd_is_und_section (section))
new_flag = SUNOS_REF_REGULAR;
/* 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_REGULAR;
}
else
{
if (bfd_is_und_section (section))
new_flag = SUNOS_REF_DYNAMIC;
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;