Re: Building glib 2.28.7



Hey Guys,

The host is Ubuntu 12.04 x86_64, the target CPU is an arm926ejs on a Freescale board, using LTIB. It is an older system using glibc 2.5 with glibc ports 2.5. 

In glibc ports 2.5 I found the splice signature in {REPO_ROOT}/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
extern int splice (int __fdin, int __fdout, size_t __len, unsigned int __flags)
    __THROW;

In the main glibc project I found definitions that were for other architectures.

Mike, based on your suggestion I create a patch that removes #define HAVE_SPLICE 1 from the configure script. glib builds now. :) Is this a good idea though or would there be change that would provide more stability.

Here is the patch I made:

--- glib-2.28.7.orig/configure 2011-05-20 21:15:25.000000000 -0700
+++ glib-2.28.7/configure 2013-11-08 10:15:51.380683520 -0800
@@ -23107,7 +23107,6 @@
   ac_fn_c_check_func "$LINENO" "splice" "ac_cv_func_splice"
 if test "x$ac_cv_func_splice" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define HAVE_SPLICE 1
 _ACEOF
 
 fi

On Fri, Nov 8, 2013 at 8:38 AM, Mike Steinert <mike steinert gmail com> wrote:
On Fri, Nov 8, 2013 at 7:34 AM, Colin Walters <walters verbum org> wrote:
On Thu, 2013-11-07 at 14:24 -0800, Daniel Schultze wrote:

> I'm trying to cross-compile glib

From what host to what target?

> gfile.c: In function 'do_splice':
> gfile.c:2749: warning: passing argument 2 of 'splice' makes integer
> from pointer without a cast

That's quite odd...can you track down where the prototype for "splice"
for your target is coming from?

Is this target some non-glibc system like Bionic?  If so you'll need to
get them to fix their splice() prototype.

As a workaround he could disable splice in config.h. Commenting out the following line should get him building again:

#define HAVE_SPLICE 1 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]