patches/glibc/2.3.6/120-allow-gcc-4.0-wordexp.patch
author Zoltan Devai <zdevai@gmail.com>
Wed Oct 28 12:03:38 2009 +0100 (2009-10-28)
changeset 1602 1ba79f2126df
parent 402 197e1b49586e
permissions -rw-r--r--
libc/uClibc: fix building on system with recent glibc

While trying to build a toolchain with ct-ng 1.5.0,
arm-unknown-linux-uclibcgnueabi target,
I get the following error:

[INFO ] Installing C library headers
[EXTRA] Copying sources to build dir
[EXTRA] Applying configuration
[EXTRA] Building headers
[EXTRA] Installing headers
[ERROR] extra/scripts/unifdef.c:209: error: conflicting types for 'getline'
[ERROR] make[2]: *** [extra/scripts/unifdef] Error 1
[ERROR] Build failed in step 'Installing C library headers'

The following patch solves the problem.
(It's a backport of this uClibc commit:
http://git.uclibc.org/uClibc/commit/?id=49e81cada73616864b9b31df0aeb6961c30f5a6e
)

[--SNIP from another mail--]
AFAIK this is a problem since glibc 2.10.
     1 ../sysdeps/generic/wordexp.c: In function 'exec_comm':
     2 ../sysdeps/generic/wordexp.c:815: sorry, unimplemented: inlining failed in call to 'exec_comm_child': function body not available
     3 ../sysdeps/generic/wordexp.c:900: sorry, unimplemented: called from here
     4 make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/build-glibc/posix/wordexp.o] Error
     5 
     6 I had to add the keyword 'inline' to get it to compile:
     7 
     8 --- glibc-2.3-20050307/sysdeps/generic/wordexp.c.old	2005-03-12 08:54:15.709253928 -0800
     9 +++ glibc-2.3-20050307/sysdeps/generic/wordexp.c	2005-03-12 08:54:51.242852000 -0800
    10 @@ -809,7 +809,7 @@
    11  }
    12 
    13  /* Function called by child process in exec_comm() */
    14 -static void
    15 +static inline void
    16  internal_function __attribute__ ((always_inline))
    17  exec_comm_child (char *comm, int *fildes, int showerr, int noexec)
    18  {
    19 
    20 
    21 Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>