uClibc trunk build error
Quoted 77 lines · Vineet Gupta
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) #includesignal.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.hdoesn'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 commit52029220899bc6, "bits/types.h: remove thread types, users should includepthread.h"Please consider applying.
Thx,
-Vineet---------------------->
From: Vineet Gupta <[email protected]>
Date: Sat, 9 Mar 2013 11:41:08 +0530
Subject: [PATCH] libpthreads{,old}: Fix Build errorA user application built with -D_POSIX_C_SOURCE=200112L and
#includesignal.h, yields following compilation error:------------------->8-----------------------------
arc-linux-uclibc-gcc -D_POSIX_C_SOURCE=200112Lhello.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_tis explicitly provided topthreadtype.hSigned-off-by Vineet Gupta <[email protected]>--- .../sysdeps/pthread/bits/pthreadtypes.h | 3 +++ .../sysdeps/pthread/bits/pthreadtypes.h | 3 +++ 2 files changed, 6 insertions(+), 0 deletions(-)libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h +3
-0@@ -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> libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h +0
-0
libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h line 27
Quoted 9 lines
libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h +3
-0@@ -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