Control: tags -1 + patch
* Yaroslav Halchenko <[email protected]>, 2012-07-30, 23:21:
x86_64-kfreebsd-gnu-gcc -Wall -g -O2 -I./src/include -Isrc/include -DHAVE_CONFIG_H
-DLOCALEDIR=\"/usr/share/locale\" -c -o src/pv/cursor.o src/pv/cursor.c
src/pv/cursor.c: In function 'pv_crs__lock_lockfile':
src/pv/cursor.c:100:51: error: 'O_NOFOLLOW' undeclared (first use in this
function)
src/pv/cursor.c:100:51: note: each undeclared identifier is reported only once
for each function it appears in
make[1]: *** [src/pv/cursor.o] Error 1
make[1]: Leaving directory
`/build/buildd-pv_1.2.0-1-kfreebsd-amd64-lcb9ew/pv-1.2.0'
make: *** [build-stamp] Error 2
The code seems to assume that if O_EXLOCK is defined then O_NOFOLLOW is
also defined. This is not true on kFreeBSD by default: O_EXLOCK is
defined, but O_NOFOLLOW is not (though it can be enabled by a feature
test macro).
The attached patch fixes this problem.
--
Jakub Wilk
--- pv-1.2.0/src/pv/cursor.c 2010-12-14 11:06:01.000000000 +0100
+++ pv-1.2.0/src/pv/cursor.c 2012-08-09 22:55:19.000000000 +0200
@@ -63,7 +63,7 @@
*/
static void pv_crs__lock_lockfile(int fd)
{
-#ifdef O_EXLOCK
+#if defined(O_EXLOCK) && defined(O_NOFOLLOW)
char *ttydev;
char *tmpdir;
#ifndef MAXPATHLEN
@@ -103,7 +103,7 @@
pv_crs__noipc = 1;
#endif
-#else /* !O_EXLOCK */
+#else /* !O_EXLOCK || !O_NOFOLLOW */
pv_crs__uselockfile = 1;
#ifdef HAVE_IPC