bug-gnulib
[Top][All Lists]
Advanced

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

open() on HP-UX


From: Bruno Haible
Subject: open() on HP-UX
Date: Fri, 31 Dec 2010 14:20:54 +0100
User-agent: KMail/1.9.9

On HP-UX 11.11, I'm observing this compilation error in C++ mode:

g++ -DHAVE_CONFIG_H -I.   -DGNULIB_STRICT_CHECKING=1  -I. -I.  -I.. -I./..  
-I../gllib -I./../gllib -Wall   -MT test-fcntl-h-c++.o -MD -MP -MF $depbase.Tpo 
-c -o test-fcntl-h-c++.o test-fcntl-h-c++.cc
In file included from test-fcntl-h-c++.cc:22:
../gllib/fcntl.h:416: error: default argument given for parameter 3 of 'int 
open(const char*, int, mode_t)'
/usr/include/sys/fcntl.h:256: error: after previous specification in 'int 
open(const char*, int, mode_t)'
*** Error exit code 1

The reason is that in this situation, open() is defined as an inline function
with a default argument:

  #if defined(__cplusplus) && defined(_APP32_64BIT_OFF_T)
  ...
  inline int open(const char *a, int b, mode_t c=0)
  ...

This patch avoids the error.


2010-12-31  Bruno Haible  <address@hidden>

        open: Avoid C++ error on HP-UX 11.
        * lib/fcntl.in.h (open): Disable _GL_CXXALIASWARN invocation on HP-UX.

--- lib/fcntl.in.h.orig Fri Dec 31 14:16:35 2010
+++ lib/fcntl.in.h      Fri Dec 31 14:16:27 2010
@@ -107,7 +107,11 @@
 # else
 _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
 # endif
+/* On HP-UX 11, in C++ mode, open() is defined as an inline function with a
+   default argument.  _GL_CXXALIASWARN does not work in this case.  */
+# if !defined __hpux
 _GL_CXXALIASWARN (open);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef open
 /* Assume open is always declared.  */



reply via email to

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