changeset 14083:5c5416c2942e

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.
author Bruno Haible <bruno@clisp.org>
date Sun, 02 Jan 2011 13:30:17 +0100
parents 42f8fcc42425
children 97a98716cf16
files ChangeLog doc/posix-functions/tcgetsid.texi lib/termios.in.h
diffstat 3 files changed, 22 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-01-02  Bruno Haible  <bruno@clisp.org>
+
+	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.
+
 2011-01-01  Ben Pfaff  <blp@cs.stanford.edu>
 
 	Rename uc_is_grapheme_cluster_break() to uc_is_grapheme_break()
--- a/doc/posix-functions/tcgetsid.texi
+++ b/doc/posix-functions/tcgetsid.texi
@@ -14,6 +14,10 @@
 @item
 This function is not declared on some platforms:
 OSF/1 5.1.
+@item
+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:
--- a/lib/termios.in.h
+++ b/lib/termios.in.h
@@ -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@