openpkg/rpm.patch.porting

changeset 330
51aab9414a86
parent 14
0cd2ee160ef5
child 333
4ecfc2416fd8
     1.1 --- a/openpkg/rpm.patch.porting	Sat Mar 26 13:26:07 2011 +0100
     1.2 +++ b/openpkg/rpm.patch.porting	Sat Mar 26 17:30:52 2011 +0100
     1.3 @@ -846,7 +846,7 @@
     1.4   #if defined(_LIBC)
     1.5   #include <sys/param.h>
     1.6   #include <include/sys/stat.h>
     1.7 -@@ -45,20 +47,49 @@
     1.8 +@@ -45,20 +47,52 @@
     1.9   #include <string.h>
    1.10   #include <unistd.h>
    1.11   #else
    1.12 @@ -854,7 +854,8 @@
    1.13  +#if defined(OPENPKG_HPUX)
    1.14   # define        _INCLUDE_POSIX_SOURCE
    1.15   #   define __errno_location() 	(&errno)
    1.16 - #   define dirfd(dirp)		-1
    1.17 +-#   define dirfd(dirp)		-1
    1.18 ++#   define locdirfd(dirp)		-1
    1.19   #   define stat64		stat
    1.20   #   define _STAT_VER		0
    1.21   #   define __fxstat64(_stat_ver, _fd, _sbp)	fstat((_fd), (_sbp))
    1.22 @@ -863,7 +864,8 @@
    1.23  -#if defined(sun)
    1.24  +#if defined(sun) || defined(OPENPKG_UNIXWARE)
    1.25   #   define __errno_location()	(&errno)
    1.26 - #   define dirfd(dirp)		-1
    1.27 +-#   define dirfd(dirp)		-1
    1.28 ++#   define locdirfd(dirp)		-1
    1.29   #   define _STAT_VER		0
    1.30   #   define __fxstat64(_stat_ver, _fd, _sbp)	fstat((_fd), (_sbp))
    1.31   #endif
    1.32 @@ -876,7 +878,7 @@
    1.33  +#endif
    1.34  +#if defined(__osf__)
    1.35  +#   define __errno_location()   (&errno)
    1.36 -+#   define dirfd(dirp)          -1
    1.37 ++#   define locdirfd(dirp)       -1
    1.38  +#   define stat64               stat
    1.39  +#   define _STAT_VER            0
    1.40  +#   define __fxstat64(_stat_ver, _fd, _sbp)     fstat((_fd), (_sbp))
    1.41 @@ -884,21 +886,24 @@
    1.42  +#endif
    1.43  +#if defined(OPENPKG_IRIX64)
    1.44  +#   define __errno_location()   (&errno)
    1.45 -+#   define dirfd(dirp)          -1
    1.46 ++#   define locdirfd(dirp)       -1
    1.47  +#   define __fxstat64(_stat_ver, _fd, _sbp)     fstat((_fd), (_sbp))
    1.48  +#   define _D_EXACT_NAMLEN(d) ((d)->d_reclen)
    1.49  +#endif
    1.50  +#if defined(OPENPKG_AIX)
    1.51  +#   define __errno_location()   (&errno)
    1.52  +#   define _STAT_VER            0
    1.53 -+#   define dirfd(dirp)          ((dirp)->dd_fd)
    1.54 ++#   define locdirfd(dirp)       ((dirp)->dd_fd)
    1.55  +#   define __fxstat64(_stat_ver, _fd, _sbp)     fstat((_fd), (_sbp))
    1.56  +#   define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
    1.57  +#endif
    1.58 ++#if !defined(locdirfd)
    1.59 ++#   define locdirfd(dirp)  dirfd(dirp)
    1.60 ++#endif
    1.61   #include "system.h"
    1.62   #include "fts.h"
    1.63   #include "rpmio.h"
    1.64 -@@ -73,7 +104,12 @@
    1.65 +@@ -73,7 +107,12 @@
    1.66   /* Largest alignment size needed, minus one.
    1.67      Usually long double is the worst case.  */
    1.68   #ifndef ALIGNBYTES
    1.69 @@ -911,7 +916,7 @@
    1.70   #endif
    1.71   /* Align P to that size.  */
    1.72   #ifndef ALIGN
    1.73 -@@ -107,9 +143,13 @@
    1.74 +@@ -107,9 +146,13 @@
    1.75   	/*@modifies fileSystem, internalState @*/;
    1.76   
    1.77   #ifndef MAX
    1.78 @@ -925,6 +930,15 @@
    1.79   #endif
    1.80   
    1.81   #define	ISDOT(a)	(a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2])))
    1.82 +@@ -719,7 +762,7 @@
    1.83 + 	 */
    1.84 + 	cderrno = 0;
    1.85 + 	if (nlinks || type == BREAD) {
    1.86 +-		if (fts_safe_changedir(sp, cur, dirfd(dirp), NULL)) {
    1.87 ++		if (fts_safe_changedir(sp, cur, locdirfd(dirp), NULL)) {
    1.88 + 			if (nlinks && type == BREAD)
    1.89 + 				cur->fts_errno = errno;
    1.90 + 			cur->fts_flags |= FTS_DONTCHDIR;
    1.91  
    1.92  +---------------------------------------------------------------------------
    1.93  | Remove inclusion of system <glob.h> because RPM uses its own glob(3)
    1.94 @@ -1524,10 +1538,3 @@
    1.95  -
    1.96   #endif	/* err.h */
    1.97  
    1.98 -+---------------------------------------------------------------------------
    1.99 -| Due to either GCC enforcing ISO C or faulty references in the
   1.100 -| rpmio component, Solaris 11 fails to build while compiling fts.c.
   1.101 -| Hack a custom 'dirent.h' as found in /usr/include, remove the
   1.102 -| line 104 'extern int dirfd(DIR *);' from the header file, and
   1.103 -| place in directory openpkg-`date +%Y%m%d`/rpm-<version>/rpmio/.
   1.104 -+---------------------------------------------------------------------------

mercurial