[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: