[Top][All Lists]
[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
- dummy: fix for Solaris compiler,
Bruno Haible <=