[Buildroot] uclibc make fails building libpthread for powerpc32

Darcy Watkins DWatkins at tranzeo.com
Wed Apr 16 15:07:49 UTC 2008


I see the compile error below attempting to build buildroot with POSIX
pthreads selected instead of linux pthreads.  

------

  CC libpthread/linuxthreads/sysdeps/pthread/errno-loc.os
In file included from
./libpthread/linuxthreads/sysdeps/powerpc/pt-machine.h:5,
                 from
./libpthread/linuxthreads/sysdeps/powerpc/tls.h:25,
                 from ./include/bits/uClibc_errno.h:14,
                 from ./include/errno.h:62,
                 from
libpthread/linuxthreads/sysdeps/pthread/errno-loc.c:21:
./libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h:79:
warning: C99 inline functions are not supported; using GNU89
./libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h:79:
warning: to disable this warning use -fgnu89-inline or the gnu_inline
function attribute
./libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h:103:
warning: C99 inline functions are not supported; using GNU89
In file included from
libpthread/linuxthreads/sysdeps/pthread/errno-loc.c:22:
./libpthread/linuxthreads/internals.h:538: warning: C99 inline functions
are not supported; using GNU89
libpthread/linuxthreads/sysdeps/pthread/errno-loc.c:23:27: error:
sysdep-cancel.h: No such file or directory
make[1]: *** [libpthread/linuxthreads/sysdeps/pthread/errno-loc.os]
Error 1
make[1]: Leaving directory
`/home/darcy/workspace/tsf-buildroot/buildroot/toolchain_build_powerpc/u
Clibc-0.9.29'
make: ***
[/home/darcy/workspace/tsf-buildroot/buildroot/toolchain_build_powerpc/u
Clibc-0.9.29/lib/libc.a] Error 2

----------

The patches below allowed me to compile for powerpc (PPC405EP).  You
will notice that they are hacks and likely will not work for other
architectures.  I think that the cause is missing/bad '-I' paths in the
build files for building uClibc (either the buildroot files or the
makefiles in uClibc itself).

----------

diff -pruN
uClibc-0.9.29/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c
uClibc-0.9.29.mod/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c
--- uClibc-0.9.29/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c
2006-01-30 21:05:15.000000000 -0800
+++
uClibc-0.9.29.mod/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c
2008-04-16 06:27:41.000000000 -0700
@@ -20,7 +20,7 @@

 #include <errno.h>
 #include <linuxthreads/internals.h>
-#include <sysdep-cancel.h>
+//#include <sysdep-cancel.h>

 #if ! USE___THREAD && !RTLD_PRIVATE_ERRNO
 #undef errno
diff -pruN
uClibc-0.9.29/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
uClibc-0.9.29.mod/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
--- uClibc-0.9.29/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
2006-01-30 21:05:15.000000000 -0800
+++
uClibc-0.9.29.mod/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
2008-04-16 07:01:16.000000000 -0700
@@ -19,7 +19,7 @@
 #include <netdb.h>
 #include <tls.h>
 #include <linuxthreads/internals.h>
-#include <sysdep-cancel.h>
+#include <powerpc/powerpc32/sysdep-cancel.h>

 #if ! USE___THREAD
 # undef h_errno
diff -pruN
uClibc-0.9.29/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/po
werpc32/sysdep-cancel.h
uClibc-0.9.29.mod/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerp
c/powerpc32/sysdep-cancel.h
---
uClibc-0.9.29/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/po
werpc32/sysdep-cancel.h     2006-01-30 21:05:15.000000000 -0800
+++
uClibc-0.9.29.mod/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerp
c/powerpc32/sysdep-cancel.h 2008-04-16 07:04:14.000000000 -0700
@@ -17,7 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */

-#include <sysdep.h>
+//#include <sysdep.h>
 #include <tls.h>
 #ifndef __ASSEMBLER__
 # include <linuxthreads/internals.h>




Regards,

Darcy




More information about the buildroot mailing list