aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2012-12-14 19:39:22 +0100
committerYang Tse <yangsita@gmail.com>2012-12-14 19:39:22 +0100
commit0e8e340cba34837f89f393ec71bdaed2a4a02bf8 (patch)
tree562b6995f05d9bd094b72b828a19a27940c1c981 /lib
parenta0b207164c6c943adb8b3bf89b375a491b41806a (diff)
setup_once.h: HP-UX <sys/socket.h> issue workaround
Issue: When building a 32bit target with large file support HP-UX <sys/socket.h> header file may simultaneously provide two different sets of declarations for sendfile and sendpath functions, one with static and another with external linkage. Given that we do not use mentioned functions we really don't care which linkage is the appropriate one, but on the other hand, the double declaration emmits warnings when using the HP-UX compiler and errors when using modern gcc versions resulting in fatal compilation errors. Mentioned issue is now fixed as long as we don't use sendfile nor sendpath functions.
Diffstat (limited to 'lib')
-rw-r--r--lib/setup_once.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/setup_once.h b/lib/setup_once.h
index effe14bc3..df28af2f8 100644
--- a/lib/setup_once.h
+++ b/lib/setup_once.h
@@ -87,10 +87,30 @@
#include <unistd.h>
#endif
+#ifdef __hpux
+# if !defined(_XOPEN_SOURCE_EXTENDED) || defined(_KERNEL)
+# ifdef _APP32_64BIT_OFF_T
+# define OLD_APP32_64BIT_OFF_T _APP32_64BIT_OFF_T
+# undef _APP32_64BIT_OFF_T
+# else
+# undef OLD_APP32_64BIT_OFF_T
+# endif
+# endif
+#endif
+
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
+#ifdef __hpux
+# if !defined(_XOPEN_SOURCE_EXTENDED) || defined(_KERNEL)
+# ifdef OLD_APP32_64BIT_OFF_T
+# define _APP32_64BIT_OFF_T OLD_APP32_64BIT_OFF_T
+# undef OLD_APP32_64BIT_OFF_T
+# endif
+# endif
+#endif
+
/*
* Definition of timeval struct for platforms that don't have it.