changeset 8421:faaa486649e7

Avoid error with SunPRO C 5.0 on Solaris 2.5.1.
author Bruno Haible <bruno@clisp.org>
date Sun, 11 Mar 2007 22:28:43 +0000
parents baddd6f5c9a3
children f968c473e8b7
files ChangeLog lib/dummy.c
diffstat 2 files changed, 20 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-11  Bruno Haible  <bruno@clisp.org>
+
+	* lib/dummy.c [__sun]: Define a dummy variable, not just a typedef.
+	Needed for Solaris 2.5.1 ranlib and SunPRO C 5.0.
+
 2007-03-11  Bruno Haible  <bruno@clisp.org>
 
 	* tests/test-stdbool.c (s, d, e, xlcbug): Disable checks that gnulib's
--- a/lib/dummy.c
+++ b/lib/dummy.c
@@ -1,5 +1,5 @@
 /* A dummy file, to prevent empty libraries from breaking builds.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   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,6 +25,20 @@
    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