Package: fakeroot
Version: 1.5.4
Tags: patch
Here are the changes needed for solaris 10. A couple of syscalls were
changed to the _x convention (similar to __x on linux). But not all, esp.
the 64bit versions, which unveils a bug in wrapfunc.inp, where we were
using the fstat arguments to call fstat64. Could that be related to
#218386 ?
diff -ru fakeroot-1.5.4.orig/configure.ac fakeroot-1.5.4/configure.ac
--- fakeroot-1.5.4.orig/configure.ac 2005-09-05 01:29:59.000000000 +0200
+++ fakeroot-1.5.4/configure.ac 2005-11-02 14:07:47.619140000 +0100
@@ -234,7 +234,11 @@
done
dnl find out how stat() etc are called. On linux systems, we really
-dnl need to wrap __xstat(), on Solaris _stat, on Digital Unix stat() (IIRC)
+dnl need to wrap (IIRC):
+dnl Linux : __xstat
+dnl Solaris <=9 : _stat
+dnl Solaris 10 : _xstat
+dnl Digital Unix: stat
:>fakerootconfig.h.tmp
@@ -242,7 +246,7 @@
FUNC=`echo $SEARCH|sed -e 's/.*%//'`
PRE=`echo $SEARCH|sed -e 's/%.*//'`
FOUND=
- for WRAPPED in __${PRE}x${FUNC} __${PRE}${FUNC}13 ${PRE}${FUNC}; do
+ for WRAPPED in __${PRE}x${FUNC} _${PRE}x${FUNC} __${PRE}${FUNC}13
${PRE}${FUNC}; do
AC_CHECK_FUNCS($WRAPPED,FOUND=$WRAPPED)
dnl
dnl to unconditionally define only the _* functions, comment out the 2
lines above,
@@ -261,3 +265,3 @@
AC_DEFINE_UNQUOTED(NEXT_${PF}_NOARG, next_$FOUND)
- if test __"${PRE}x${FUNC}" != "${WRAPPED}"; then
+ if test __"${PRE}x${FUNC}" != "${WRAPPED}" && test
_"${PRE}x${FUNC}" != "${WRAPPED}" ; then
DEF_BEGIN=""
diff -ru fakeroot-1.5.4.orig/wrapfunc.inp fakeroot-1.5.4/wrapfunc.inp
--- fakeroot-1.5.4.orig/wrapfunc.inp 2005-05-20 16:25:04.000000000 +0200
+++ fakeroot-1.5.4/wrapfunc.inp 2005-11-02 14:22:37.313408000 +0100
@@ -26,7 +26,7 @@
#ifdef STAT64_SUPPORT
WRAP_LSTAT64;int;LSTAT64_ARG(int ver, const char *file_name, struct
stat64 *buf);LSTAT64_ARG(ver, file_name, buf);LSTAT64
WRAP_STAT64;int;STAT64_ARG(int ver, const char *file_name, struct stat64
*buf);STAT64_ARG(ver, file_name, buf);STAT64
-WRAP_FSTAT64;int;FSTAT_ARG(int ver, int fd, struct stat64
*buf);FSTAT_ARG(ver, fd, buf);FSTAT64
+WRAP_FSTAT64;int;FSTAT64_ARG(int ver, int fd, struct stat64
*buf);FSTAT64_ARG(ver, fd, buf);FSTAT64
#endif
WRAP_MKNOD;int;MKNOD_ARG(int ver, const char *pathname, mode_t mode,
dev_t XMKNOD_FRTH_ARG dev);MKNOD_ARG(ver, pathname, mode, dev);MKNOD