I ran into a problem building kdelibs tonight and I'm not sure how to address
the problem. I got:
/bin/sh ../../libtool --silent --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H
-I. -I../.. -I../../dcop -I../../kdecore -I../../kio/kssl -I../../kjs -I../..
-I./.. -I../../kdecore/network -I./../kssl -I../kssl -I./../../interfaces
-I../../dcop -I../../libltdl -I../../kdefx -I../../kdecore -I../../kdecore
-I../../kdecore/network -I../../kdeui -I../../kio -I../../kio/kio
-I../../kio/kfile -I../.. -I/opt/qt/include -I. -I/opt/kde-3.5.10/include
-D_LARGEFILE64_SOURCE -DQT_THREAD_SUPPORT -D_REENTRANT -Wno-long-long -Wundef
-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts -Wall -W
-Wpointer-arith -DNDEBUG -DNO_DEBUG -O2 -Wformat-security
-Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new
-fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT
-DQT_NO_TRANSLATION -c -o libksycoca_la.all_cpp.lo libksycoca_la.all_cpp.cpp
In file included from /usr/include/asm/fcntl.h:1,
from /usr/include/linux/fcntl.h:4,
from /usr/include/linux/inotify.h:11,
from kdirwatch.cpp:74,
from libksycoca_la.all_cpp.cpp:2:
/usr/include/asm-generic/fcntl.h:117: error: redefinition of 'struct flock'
/usr/include/bits/fcntl.h:145: error: previous definition of 'struct flock'
/usr/include/asm-generic/fcntl.h:140: error: redefinition of 'struct flock64'
/usr/include/bits/fcntl.h:160: error: previous definition of 'struct flock64'
There was an earlier report of the same thing (Oct 30) by Petr Ovtchenkov:
http://linuxfromscratch.org/pipermail/blfs-dev/2008-October/018968.html
and a discussion on the kernel list (Sep 16/17):
http://patchwork.ozlabs.org/patch/316/
I'm not sure the fix by Petr Ovtchenkov is the right thing to do, but I can't
find anywhere where the kernel headers were changed after 2.6.27.4. I also
can't find any KDE bug filed that addresses the problem.
Basically Petr's approach is to remove the following lines:
static inline int inotify_init (void)
{
return syscall (__NR_inotify_init);
}
static inline int inotify_add_watch (int fd, const char *name, __u32 mask)
{
return syscall (__NR_inotify_add_watch, fd, name, mask);
}
static inline int inotify_rm_watch (int fd, __u32 wd)
{
return syscall (__NR_inotify_rm_watch, fd, wd);
}
and replace #include with #include
where the above calls are defined. The functions are found in /lib/libc-2.8.so.
Does anyone have any thoughts on this?
-- Bruce
--
http://linuxfromscratch.org/mailman/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page