Line 1... |
Line 1... |
/* COFF specific linker code.
|
/* COFF specific linker code.
|
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
|
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
|
2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
2004, 2005, 2006, 2007, 2008, 2009, 2011 Free Software Foundation, Inc.
|
Written by Ian Lance Taylor, Cygnus Support.
|
Written by Ian Lance Taylor, Cygnus Support.
|
|
|
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
|
|
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
Line 1017... |
Line 1017... |
goto error_return;
|
goto error_return;
|
}
|
}
|
|
|
/* Write out the global symbols. */
|
/* Write out the global symbols. */
|
finfo.failed = FALSE;
|
finfo.failed = FALSE;
|
coff_link_hash_traverse (coff_hash_table (info),
|
bfd_hash_traverse (&info->hash->table, _bfd_coff_write_global_sym, &finfo);
|
_bfd_coff_write_global_sym, &finfo);
|
|
if (finfo.failed)
|
if (finfo.failed)
|
goto error_return;
|
goto error_return;
|
|
|
/* The outsyms buffer is used by _bfd_coff_write_global_sym. */
|
/* The outsyms buffer is used by _bfd_coff_write_global_sym. */
|
if (finfo.outsyms != NULL)
|
if (finfo.outsyms != NULL)
|
Line 2514... |
Line 2513... |
return FALSE;
|
return FALSE;
|
|
|
return TRUE;
|
return TRUE;
|
}
|
}
|
|
|
/* Write out a global symbol. Called via coff_link_hash_traverse. */
|
/* Write out a global symbol. Called via bfd_hash_traverse. */
|
|
|
bfd_boolean
|
bfd_boolean
|
_bfd_coff_write_global_sym (struct coff_link_hash_entry *h, void *data)
|
_bfd_coff_write_global_sym (struct bfd_hash_entry *bh, void *data)
|
{
|
{
|
|
struct coff_link_hash_entry *h = (struct coff_link_hash_entry *) bh;
|
struct coff_final_link_info *finfo = (struct coff_final_link_info *) data;
|
struct coff_final_link_info *finfo = (struct coff_final_link_info *) data;
|
bfd *output_bfd;
|
bfd *output_bfd;
|
struct internal_syment isym;
|
struct internal_syment isym;
|
bfd_size_type symesz;
|
bfd_size_type symesz;
|
unsigned int i;
|
unsigned int i;
|
Line 2743... |
Line 2743... |
{
|
{
|
case bfd_link_hash_defined:
|
case bfd_link_hash_defined:
|
case bfd_link_hash_defweak:
|
case bfd_link_hash_defweak:
|
save_global_to_static = finfo->global_to_static;
|
save_global_to_static = finfo->global_to_static;
|
finfo->global_to_static = TRUE;
|
finfo->global_to_static = TRUE;
|
rtnval = _bfd_coff_write_global_sym (h, data);
|
rtnval = _bfd_coff_write_global_sym (&h->root.root, data);
|
finfo->global_to_static = save_global_to_static;
|
finfo->global_to_static = save_global_to_static;
|
break;
|
break;
|
default:
|
default:
|
break;
|
break;
|
}
|
}
|