projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* config/tc-ppc.c (ppc_frob_file_before_adjust): Warn if .toc too big.
[deliverable/binutils-gdb.git]
/
gas
/
config
/
tc-ppc.c
diff --git
a/gas/config/tc-ppc.c
b/gas/config/tc-ppc.c
index d4893e7610d495787b7c00cc0569702ff601db2c..3f54f9e50a4e89acec198f824a090642b451383e 100644
(file)
--- a/
gas/config/tc-ppc.c
+++ b/
gas/config/tc-ppc.c
@@
-1156,7
+1156,8
@@
ppc_set_cpu ()
}
}
}
}
-/* Figure out the BFD architecture to use. */
+/* Figure out the BFD architecture to use. This function and ppc_mach
+ are called well before md_begin, when the output file is opened. */
enum bfd_architecture
ppc_arch ()
enum bfd_architecture
ppc_arch ()
@@
-1891,6
+1892,7
@@
void
ppc_frob_file_before_adjust ()
{
symbolS *symp;
ppc_frob_file_before_adjust ()
{
symbolS *symp;
+ asection *toc;
if (!ppc_obj64)
return;
if (!ppc_obj64)
return;
@@
-1918,11
+1920,15
@@
ppc_frob_file_before_adjust ()
free (dotname);
if (dotsym != NULL && (symbol_used_p (dotsym)
|| symbol_used_in_reloc_p (dotsym)))
free (dotname);
if (dotsym != NULL && (symbol_used_p (dotsym)
|| symbol_used_in_reloc_p (dotsym)))
- {
- symbol_mark_used (symp);
- }
+ symbol_mark_used (symp);
+
}
}
+ toc = bfd_get_section_by_name (stdoutput, ".toc");
+ if (toc != NULL
+ && bfd_section_size (stdoutput, toc) > 0x10000)
+ as_warn (_("TOC section size exceeds 64k"));
+
/* Don't emit .TOC. symbol. */
symp = symbol_find (".TOC.");
if (symp != NULL)
/* Don't emit .TOC. symbol. */
symp = symbol_find (".TOC.");
if (symp != NULL)
@@
-4843,7
+4849,7
@@
ppc_frob_symbol (sym)
table. */
if (! symbol_used_in_reloc_p (sym)
&& ((symbol_get_bfdsym (sym)->flags & BSF_SECTION_SYM) != 0
table. */
if (! symbol_used_in_reloc_p (sym)
&& ((symbol_get_bfdsym (sym)->flags & BSF_SECTION_SYM) != 0
- || (!
S_IS_EXTERNAL (sym
)
+ || (!
(S_IS_EXTERNAL (sym) || S_IS_WEAK (sym)
)
&& ! symbol_get_tc (sym)->output
&& S_GET_STORAGE_CLASS (sym) != C_FILE)))
return 1;
&& ! symbol_get_tc (sym)->output
&& S_GET_STORAGE_CLASS (sym) != C_FILE)))
return 1;
@@
-4909,7
+4915,7
@@
ppc_frob_symbol (sym)
}
}
}
}
- if (!
S_IS_EXTERNAL (sym
)
+ if (!
(S_IS_EXTERNAL (sym) || S_IS_WEAK (sym)
)
&& (symbol_get_bfdsym (sym)->flags & BSF_SECTION_SYM) == 0
&& S_GET_STORAGE_CLASS (sym) != C_FILE
&& S_GET_STORAGE_CLASS (sym) != C_FCN
&& (symbol_get_bfdsym (sym)->flags & BSF_SECTION_SYM) == 0
&& S_GET_STORAGE_CLASS (sym) != C_FILE
&& S_GET_STORAGE_CLASS (sym) != C_FCN
This page took
0.024529 seconds
and
4
git commands to generate.