[Buildroot] uClibc trunk build error
Vineet Gupta
Vineet.Gupta1 at synopsys.com
Mon Mar 11 10:35:26 UTC 2013
On Saturday 09 March 2013 11:57 AM, Vineet Gupta wrote:
> Hi,
>
> I'm seeing a compile error with uClibc trunk (commit 60c1fe7,
> "nptl/allocatestack.c: Fix stack mprotect") - ported to ARC architecture (with old
> pthreads + no-legacy-syscall ABI)
>
> The test case is extracted from a dated version of LTP open posix suite and it
> simply involves
> (1) #include signal.h
> (2) build options -D_POSIX_C_SOURCE=200112L
>
> #include <signal.h>
>
> int main(void)
> {
> return 0;
> }
>
> See the patch below to see the exact error:
>
> The problem is happening because pthreadtypes.h doesn't ensure that all it's
> dependencies are actually met
> IMHO it's not an arch specific error, but a generic one, primarily triggered after
> the following upstream commit
> 52029220899bc6, "bits/types.h: remove thread types, users should include pthread.h"
>
> Please consider applying.
>
> Thx,
> -Vineet
>
> ---------------------->
> From: Vineet Gupta <vgupta at synopsys.com>
> Date: Sat, 9 Mar 2013 11:41:08 +0530
> Subject: [PATCH] libpthreads{,old}: Fix Build error
>
> A user application built with -D_POSIX_C_SOURCE=200112L and
> #include signal.h, yields following compilation error:
>
> ------------------->8-----------------------------
> arc-linux-uclibc-gcc -D_POSIX_C_SOURCE=200112L hello.c
> In file included from
> /opt/INSTALL/lib/gcc/arc-linux-uclibc/4.4.7/../../../../arc-linux-uclibc/sys-include/signal.h:429,
> from hello.c:1:
> /opt/INSTALL/lib/gcc/arc-linux-uclibc/4.4.7/../../../../arc-linux-uclibc/sys-include/bits/pthreadtypes.h:48:
> error: expected specifier-qualifier-list before 'size_t'
> ------------------->8-----------------------------
>
> The fix is to make sure size_t is explicitly provided to pthreadtype.h
>
> Signed-off-by: Vineet Gupta <vgupta at synopsys.com>
> ---
> .../sysdeps/pthread/bits/pthreadtypes.h | 3 +++
> .../sysdeps/pthread/bits/pthreadtypes.h | 3 +++
> 2 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h
> b/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h
> index faec63b..3eb5929 100644
> --- a/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h
> +++ b/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h
> @@ -19,6 +19,9 @@
> #ifndef _BITS_PTHREADTYPES_H
> #define _BITS_PTHREADTYPES_H 1
>
> +#define __need_size_t
> +#include <stddef.h>
> +
> #define __need_schedparam
> #include <bits/sched.h>
>
> diff --git a/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
> b/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
> index 4ea6d8a..8d01c89 100644
> --- a/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
> +++ b/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
> @@ -19,6 +19,9 @@
> #ifndef _BITS_PTHREADTYPES_H
> #define _BITS_PTHREADTYPES_H 1
>
> +#define __need_size_t
> +#include <stddef.h>
> +
> #define __need_schedparam
> #include <bits/sched.h>
>
I can confirm that an ARM buildroot based toolchain, configured with uClibc daily
snapshot (BR2_UCLIBC_VERSION_SNAPSHOT) + old pthreads suffers from same problem.
----------------------->8---------------------------
./host/usr/bin/arm-linux-gcc test.c -D_POSIX_C_SOURCE=200112L
In file included from
/home/vineetg/arc/buildroot/VERSATILE/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/signal.h:429:0,
from test.c:1:
/home/vineetg/arc/buildroot/VERSATILE/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/bits/pthreadtypes.h:48:3:
error: unknown type name 'size_t'
/home/vineetg/arc/buildroot/VERSATILE/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/bits/pthreadtypes.h:51:3:
error: unknown type name 'size_t'
----------------------->8---------------------------
Thanks,
-Vineet
More information about the buildroot
mailing list