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



Reply via email to