On Wednesday 07 July 2010 11:10:51 Kai Ruottu wrote:
> 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...
These toolchain are done for usage withhin i586 MeeGo. They're build with 
MeeGo as target distribution and require the glibc of MeeGo they were built 
against.

> 
> 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)...

Currently MADDE is the cross-compiler for the SDK. We don't provide separate 
cross-compilers for $insert_distro_of_choice .  Thats open for discussion  - 
BUT this needs to be a consistent approach.
But the toolchain itself is just the start - what about the libraries needed 
in the sysroot ?

> > 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:
Ok, need to check that - the gcc in that version of meego was 4.4.2, we now 
moved to gcc-4.5.

> 
> [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 :
See above - they are built for usage on a MeeGo host, not $distro_of_choice.

One option: retry this on a MeeGo installation (preferably update to latest 
weekly snapshot).

Best,
Jan-Simon
_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev

Reply via email to