openpkg/rpm.patch.porting

changeset 330
51aab9414a86
parent 14
0cd2ee160ef5
child 333
4ecfc2416fd8
equal deleted inserted replaced
1:4879229f7350 2:6541b1e31fc7
844 +#include <limits.h> 844 +#include <limits.h>
845 + 845 +
846 #if defined(_LIBC) 846 #if defined(_LIBC)
847 #include <sys/param.h> 847 #include <sys/param.h>
848 #include <include/sys/stat.h> 848 #include <include/sys/stat.h>
849 @@ -45,20 +47,49 @@ 849 @@ -45,20 +47,52 @@
850 #include <string.h> 850 #include <string.h>
851 #include <unistd.h> 851 #include <unistd.h>
852 #else 852 #else
853 -#if defined(hpux) 853 -#if defined(hpux)
854 +#if defined(OPENPKG_HPUX) 854 +#if defined(OPENPKG_HPUX)
855 # define _INCLUDE_POSIX_SOURCE 855 # define _INCLUDE_POSIX_SOURCE
856 # define __errno_location() (&errno) 856 # define __errno_location() (&errno)
857 # define dirfd(dirp) -1 857 -# define dirfd(dirp) -1
858 +# define locdirfd(dirp) -1
858 # define stat64 stat 859 # define stat64 stat
859 # define _STAT_VER 0 860 # define _STAT_VER 0
860 # define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) 861 # define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
861 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen) 862 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
862 #endif 863 #endif
863 -#if defined(sun) 864 -#if defined(sun)
864 +#if defined(sun) || defined(OPENPKG_UNIXWARE) 865 +#if defined(sun) || defined(OPENPKG_UNIXWARE)
865 # define __errno_location() (&errno) 866 # define __errno_location() (&errno)
866 # define dirfd(dirp) -1 867 -# define dirfd(dirp) -1
868 +# define locdirfd(dirp) -1
867 # define _STAT_VER 0 869 # define _STAT_VER 0
868 # define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) 870 # define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
869 #endif 871 #endif
870 +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(OPENPKG_DARWIN) 872 +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(OPENPKG_DARWIN)
871 +# define __errno_location() (&errno) 873 +# define __errno_location() (&errno)
874 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) 876 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
875 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen) 877 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
876 +#endif 878 +#endif
877 +#if defined(__osf__) 879 +#if defined(__osf__)
878 +# define __errno_location() (&errno) 880 +# define __errno_location() (&errno)
879 +# define dirfd(dirp) -1 881 +# define locdirfd(dirp) -1
880 +# define stat64 stat 882 +# define stat64 stat
881 +# define _STAT_VER 0 883 +# define _STAT_VER 0
882 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) 884 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
883 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen) 885 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
884 +#endif 886 +#endif
885 +#if defined(OPENPKG_IRIX64) 887 +#if defined(OPENPKG_IRIX64)
886 +# define __errno_location() (&errno) 888 +# define __errno_location() (&errno)
887 +# define dirfd(dirp) -1 889 +# define locdirfd(dirp) -1
888 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) 890 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
889 +# define _D_EXACT_NAMLEN(d) ((d)->d_reclen) 891 +# define _D_EXACT_NAMLEN(d) ((d)->d_reclen)
890 +#endif 892 +#endif
891 +#if defined(OPENPKG_AIX) 893 +#if defined(OPENPKG_AIX)
892 +# define __errno_location() (&errno) 894 +# define __errno_location() (&errno)
893 +# define _STAT_VER 0 895 +# define _STAT_VER 0
894 +# define dirfd(dirp) ((dirp)->dd_fd) 896 +# define locdirfd(dirp) ((dirp)->dd_fd)
895 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) 897 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
896 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen) 898 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
899 +#endif
900 +#if !defined(locdirfd)
901 +# define locdirfd(dirp) dirfd(dirp)
897 +#endif 902 +#endif
898 #include "system.h" 903 #include "system.h"
899 #include "fts.h" 904 #include "fts.h"
900 #include "rpmio.h" 905 #include "rpmio.h"
901 @@ -73,7 +104,12 @@ 906 @@ -73,7 +107,12 @@
902 /* Largest alignment size needed, minus one. 907 /* Largest alignment size needed, minus one.
903 Usually long double is the worst case. */ 908 Usually long double is the worst case. */
904 #ifndef ALIGNBYTES 909 #ifndef ALIGNBYTES
905 +#if defined(__GNUC__) 910 +#if defined(__GNUC__)
906 #define ALIGNBYTES (__alignof__ (long double) - 1) 911 #define ALIGNBYTES (__alignof__ (long double) - 1)
909 +#define ALIGNBYTES (sizeof (long double) - 1) 914 +#define ALIGNBYTES (sizeof (long double) - 1)
910 +#endif 915 +#endif
911 #endif 916 #endif
912 /* Align P to that size. */ 917 /* Align P to that size. */
913 #ifndef ALIGN 918 #ifndef ALIGN
914 @@ -107,9 +143,13 @@ 919 @@ -107,9 +146,13 @@
915 /*@modifies fileSystem, internalState @*/; 920 /*@modifies fileSystem, internalState @*/;
916 921
917 #ifndef MAX 922 #ifndef MAX
918 +#if defined(__GNUC__) 923 +#if defined(__GNUC__)
919 #define MAX(a, b) ({ __typeof__ (a) _a = (a); \ 924 #define MAX(a, b) ({ __typeof__ (a) _a = (a); \
923 +#define MAX(a, b) ((a) > (b) ? (a) : (b)) 928 +#define MAX(a, b) ((a) > (b) ? (a) : (b))
924 +#endif 929 +#endif
925 #endif 930 #endif
926 931
927 #define ISDOT(a) (a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2]))) 932 #define ISDOT(a) (a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2])))
933 @@ -719,7 +762,7 @@
934 */
935 cderrno = 0;
936 if (nlinks || type == BREAD) {
937 - if (fts_safe_changedir(sp, cur, dirfd(dirp), NULL)) {
938 + if (fts_safe_changedir(sp, cur, locdirfd(dirp), NULL)) {
939 if (nlinks && type == BREAD)
940 cur->fts_errno = errno;
941 cur->fts_flags |= FTS_DONTCHDIR;
928 942
929 +--------------------------------------------------------------------------- 943 +---------------------------------------------------------------------------
930 | Remove inclusion of system <glob.h> because RPM uses its own glob(3) 944 | Remove inclusion of system <glob.h> because RPM uses its own glob(3)
931 | implementation and this can conflict with the system one. 945 | implementation and this can conflict with the system one.
932 +--------------------------------------------------------------------------- 946 +---------------------------------------------------------------------------
1522 - 1536 -
1523 -__END_DECLS 1537 -__END_DECLS
1524 - 1538 -
1525 #endif /* err.h */ 1539 #endif /* err.h */
1526 1540
1527 +---------------------------------------------------------------------------
1528 | Due to either GCC enforcing ISO C or faulty references in the
1529 | rpmio component, Solaris 11 fails to build while compiling fts.c.
1530 | Hack a custom 'dirent.h' as found in /usr/include, remove the
1531 | line 104 'extern int dirfd(DIR *);' from the header file, and
1532 | place in directory openpkg-`date +%Y%m%d`/rpm-<version>/rpmio/.
1533 +---------------------------------------------------------------------------

mercurial