ghostscript/fix.including.pread.pwrite.pthread_mutexattr_settype.diff
Johannes Meixner edc9d0cc50 Accepting request 293106 from home:jsmeix:branches:Printing
Version upgrade to 9.16rc2 (second release candidate for 9.16) for testing if it works. Now it also builds for SLE_11_SP3.

OBS-URL: https://build.opensuse.org/request/show/293106
OBS-URL: https://build.opensuse.org/package/show/Printing/ghostscript?expand=0&rev=50
2015-03-25 14:14:43 +00:00

93 lines
3.0 KiB
Diff

From: Chris Liddell <chris.liddell@artifex.com>
Date: Mon, 23 Mar 2015 17:03:41 +0000 (+0000)
Subject: Bug 695882: ensure function protypes are available
X-Git-Url: http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff_plain;h=8bb53a7f
Bug 695882: ensure function protypes are available
There are some special defines on Linux to include prototypes for pread, pwrite
and pthread_mutexattr_settype: add these to our "unistd_.h" header.
Also, tweak the the configure script to check for prototypes as well as just
successful linking before including the code that uses those functions
No cluster differences
--- base/gp_psync.c
+++ base/gp_psync.c
@@ -17,6 +17,7 @@
/* POSIX pthreads threads / semaphore / monitor implementation */
#include "std.h"
#include "malloc_.h"
+#include "unistd_.h" /* for __USE_UNIX98 */
#include <pthread.h>
#include "gserrors.h"
#include "gpsync.h"
--- base/unistd_.h
+++ base/unistd_.h
@@ -53,6 +53,7 @@
/* _XOPEN_SOURCE 500 define is needed to get
* access to pread and pwrite */
# define _XOPEN_SOURCE 500
+# define __USE_UNIX98
# include <unistd.h>
#endif
--- configure.ac
+++ configure.ac
@@ -494,6 +494,16 @@ AC_CHECK_LIB(m, cos)
AC_CHECK_FUNCS([pread pwrite], [HAVE_PREAD_PWRITE="-DHAVE_PREAD_PWRITE=1"], [HAVE_PREAD_PWRITE=])
+if test "x$HAVE_PREAD_PWRITE" != "x"; then
+ save_cflags=$CFLAGS
+ CFLAGS="$CFLAGS -D__USE_UNIX98=1 -D_XOPEN_SOURCE=500"
+ AC_CHECK_DECLS([pwrite,pread], [], [HAVE_PREAD_PWRITE=])
+ CFLAGS=$save_cflags
+ if test "x$HAVE_PREAD_PWRITE" != "x"; then
+ GCFLAGS="$GCFLAGS -D__USE_UNIX98=1"
+ fi
+fi
+
AC_SUBST(HAVE_PREAD_PWRITE)
SYNC="nosync"
@@ -515,11 +525,34 @@ if test "x$HAVE_PREAD_PWRITE" != "x"; then
SYNC=posync;
PTHREAD_LIBS="-lpthread"
])
+ AC_MSG_CHECKING([recursive mutexes.......])
AC_TRY_COMPILE([#include <pthread.h>],
- [static int k = PTHREAD_MUTEX_RECURSIVE;],
+ [
+ static int k = PTHREAD_MUTEX_RECURSIVE;
+ #ifndef pthread_mutexattr_settype
+ #ifdef __cplusplus
+ (void) pthread_mutexattr_settype;
+ #else
+ (void) pthread_mutexattr_settype;
+ #endif
+ #endif
+ ;
+ return 0;
+ ],
[RECURSIVE_MUTEXATTR="-DGS_RECURSIVE_MUTEXATTR=PTHREAD_MUTEX_RECURSIVE"],
[AC_TRY_COMPILE([#include <pthread.h>],
- [static int k = PTHREAD_MUTEX_RECURSIVE_NP;],
+ [
+ static int k = PTHREAD_MUTEX_RECURSIVE_NP;
+ #ifndef pthread_mutexattr_settype
+ #ifdef __cplusplus
+ (void) pthread_mutexattr_settype;
+ #else
+ (void) pthread_mutexattr_settype;
+ #endif
+ #endif
+ ;
+ return 0;
+ ],
[RECURSIVE_MUTEXATTR="-DGS_RECURSIVE_MUTEXATTR=PTHREAD_MUTEX_RECURSIVE_NP"])])
;;
esac