bug-gnulib
[Top][All Lists]
Advanced

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

tcgetsid on HP-UX 11.00


From: Bruno Haible
Subject: tcgetsid on HP-UX 11.00
Date: Sun, 2 Jan 2011 13:30:34 +0100
User-agent: KMail/1.9.9

On HP-UX 11.00 with gcc, I'm seeing this error:

g++ -DHAVE_CONFIG_H -I.   -DGNULIB_STRICT_CHECKING=1  -I. -I.  -I.. -I./..  
-I../gllib -I./../gllib -Wall   -MT test-termios-c++.o -MD -MP -MF $depbase.Tpo 
-c -o test-termios-c++.o test-termios-c++.cc
In file included from test-termios-c++.cc:22:
/usr/include/sys/termio.h:290: error: previous declaration of 'pid_t 
tcgetsid(int)' with 'C++' linkage
../gllib/termios.h:353: error: conflicts with new declaration with 'C' linkage
test-termios-c++.cc:28: warning: 'signature_check28' defined but not used
*** Error exit code 1

The reason is that /usr/include/sys/termio.h is lacking an 'extern "C"'
specifier for the tcgetsid declaration. This patch provides a workaround.


2011-01-02  Bruno Haible  <address@hidden>

        tcgetsid: Correct linkage in C++ mode on HP-UX 11.00.
        * lib/termios.in.h: In C++ mode, on HP-UX, include <sys/termios.h> with
        C linkage.
        * doc/posix-functions/tcgetsid.texi: Mention the HP-UX 11.00 bug.

--- doc/posix-functions/tcgetsid.texi.orig      Sun Jan  2 13:26:23 2011
+++ doc/posix-functions/tcgetsid.texi   Sun Jan  2 13:25:43 2011
@@ -14,6 +14,10 @@
 @item
 This function is not declared on some platforms:
 OSF/1 5.1.
address@hidden
+The declaration of this function in C++ compilation units has C++ linkage, not
+C linkage, on some platforms:
+HP-UX 11.00.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- lib/termios.in.h.orig       Sun Jan  2 13:26:23 2011
+++ lib/termios.in.h    Sun Jan  2 13:18:54 2011
@@ -22,6 +22,17 @@
 #endif
 @PRAGMA_COLUMNS@
 
+/* On HP-UX 11.00, some of the function declarations in <sys/termio.h>,
+   included by <termios.h>, are not protected by extern "C".  Enforce
+   "C" linkage for these functions nevertheless.  */
+#if defined __hpux && defined __cplusplus
+# include <sys/types.h>
+# include <sys/ioctl.h>
+extern "C" {
+# include <sys/termio.h>
+}
+#endif
+
 /* The include_next requires a split double-inclusion guard.  */
 #if @HAVE_TERMIOS_H@
 # @INCLUDE_NEXT@ @NEXT_TERMIOS_H@



reply via email to

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