7.7.2010 5:22, [email protected] kirjoitti:
I am doing meego arm-based development now. But I failed to build my
kernel with toolchain offered in repo.meego.com.
Fortunately my current development platform was too old and with wrong
(AMD) CPU, so that the prebuilt cross GCC couldn't even be tried :
[r...@localhost bin]# ldd armv7l-meego-linux-gnueabi-gcc
./armv7l-meego-linux-gnueabi-gcc: /lib/libc.so.6: version
`GLIBC_2.11' not found (required by ./armv7l-meego-linux-gnueabi-gcc)
linux-gate.so.1 => (0x00b63000)
libc.so.6 => /lib/libc.so.6 (0x00101000)
/lib/ld-linux.so.2 (0x00ccf000)
Why anyone (but a ignorant newbie) would produce toolchains as binaries
only for the bleeding edge Linux distros, is really odd...
So I simply produced all the three toolchains (i586, armv5tel, armv7l)
for my current "least common nominator" Linux host - older than my
current installed development host distro (CentOS 5.5, glibc-2.5
based)...
But I start to build the package, I got a error meesage:
/opt/cross/bin/armv7l-meego-linux-gnueabi-ld: skipping incompatible
/opt/cross/libexec/../lib/gcc/armv7l-meego-linux-gnueabi/4.4.2/libgcc.a
when searching for -lgcc
The 'libgcc.a' in the prebuilt toolchain really seems to be broken,
the first object in the archive shows :
[r...@localhost 4.4.2]# file _udivsi3.o
_udivsi3.o: ELF 32-bit LSB relocatable, no machine, version 1 (SYSV),
not stripped
[r...@localhost 4.4.2]# objdump -p _udivsi3.o
_udivsi3.o: file format elf32-little
[r...@localhost 4.4.2]# readelf -h _udivsi3.o
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: None
Version: 0x1
Entry point address: 0x0
Start of program headers: 0 (bytes into file)
Start of section headers: 676 (bytes into file)
Flags: 0x5000000
Size of this header: 52 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 40 (bytes)
Number of section headers: 10
Section header string table index: 7
Others seem to be Ok. Meanwhile the one in my self-made toolchain
(gcc-4.4.4 based) shows:
[r...@localhost 4.4.4]# file _udivsi3.o
_udivsi3.o: ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped
[r...@localhost 4.4.4]# objdump -p _udivsi3.o
_udivsi3.o: file format elf32-little
[r...@localhost 4.4.4]# readelf -h _udivsi3.o
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: ARM
Version: 0x1
Entry point address: 0x0
Start of program headers: 0 (bytes into file)
Start of section headers: 828 (bytes into file)
Flags: 0x5000000, Version5 EABI
Size of this header: 52 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 40 (bytes)
Number of section headers: 19
Section header string table index: 16
I would expect the GNU binutils in the prebuilt toolchain being
buggy, I myself used:
[r...@localhost 4.4.4]# armv7l-meego-linux-gnueabi-ld -V
GNU ld (Linux/GNU Binutils) 2.20.51.0.8.20100412
Supported emulations:
armelf_linux_eabi
armelfb_linux_eabi
Also the prebuilt binutils were just as oddly built :
[r...@localhost bin]# ./armv7l-meego-linux-gnueabi-ld -V
./armv7l-meego-linux-gnueabi-ld: /lib/libc.so.6: version `GLIBC_2.8' not
found (required by ./armv7l-meego-linux-gnueabi-ld)
./armv7l-meego-linux-gnueabi-ld: /lib/libc.so.6: version `GLIBC_2.7' not
found (required by ./armv7l-meego-linux-gnueabi-ld)
so checking their version isn't that easy :(
_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev