bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

dummy: fix for Solaris compiler


From: Bruno Haible
Subject: dummy: fix for Solaris compiler
Date: Sun, 11 Mar 2007 23:28:41 +0100
User-agent: KMail/1.5.4

The 'dummy' module should avoid errors when libgnu.a is empty. But it does
not work with the Solaris /usr/ccs/bin/ranlib and Sun C 5.0. In such a case,
although libgnu.a contains a dummy.o, the compiler complains:

cc -O -DHAVE_CONFIG_H -I. -I..      -g -c dummy.c
rm -f libgnu.a
ar cru libgnu.a dummy.o
ranlib libgnu.a
...
ild: (bad file) garbled symbol table in archive ../gllib/libgnu.a

Same error when dummy.c defines a locally visible variable only. Really one
needs an exported variable or function.

2007-03-11  Bruno Haible  <address@hidden>

        * lib/dummy.c [__sun]: Define a dummy variable, not just a typedef.
        Needed for Solaris 2.5.1 ranlib and SunPRO C 5.0.

*** lib/dummy.c 14 May 2005 06:03:58 -0000      1.3
--- lib/dummy.c 11 Mar 2007 22:22:36 -0000
***************
*** 1,5 ****
  /* A dummy file, to prevent empty libraries from breaking builds.
!    Copyright (C) 2004 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
--- 1,5 ----
  /* A dummy file, to prevent empty libraries from breaking builds.
!    Copyright (C) 2004, 2007 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
***************
*** 25,30 ****
--- 25,44 ----
     Compiling this file, and adding its object file to the library, will
     prevent the library from being empty.  */
  
+ /* Some systems, such as Solaris with cc 5.0, refuse to work with libraries
+    that don't export any symbol.  You might get an error like:
+ 
+    > cc ... libgnu.a
+    > ild: (bad file) garbled symbol table in archive ../gllib/libgnu.a
+ 
+    Compiling this file, and adding its object file to the library, will
+    prevent the library from exporting no symbols.  */
+ 
+ #ifdef __sun
+ /* This declaration ensures that the library will export at least 1 symbol.  
*/
+ int dummy;
+ #else
  /* This declaration is solely to ensure that after preprocessing
     this file is never empty.  */
  typedef int dummy;
+ #endif





reply via email to

[Prev in Thread] Current Thread [Next in Thread]