* config/tc-ppc.c (ppc_frob_file_before_adjust): Warn if .toc too big.
authorAlan Modra <amodra@gmail.com>
Tue, 27 Jul 2004 13:56:55 +0000 (13:56 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 27 Jul 2004 13:56:55 +0000 (13:56 +0000)
(ppc_arch): Expand comment.

gas/ChangeLog
gas/config/tc-ppc.c

index 7fa3398a1a1d0b9e7fc3286891d755b33239299a..d8e4ccc440f031636f34fa896be45f10324d3126 100644 (file)
@@ -1,3 +1,8 @@
+2004-07-27  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/tc-ppc.c (ppc_frob_file_before_adjust): Warn if .toc too big.
+       (ppc_arch): Expand comment.
+
 2004-07-27  Tomer Levi  <Tomer.Levi@nsc.com>
 
        * config/tc-crx.c: Support evaluating the difference between two
index 7bc70113ff940913f09eaf995d3ee7e84d4bc250..3f54f9e50a4e89acec198f824a090642b451383e 100644 (file)
@@ -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 ()
@@ -1891,6 +1892,7 @@ void
 ppc_frob_file_before_adjust ()
 {
   symbolS *symp;
+  asection *toc;
 
   if (!ppc_obj64)
     return;
@@ -1922,6 +1924,11 @@ ppc_frob_file_before_adjust ()
 
     }
 
+  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)