bug-gnulib
[Top][All Lists]
Advanced

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

Minix support, part 7


From: Bruno Haible
Subject: Minix support, part 7
Date: Sun, 31 Jul 2011 23:07:48 +0200
User-agent: KMail/1.13.6 (Linux/2.6.37.6-0.5-desktop; KDE/4.6.0; x86_64; ; )

This error shows that <strings.h> is not self-contained:

gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I..  -DGNULIB_STRICT_CHECKING=1  
-DIN_GNULIB_TESTS=1  -I. -I.  -I.. -I./..  -I../gllib -I./../gllib  -Wall 
-I/home/bruno/prefix-minix-gcc/include  -g -O2 -MT test-ffs.o -MD -MP -MF 
$depbase.Tpo -c -o test-ffs.o test-ffs.c && mv -f $depbase.Tpo $depbase.Po
In file included from ../gllib/strings.h:28,
                 from test-ffs.c:20:
/usr/include/strings.h:6: error: expected declaration specifiers or '...' 
before '(' token
/usr/include/strings.h:7: error: expected declaration specifiers or '...' 
before '(' token
/usr/include/strings.h:7: error: conflicting types for '_PROTOTYPE'
/usr/include/strings.h:6: note: previous declaration of '_PROTOTYPE' was here
/usr/include/strings.h:8: error: expected declaration specifiers or '...' 
before '(' token
/usr/include/strings.h:8: error: conflicting types for '_PROTOTYPE'
/usr/include/strings.h:6: note: previous declaration of '_PROTOTYPE' was here
/usr/include/strings.h:10: error: expected declaration specifiers or '...' 
before '(' token
/usr/include/strings.h:10: error: conflicting types for '_PROTOTYPE'
/usr/include/strings.h:6: note: previous declaration of '_PROTOTYPE' was here
test-ffs.c:23: error: 'ffs' undeclared here (not in a function)
test-ffs.c: In function 'main':
test-ffs.c:48: warning: implicit declaration of function 'ffs'
*** Error code 1 (continuing)

This patch is the workaround.


2011-07-31  Bruno Haible  <address@hidden>

        strings: Add support for Minix.
        * lib/strings.in.h [Minix]: Include <sys/types.h> before <strings.h>.
        * m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Likewise.
        * doc/posix-headers/strings.texi: Document the Minix problem.

--- doc/posix-headers/strings.texi.orig Sun Jul 31 23:01:16 2011
+++ doc/posix-headers/strings.texi      Sun Jul 31 22:58:12 2011
@@ -7,6 +7,9 @@
 
 Portability problems fixed by Gnulib:
 @itemize
address@hidden
+This header file is not self-contained on some platforms:
+Minix 3.1.8.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- lib/strings.in.h.orig       Sun Jul 31 23:01:16 2011
+++ lib/strings.in.h    Sun Jul 31 22:57:18 2011
@@ -23,6 +23,12 @@
 #endif
 @PRAGMA_COLUMNS@
 
+/* Minix 3.1.8 has a bug: <sys/types.h> must be included before <strings.h>.
+   But avoid namespace pollution on glibc systems.  */
+#if defined __minix && !defined __GLIBC__
+# include <sys/types.h>
+#endif
+
 /* The include_next requires a split double-inclusion guard.  */
 address@hidden@ @NEXT_STRINGS_H@
 
--- m4/strings_h.m4.orig        Sun Jul 31 23:01:17 2011
+++ m4/strings_h.m4     Sun Jul 31 23:00:00 2011
@@ -1,5 +1,5 @@
 # Configure a replacement for <strings.h>.
-# serial 4
+# serial 5
 
 # Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
@@ -20,7 +20,11 @@
 
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use.
-  gl_WARN_ON_USE_PREPARE([[#include <strings.h>
+  gl_WARN_ON_USE_PREPARE([[
+    /* Minix 3.1.8 has a bug: <sys/types.h> must be included before
+       <strings.h>.  */
+    #include <sys/types.h>
+    #include <strings.h>
     ]], [ffs strcasecmp strncasecmp])
 ])
 

-- 
In memoriam Jean Jaurès <http://en.wikipedia.org/wiki/Jean_Jaurès>



reply via email to

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