of uclibc, transmission package will fail to
build because the function definition exported by the
libtransmission/fdlimit.c is lightly different than
the function definition in fcntl.h that is installed
by eglibc.
To get transmission build to work both with uclibc
and eglibc, fdlimit.c needs to export function
only if the build toolchain uses uclibc.
This fixes also a openwrt bug
https://dev.openwrt.org/ticket/8820
openwrt_trunk.git/staging_dir/
toolchain-mipsel_gcc-4.6-linaro_eglibc-2.15/lib/
gcc/mipsel-openwrt-linux-gnu/4.6.3/../../../../
mipsel-openwrt-linux-gnu/sys-include/bits/fcntl.h:316:12:
error: conflicting types for 'fallocate64'
fdlimit.c:30:14: note: previous declaration of 'fallocate64' was here
Signed-off-by: Mika Laitio <mika.laitio@nokia.com>
SVN-Revision: 33012
--- /dev/null
+diff -Naur transmission-2.61/libtransmission/fdlimit.c transmission-2.61-new/libtransmission/fdlimit.c
+--- transmission-2.61/libtransmission/fdlimit.c 2012-07-24 04:59:03.429474697 +0300
++++ transmission-2.61-new/libtransmission/fdlimit.c 2012-07-31 14:40:23.999860054 +0300
+@@ -25,7 +25,8 @@
+ #include <fcntl.h>
+ #endif
+
+-#ifdef HAVE_FALLOCATE64
++/* no need to define fallocate64 in glibc/eglibc case */
++#if defined(__UCLIBC__) && (HAVE_FALLOCATE64)
+ /* FIXME can't find the right #include voodoo to pick up the declaration.. */
+ extern int fallocate64( int fd, int mode, uint64_t offset, uint64_t len );
+ #endif