Wed, 01 Aug 2012 23:49:03 +0200
Hack rpmconstant header file to allow targets to build, because...
Solaris studio cc(1) fails to build targets in rpmconstant with errors:
'undefined symbol first referenced in file constant.o' regarding symbols:
rpmdsInit, rpmdsNext, rpmdsTagN, rpmHeaderFormats, hdrVec, rpmTagTable,
rpmdsSearch, rpmdsResult, rpmTags, rpmdsIx, rpmdsDNEVR, rpmdsSetResult.
It seems that these symbols are not used by RPM in any way, and thus
the build configuration can succeed without including the nasty headers.
1 Index: mutex/mut_fcntl.c
2 --- mutex/mut_fcntl.c.orig 2008-01-08 21:58:43 +0100
3 +++ mutex/mut_fcntl.c 2008-05-26 22:36:45 +0200
4 @@ -84,7 +84,7 @@
6 /* Acquire an exclusive kernel lock. */
7 k_lock.l_type = F_WRLCK;
8 - if (fcntl(env->lockfhp->fd, F_SETLKW, &k_lock))
9 + if (fcntl(env->lockfhp->fd, F_SETLKW, &k_lock) == -1)
10 goto err;
12 /* If the resource is still available, it's ours. */
13 @@ -97,7 +97,7 @@
15 /* Release the kernel lock. */
16 k_lock.l_type = F_UNLCK;
17 - if (fcntl(env->lockfhp->fd, F_SETLK, &k_lock))
18 + if (fcntl(env->lockfhp->fd, F_SETLK, &k_lock) == -1)
19 goto err;
21 /*
22 Index: os/os_open.c
23 --- os/os_open.c.orig 2008-03-26 05:11:35 +0100
24 +++ os/os_open.c 2008-05-26 22:36:05 +0200
25 @@ -67,7 +67,7 @@
26 if (LF_ISSET(DB_OSO_EXCL))
27 oflags |= O_EXCL;
29 -#ifdef HAVE_O_DIRECT
30 +#if defined(HAVE_O_DIRECT) && defined(__FreeBSD__)
31 if (LF_ISSET(DB_OSO_DIRECT))
32 oflags |= O_DIRECT;
33 #endif