Problem building kde libs

2009-01-04 Thread Bruce Dubbs
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 linux/inotify.h with #include sys/inotify.h
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


Re: Problem building kde libs

2009-01-04 Thread Alexander E. Patrakov
Bruce Dubbs wrote:
 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 linux/inotify.h with #include sys/inotify.h
 where the above calls are defined. The functions are found in 
 /lib/libc-2.8.so.

Yes, that's the correct approach. Such inline functions were added to 
programs in times where the kernel supported inotify, but glibc didn't.


-- 
Alexander E. Patrakov
-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page


Re: Problem building kde libs

2009-01-04 Thread Bruce Dubbs
Alexander E. Patrakov wrote:
 Bruce Dubbs wrote:
 Basically Petr's approach is to remove the following lines:

...

 and replace #include linux/inotify.h with #include sys/inotify.h
 where the above calls are defined. The functions are found in 
 /lib/libc-2.8.so.
 
 Yes, that's the correct approach. Such inline functions were added to 
 programs in times where the kernel supported inotify, but glibc didn't.

OK Alex.  Thanks for the confirmation.  I'll go with that.

   -- Bruce

-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page