changeset 17280:b83fbc95abc4

stdlib: port to Solaris 2.6 Also, the code worked on Solaris 7 through 9 only by accident. Problem reported by Tom G. Christensen in <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00059.html>. * lib/stdlib.in.h: If __need_system_stdlib_h is defined, simply include the system stdlib.h. * lib/getopt.in.h (__need_system_stdlib_h): * lib/pthread.in.h (__need_system_stdlib_h): * lib/unistd.in.h (__need_system_stdlib_h) [!__GLIBC__]: Define when including <stdlib.h>, to avoid problems at least for the pthread case on Solaris 2.6 and 7. These .h files can get by with the system stdlib.h.
author Paul Eggert <eggert@cs.ucla.edu>
date Tue, 08 Jan 2013 12:32:05 -0800
parents ba79ea8176b5
children 01978a889dad
files ChangeLog lib/getopt.in.h lib/pthread.in.h lib/stdlib.in.h lib/unistd.in.h
diffstat 5 files changed, 26 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2013-01-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+	stdlib: port to Solaris 2.6
+	Also, the code worked on Solaris 7 through 9 only by accident.
+	Problem reported by Tom G. Christensen in
+	<http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00059.html>.
+	* lib/stdlib.in.h: If __need_system_stdlib_h is defined,
+	simply include the system stdlib.h.
+	* lib/getopt.in.h (__need_system_stdlib_h):
+	* lib/pthread.in.h (__need_system_stdlib_h):
+	* lib/unistd.in.h (__need_system_stdlib_h) [!__GLIBC__]:
+	Define when including <stdlib.h>, to avoid problems at least for
+	the pthread case on Solaris 2.6 and 7.  These .h files can get by
+	with the system stdlib.h.
+
 2013-01-06  Paul Eggert  <eggert@cs.ucla.edu>
 
 	doc: update main copyright year
--- a/lib/getopt.in.h
+++ b/lib/getopt.in.h
@@ -49,7 +49,9 @@
    linkers.  */
 #if defined __GETOPT_PREFIX && !defined __need_getopt
 # if !@HAVE_GETOPT_H@
+#  define __need_system_stdlib_h
 #  include <stdlib.h>
+#  undef __need_system_stdlib_h
 #  include <stdio.h>
 #  include <unistd.h>
 # endif
--- a/lib/pthread.in.h
+++ b/lib/pthread.in.h
@@ -32,8 +32,11 @@
 #ifndef _@GUARD_PREFIX@_PTHREAD_H_
 #define _@GUARD_PREFIX@_PTHREAD_H_
 
+#define __need_system_stdlib_h
+#include <stdlib.h>
+#undef __need_system_stdlib_h
+
 #include <errno.h>
-#include <stdlib.h>
 #include <sched.h>
 #include <sys/types.h>
 #include <time.h>
--- a/lib/stdlib.in.h
+++ b/lib/stdlib.in.h
@@ -20,8 +20,9 @@
 #endif
 @PRAGMA_COLUMNS@
 
-#if defined __need_malloc_and_calloc
-/* Special invocation convention inside glibc header files.  */
+#if defined __need_system_stdlib_h || defined __need_malloc_and_calloc
+/* Special invocation conventions inside some gnulib header files,
+   and inside some glibc header files, respectively.  */
 
 #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
 
--- a/lib/unistd.in.h
+++ b/lib/unistd.in.h
@@ -79,7 +79,9 @@
 /* Solaris declares getcwd not only in <unistd.h> but also in <stdlib.h>.  */
 /* But avoid namespace pollution on glibc systems.  */
 #ifndef __GLIBC__
+# define __need_system_stdlib_h
 # include <stdlib.h>
+# undef __need_system_stdlib_h
 #endif
 
 /* Native Windows platforms declare chdir, getcwd, rmdir in