Re: Building armel glibc-2.5
On 2007-03-19 12:05 +0100, Hector Oron wrote:
> Hello Lennert,
>
> >Are you cross-building? What gcc version are you using?
>
> Yes, i am cross building.
>
> I have been using arm-crosstool-linux-gnueabi from Martin Guy.
The point about the full debian cross-bootstrap procedure
(http://www.emdebian.org/docs/slind-toolchain.html)
is that you don't need a cross-compiler at this point - you are just
building glibc bootstrap headers, which the native compiler should be
able to do.
> The problem was that I set CC and BUILD_CC to take that
> cross-compiler, and it took regular debian's gcc. I resolved this
> issue removing gcc symlink and point to the cross-compiler.
Having removed this hack I now get a complaint about TLS too (and the
kernel headers version):
if test -r /home/wookey/armel/glibc-2.5/build-tree/armel-libc/csu/abi-tag.h.new;
then mv -f /home/wookey/armel/glibc-2.5/build-tree/armel-libc/csu/abi-tag.h.new
/home/wookey/armel/glibc-2.5/build-tree/armel-libc/csu/abi-tag.h; \
else echo >&2 'This configuration not matched in ../abi-tags';
exit 1; fi
gawk -f ../scripts/gen-as-const.awk ../ports/sysdeps/arm/eabi/rtld-global-offsets.sym \
| gcc -S -o
/home/wookey/armel/glibc-2.5/build-tree/armel-libc/rtld-global-offsets.hT3
-std=gnu99 -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants
-fstrict-aliasing -g -pipe -Wstrict-prototypes -I../include
-I/home/wookey/armel/glibc-2.5/build-tree/armel-libc/csu
-I/home/wookey/armel/glibc-2.5/build-tree/armel-libc
-I../ports/sysdeps/arm/elf
-I../ports/sysdeps/unix/sysv/linux/arm/eabi/nptl
-I../ports/sysdeps/unix/sysv/linux/arm/eabi
-I../ports/sysdeps/unix/sysv/linux/arm/nptl
-I../ports/sysdeps/unix/sysv/linux/arm
-I../ports/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux
-I../nptl/sysdeps/pthread -I../sysdeps/pthread
-I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common
-I../sysdeps/unix/mman -I../sysdeps/unix/inet
-I../ports/sysdeps/unix/sysv -I../nptl/sysdeps/unix/sysv
-I../sysdeps/unix/sysv -I../ports/sysdeps/unix/arm
-I../ports/sysdeps/unix -I../nptl/sysdeps/unix -I../sysdeps/unix
-I../sysdeps/posix -I../ports/sysdeps/arm/eabi
-I../ports/sysdeps/arm/fpu -I../ports/sysdeps/arm/nptl
-I../ports/sysdeps/arm -I../sysdeps/wordsize-32
-I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64
-I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic
-I../ports -I../nptl -I.. -I../libio -I. -nostdinc -isystem
/usr/lib/gcc/i486-linux-gnu/4.1.2/include -isystem
/home/wookey/armel/glibc-2.5/debian/include -D_LIBC_REENTRANT -include
../include/libc-symbols.h -DHAVE_INITFINI -x c - \
-MD -MP -MF
/home/wookey/armel/glibc-2.5/build-tree/armel-libc/rtld-global-offsets.h.dT -MT
'/home/wookey/armel/glibc-2.5/build-tree/armel-libc/rtld-global-offsets.h.d
/home/wookey/armel/glibc-2.5/build-tree/armel-libc/rtld-global-offsets.h'
In file included from ../include/tls.h:6,
from ../include/link.h:45,
from ../include/dlfcn.h:3,
from ../sysdeps/generic/ldsodefs.h:32,
from ../ports/sysdeps/arm/ldsodefs.h:39,
from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
from <stdin>:2:
../ports/sysdeps/arm/nptl/tls.h:48:3: error: #error "TLS support is required."
In file included from ../ports/sysdeps/arm/nptl/tls.h:57,
from ../include/tls.h:6,
from ../include/link.h:45,
from ../include/dlfcn.h:3,
from ../sysdeps/generic/ldsodefs.h:32,
from ../ports/sysdeps/arm/ldsodefs.h:39,
from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
from <stdin>:2:
../ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h:29:3: error: #error Kernel headers are too old
make[3]: *** [/home/wookey/armel/glibc-2.5/build-tree/armel-libc/rtld-global-offsets.h] Error 1
make[3]: Leaving directory /home/wookey/armel/glibc-2.5/build-tree/glibc-2.5/csu'
make[2]: *** [csu/subdir_lib] Error 2
make[2]: Leaving directory /home/wookey/armel/glibc-2.5/build-tree/glibc-2.5'
make[1]: *** [all] Error 2
make[1]: Leaving directory /home/wookey/armel/glibc-2.5/build-tree/armel-libc'
further back in the log we have:
checking for ARM TLS support... no
Is that bad?
And:
checking for kernel header at least 2.6.14... ok
There are a great number of 'kernel headers are too old'
The whole log is here:
http://www.emdebian.org/files/log-build-arm-linux-gnueabi-libc
Which kernel headers version is it talking about here? I presume not
the ones in /usr/arm-linux-gnueabi, but either those in /usr/linux or
the ones included in the libc sources?
ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h includes <arm/sysdep.h>
which I guess is referring to ports/sysdeps/arm/sysdeps.h (right?)
The check is:
#if __NR_SYSCALL_BASE != 0
# error Kernel headers are too old
#endif
and __NR_SYSCALL_BASE is defined in /usr/arm-linux-gnueabi/include/asm/unistd.h
but not in /usr/inlcude/asm/unistd.h (because those or i386/amd64)
so the problem appears to be one of not finding the right kernel
headers.
Do we have a glibc-expert who can say where it should be
looking (in /usr or in glibc sources), and why it might not be finding
the right thing? I have not actually looked at how the glibc bootstrap
header process works before, or the particular debian config version
of it.
Wookey
--
Principal hats: Balloonz - Toby Churchill - Aleph One - Debian
http://wookware.org/
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Reply to: