* emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Error if
authorAlan Modra <amodra@gmail.com>
Mon, 9 Aug 2004 06:48:37 +0000 (06:48 +0000)
committerAlan Modra <amodra@gmail.com>
Mon, 9 Aug 2004 06:48:37 +0000 (06:48 +0000)
.toc is too large on relocatable linking.

ld/ChangeLog
ld/emultempl/ppc64elf.em

index f1f45d8..658ea4a 100644 (file)
@@ -1,5 +1,10 @@
 2004-08-09  Alan Modra  <amodra@bigpond.net.au>
 
+       * emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Error if
+       .toc is too large on relocatable linking.
+
+2004-08-09  Alan Modra  <amodra@bigpond.net.au>
+
        * emultempl/ppc64elf.em (ppc_after_open): Delete.
        (LDEMUL_AFTER_OPEN): Don't define.
 
index 3ddf941..ffd6a2b 100644 (file)
@@ -352,6 +352,14 @@ gld${EMULATION_NAME}_finish (void)
   if (need_laying_out)
     ppc_layout_sections_again ();
 
+  if (link_info.relocatable)
+    {
+      asection *toc = bfd_get_section_by_name (output_bfd, ".toc");
+      if (toc != NULL
+         && bfd_section_size (output_bfd, toc) > 0x10000)
+       einfo ("%X%P: TOC section size exceeds 64k\n");
+    }
+
   if (stub_added)
     {
       char *msg = NULL;