+2015-12-01 Alan Modra <amodra@gmail.com>
+
+ * coff-rs6000.c (_bfd_xcoff_put_symbol_name): Replace abfd param
+ with info param. Test info->traditional_format rather than
+ BFD_TRADITIONAL_FORMAT flag.
+ * coff64-rs6000.c (_bfd_xcoff64_put_symbol_name): Likewise.
+ * libxcoff.h (struct xcoff_backend_data_rec): Update
+ _xcoff_put_symbol_name prototype.
+ (bfd_xcoff_put_symbol_name): Add info param.
+ * xcofflink.c (xcoff_find_tc0): Update bfd_xcoff_put_symbol_name call.
+ (xcoff_write_global_symbol): Likewise.
+ (xcoff_link_input_bfd): Test info->traditional_format rather than
+ BFD_TRADITIONAL_FORMAT flag.
+ * cofflink.c (_bfd_coff_final_link): Likewise.
+ (_bfd_coff_link_input_bfd, _bfd_coff_write_global_sym): Likewise.
+
2015-12-01 Alan Modra <amodra@gmail.com>
* po/SRC-POTFILES.in: Regenerate.
}
static bfd_boolean
-_bfd_xcoff_put_symbol_name (bfd *abfd, struct bfd_strtab_hash *strtab,
+_bfd_xcoff_put_symbol_name (struct bfd_link_info *info,
+ struct bfd_strtab_hash *strtab,
struct internal_syment *sym,
const char *name)
{
bfd_boolean hash;
bfd_size_type indx;
- hash = TRUE;
- if ((abfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
- hash = FALSE;
+ hash = !info->traditional_format;
indx = _bfd_stringtab_add (strtab, name, hash, FALSE);
if (indx == (bfd_size_type) -1)
return FALSE;
static unsigned int _bfd_xcoff64_swap_lineno_out
(bfd *, void *, void *);
static bfd_boolean _bfd_xcoff64_put_symbol_name
- (bfd *, struct bfd_strtab_hash *, struct internal_syment *, const char *);
+ (struct bfd_link_info *, struct bfd_strtab_hash *,
+ struct internal_syment *, const char *);
static bfd_boolean _bfd_xcoff64_put_ldsymbol_name
(bfd *, struct xcoff_loader_info *, struct internal_ldsym *, const char *);
static void _bfd_xcoff64_swap_sym_in
}
static bfd_boolean
-_bfd_xcoff64_put_symbol_name (bfd *abfd, struct bfd_strtab_hash *strtab,
+_bfd_xcoff64_put_symbol_name (struct bfd_link_info *info,
+ struct bfd_strtab_hash *strtab,
struct internal_syment *sym,
const char *name)
{
bfd_boolean hash;
bfd_size_type indx;
- hash = TRUE;
-
- if ((abfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
- hash = FALSE;
-
+ hash = !info->traditional_format;
indx = _bfd_stringtab_add (strtab, name, hash, FALSE);
if (indx == (bfd_size_type) -1)
if (string_size)
{
- bfd_boolean hash = ! (abfd->flags & BFD_TRADITIONAL_FORMAT);
+ bfd_boolean hash = !flaginfo.info->traditional_format;
bfd_size_type indx;
indx = _bfd_stringtab_add (flaginfo.strtab,
if (! flaginfo->info->keep_memory)
copy = TRUE;
hash = TRUE;
- if ((output_bfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
+ if (flaginfo->info->traditional_format)
hash = FALSE;
if (! _bfd_coff_get_external_symbols (input_bfd))
/* If this is an enum, struct, or union tag, see if we have
already output an identical type. */
if (! skip
- && (flaginfo->output_bfd->flags & BFD_TRADITIONAL_FORMAT) == 0
+ && !flaginfo->info->traditional_format
&& (isym.n_sclass == C_ENTAG
|| isym.n_sclass == C_STRTAG
|| isym.n_sclass == C_UNTAG)
bfd_size_type indx;
hash = TRUE;
- if ((output_bfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
+ if (flaginfo->info->traditional_format)
hash = FALSE;
indx = _bfd_stringtab_add (flaginfo->strtab, h->root.root.string, hash,
FALSE);
unsigned long _xcoff_ldhdr_version;
bfd_boolean (* _xcoff_put_symbol_name)
- (bfd *, struct bfd_strtab_hash *, struct internal_syment *,
- const char *);
+ (struct bfd_link_info *, struct bfd_strtab_hash *,
+ struct internal_syment *, const char *);
bfd_boolean (* _xcoff_put_ldsymbol_name)
(bfd *, struct xcoff_loader_info *, struct internal_ldsym *,
#define bfd_xcoff_ldhdr_version(a) ((xcoff_backend (a)->_xcoff_ldhdr_version))
-#define bfd_xcoff_put_symbol_name(a, b, c, d) \
- ((xcoff_backend (a)->_xcoff_put_symbol_name) ((a), (b), (c), (d)))
+#define bfd_xcoff_put_symbol_name(a, b, c, d, e) \
+ ((xcoff_backend (a)->_xcoff_put_symbol_name) ((b), (c), (d), (e)))
#define bfd_xcoff_put_ldsymbol_name(a, b, c, d) \
((xcoff_backend (a)->_xcoff_put_ldsymbol_name) ((a), (b), (c), (d)))
if (! flinfo->info->keep_memory)
copy = TRUE;
hash = TRUE;
- if ((output_bfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
+ if (flinfo->info->traditional_format)
hash = FALSE;
if (! _bfd_coff_get_external_symbols (input_bfd))
xcoff_data (output_bfd)->sntoc = section_index;
/* Fill out the TC0 symbol. */
- if (!bfd_xcoff_put_symbol_name (output_bfd, flinfo->strtab, &irsym, "TOC"))
+ if (!bfd_xcoff_put_symbol_name (output_bfd, flinfo->info, flinfo->strtab,
+ &irsym, "TOC"))
return FALSE;
irsym.n_value = best_address;
irsym.n_scnum = section_index;
the reloc. */
if (flinfo->info->strip != strip_all)
{
- result = bfd_xcoff_put_symbol_name (output_bfd, flinfo->strtab,
+ result = bfd_xcoff_put_symbol_name (output_bfd, flinfo->info,
+ flinfo->strtab,
&irsym, h->root.root.string);
if (!result)
return FALSE;
h->indx = obj_raw_syment_count (output_bfd);
- result = bfd_xcoff_put_symbol_name (output_bfd, flinfo->strtab, &isym,
- h->root.root.string);
+ result = bfd_xcoff_put_symbol_name (output_bfd, flinfo->info, flinfo->strtab,
+ &isym, h->root.root.string);
if (!result)
return FALSE;