can i [cross-]compile glibc with no thread support at all?

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

can i [cross-]compile glibc with no thread support at all?

Robert P. J. Day


  what follows is a note i posted earlier to the crossgcc list.  in
short, i'm trying to cross-compile glibc with no thread support
whatsoever, but this doesn't seem to be possible.  even if i configure
all previous software parts with no thread support, the eventual
compile of glibc fails as below.

  so ... can this even be done?  thanks.

rday

---------- Forwarded message ----------
Date: Thu, 3 Nov 2005 05:00:08 -0500 (EST)
From: Robert P. J. Day <[hidden email]>
To: crossgcc list <[hidden email]>
Subject: building a toolchain when i say i *don't* *want* *threads*


  i posted on this a while back but here's a bit more detail -- i'm
hoping someone can clear up the confusion.  once again, just as a test
case building for SH3, and using some fairly stable versions of
software:

        gcc-4.0.2
        glibc-2.3.5
        binutils-2.16.1

i configured all of the glibc and gcc steps to not configure thread
support and the build made it all the way to trying to build glibc,
and:

==================================================================
...
sh3-unknown-linux-gnu-gcc  assert.c -c -std=gnu99 -O -Wall -Winline
-Wstrict-pro totypes -Wwrite-strings -m3 -ml
-DFATAL_PREPARE_INCLUDE='<fatal-prepare.h>' -I../include -I.
-I/home/rpjday/results/sh3/build/build-glibc/assert -I.. -I../l ibio
-I/home/rpjday/results/sh3/build/build-glibc -I../sysdeps/sh/elf
-I../sysd eps/unix/sysv/linux/sh/sh3 -I../sysdeps/unix/sysv/linux/sh
-I../sysdeps/unix/sys v/linux -I../sysdeps/gnu
-I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sy
sdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/sh
-I../sysdeps/unix -I ../sysdeps/posix -I../sysdeps/sh/sh3
-I../sysdeps/sh -I../sysdeps/wordsize-32 -I ../sysdeps/ieee754/flt-32
-I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../
sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem
/home/rpjday/results
/sh3/build/gcc-core-prefix/lib/gcc/sh3-unknown-linux-gnu/4.0.2/include
-isystem
/home/rpjday/results/sh3/tools/sh3-unknown-linux-gnu/sys-root/usr/include
-incl ude ../include/libc-symbols.h       -o
/home/rpjday/results/sh3/build/build-glib c/assert/assert.o -MD -MP
-MF /home/rpjday/results/sh3/build/build-glibc/assert/ assert.o.dt -MT
/home/rpjday/results/sh3/build/build-glibc/assert/assert.o
In file included from ../sysdeps/unix/sysv/linux/fatal-prepare.h:19,
                 from assert.c:42:
../include/pthread.h:1:26: error: pthread.h: No such file or directory
assert.c: In function '__assert_fail':
assert.c:53: error: 'pthread_setcancelstate' undeclared (first use in
this funct ion)
assert.c:53: error: (Each undeclared identifier is reported only once
assert.c:53: error: for each function it appears in.)
assert.c:53: warning: implicit declaration of function
'pthread_setcancelstate'
assert.c:53: error: 'PTHREAD_CANCEL_DISABLE' undeclared (first use in
this funct ion)
make[2]: ***
[/home/rpjday/results/sh3/build/build-glibc/assert/assert.o] Error 1
make[2]: Leaving directory `/home/rpjday/unpack/glibc-2.3.5/assert'
make[1]: *** [assert/subdir_lib] Error 2
make[1]: Leaving directory `/home/rpjday/unpack/glibc-2.3.5'
make: *** [lib] Error 2
====================================================================

  ok, let's track this down.

glibc/assert/assert.c:42:

  # include FATAL_PREPARE_INCLUDE   (which takes us to ...)

glibc/sysdeps/unix/sysv/linux/fatal-prepare.h:19

  #include <pthread.h>    (which takes us to ...)

glibc/include/pthread.h:1:26

  #include_next <pthread.h>     (which fails)



i guess the obvious question is, given that i've tried really, really
hard to not include thread support, it's obvious that fatal-prepare.h
including pthread.h is going to cause problems of some kind.

  have i misconfigured something in an earlier stage of the build?
this is for SH3, i'm going to try again with, say, ppc just to see
what happens there.

rday

p.s.  the build fails for PPC as well, same error, so it's not just
SH-related.
Reply | Threaded
Open this post in threaded view
|

Re: can i [cross-]compile glibc with no thread support at all?

Daniel Jacobowitz-2
On Thu, Nov 03, 2005 at 07:16:46AM -0500, Robert P. J. Day wrote:
>
>
>   what follows is a note i posted earlier to the crossgcc list.  in
> short, i'm trying to cross-compile glibc with no thread support
> whatsoever, but this doesn't seem to be possible.  even if i configure
> all previous software parts with no thread support, the eventual
> compile of glibc fails as below.
>
>   so ... can this even be done?  thanks.

In theory, yes.  But no one does it, so you probably need to fix a
couple of places.


--
Daniel Jacobowitz
CodeSourcery, LLC