From b6298eaa3e08a581a7bbc5a4ee95c1f07401dfb5 Mon Sep 17 00:00:00 2001 From: mjmac Date: Thu, 28 Dec 2006 03:00:14 +0000 Subject: [PATCH] OK, let's try that again. * fix for build problem when b1_4_sles10 is actually built on sles10 --- libsysio/configure.in | 15 +++++++++++++++ libsysio/include/sysio.h | 4 ++++ libsysio/src/readlink.c | 4 ++++ 3 files changed, 23 insertions(+) diff --git a/libsysio/configure.in b/libsysio/configure.in index 9f83269..5de069a 100644 --- a/libsysio/configure.in +++ b/libsysio/configure.in @@ -198,6 +198,21 @@ if test "$machine" = rs6000; then machine="powerpc" fi +AC_MSG_CHECKING(if readlink returns ssize_t) +AC_TRY_COMPILE([ + include +],[ + ssize_t readlink(const char *, char *, size_t); +], + readlink_returns_ssize_t="yes", + readlink_returns_ssize_t="yes" +) +AC_MSG_RESULT($readlink_returns_ssize_t) +if test x$readlink_returns_ssize_t = xyes; then + AC_DEFINE(HAVE_POSIX_1003_READLINK, 1, [readlink returns ssize_t]) +fi + + # If we can't provoke the declaration of stat64 then we assume the # environment supports 64-bit file support naturally. Beware! AC_MSG_CHECKING(whether _LARGEFILE64_SOURCE definition is required) diff --git a/libsysio/include/sysio.h b/libsysio/include/sysio.h index 770d741..bae86c2 100644 --- a/libsysio/include/sysio.h +++ b/libsysio/include/sysio.h @@ -247,7 +247,11 @@ extern int SYSIO_INTERFACE_NAME(ftruncate64)(int fd, off64_t length); #endif extern int SYSIO_INTERFACE_NAME(rmdir)(const char *path); extern int SYSIO_INTERFACE_NAME(symlink)(const char *path1, const char *path2); +#ifdef HAVE_POSIX_1003_READLINK +extern ssize_t SYSIO_INTERFACE_NAME(readlink)(const char *path, +#else extern int SYSIO_INTERFACE_NAME(readlink)(const char *path, +#endif char *buf, size_t bufsiz); extern int SYSIO_INTERFACE_NAME(link)(const char *oldpath, const char *newpath); diff --git a/libsysio/src/readlink.c b/libsysio/src/readlink.c index 7053c62..f083744 100644 --- a/libsysio/src/readlink.c +++ b/libsysio/src/readlink.c @@ -51,7 +51,11 @@ #include "inode.h" #include "sysio-symbols.h" +#ifdef HAVE_POSIX_1003_READLINK +ssize_t +#else int +#endif SYSIO_INTERFACE_NAME(readlink)(const char *path, char *buf, size_t bufsiz) { struct intent intent; -- 1.8.3.1