Toolchain rework, call for testing


Khem Raj
 

Hi All

Recently glibc build has been simplified upstream. It has dropped the
dependency on libgcc_s and libgcc_eh for building glibc itself.
This means that we can simplify our toolchain bootstrap a bit by
dropping 1 of the 3 cross gcc build stages. We do not need
gcc-cross-intermediate
anymore. This should bring some build time reduction and simplify the
bootstrap. I have a series of patches which I have tested
by building core-image-minimal and meta-toolchain for all supported
qemu architectures and also uclibc/eglibc both
but it needs a lot more testing therefore I am calling out wider
audience for help in testing it out.

The branch is

http://git.openembedded.org/openembedded-core-contrib/log/?h=kraj/toolchain-rework

Thanks

-Khem


Martin Jansa
 

On Thu, Aug 16, 2012 at 09:47:37PM -0700, Khem Raj wrote:
Hi All

Recently glibc build has been simplified upstream. It has dropped the
dependency on libgcc_s and libgcc_eh for building glibc itself.
This means that we can simplify our toolchain bootstrap a bit by
dropping 1 of the 3 cross gcc build stages. We do not need
gcc-cross-intermediate
anymore. This should bring some build time reduction and simplify the
bootstrap. I have a series of patches which I have tested
by building core-image-minimal and meta-toolchain for all supported
qemu architectures and also uclibc/eglibc both
but it needs a lot more testing therefore I am calling out wider
audience for help in testing it out.

The branch is

http://git.openembedded.org/openembedded-core-contrib/log/?h=kraj/toolchain-rework
eglibc fails to build in incremental build

| arm-oe-linux-gnueabi-gcc -march=armv4t -marm -mthumb-interwork -mtune=arm920t --sysroot=/OE/shr-core/tmp-eglibc/sysroots/om-gta02-tcbootstrap -nostdlib -nostartfiles -r -o /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/eglibc-2.16-r6+svnr19922/build-arm-oe-linux-gnueabi/libc_pic.os \
| -Wl,-d -Wl,--whole-archive /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/eglibc-2.16-r6+svnr19922/build-arm-oe-linux-gnueabi/libc_pic.a -o /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/eglibc-2.16-r6+svnr19922/build-arm-oe-linux-gnueabi/libc_pic.os
| arm-oe-linux-gnueabi-gcc -march=armv4t -marm -mthumb-interwork -mtune=arm920t --sysroot=/OE/shr-core/tmp-eglibc/sysroots/om-gta02-tcbootstrap -nostdlib -nostartfiles -r -o /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/eglibc-2.16-r6+svnr19922/build-arm-oe-linux-gnueabi/elf/librtld.map.o '-Wl,-(' /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/eglibc-2.16-r6+svnr19922/build-arm-oe-linux-gnueabi/elf/dl-allobjs.os /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/eglibc-2.16-r6+svnr19922/build-arm-oe-linux-gnueabi/libc_pic.a -lgcc '-Wl,-)' -Wl,-Map,/OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/eglibc-2.16-r6+svnr19922/build-arm-oe-linux-gnueabi/elf/librtld.mapT
| /OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/libexec/armv4t-oe-linux-gnueabi.gcc-cross-initial/gcc/arm-oe-linux-gnueabi/4.7.2/ld: cannot find -lgcc
| collect2: error: ld returned 1 exit status
| make[2]: *** [/OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/eglibc-2.16-r6+svnr19922/build-arm-oe-linux-gnueabi/elf/librtld.map] Error 1
| make[2]: *** Waiting for unfinished jobs....
| make[2]: Leaving directory `/OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/eglibc-2.16-r6+svnr19922/eglibc-2_16/libc/elf'
| make[1]: *** [elf/subdir_lib] Error 2
| make[1]: Leaving directory `/OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/eglibc-2.16-r6+svnr19922/eglibc-2_16/libc'

Maybe it's because
http://git.openembedded.org/openembedded-core/commit/?id=30617bde61a3b0a0944b49a0c9fb7159dacbb19f
is missing PR bump and gcc wasn't rebuilt before eglibc upgrade (OEBasic not OEBasicHash here).

Cheers,
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@...


Khem Raj
 

On Tue, Aug 21, 2012 at 5:18 AM, Martin Jansa <martin.jansa@...> wrote:

Maybe it's because
http://git.openembedded.org/openembedded-core/commit/?id=30617bde61a3b0a0944b49a0c9fb7159dacbb19f
is missing PR bump and gcc wasn't rebuilt before eglibc upgrade (OEBasic not OEBasicHash here).
yes seems so. I have stopped using OEBasic long ago, you should stop
using it too.
But feel free to send a PR bump patchlet.


Martin Jansa
 

On Tue, Aug 21, 2012 at 10:15:47AM -0700, Khem Raj wrote:
On Tue, Aug 21, 2012 at 5:18 AM, Martin Jansa <martin.jansa@...> wrote:

Maybe it's because
http://git.openembedded.org/openembedded-core/commit/?id=30617bde61a3b0a0944b49a0c9fb7159dacbb19f
is missing PR bump and gcc wasn't rebuilt before eglibc upgrade (OEBasic not OEBasicHash here).
yes seems so. I have stopped using OEBasic long ago, you should stop
using it too.
I'm using OEBasicHash on one jenkins setup, but that one is still
building changes from 2 days ago.. (building 24/7.. )

But feel free to send a PR bump patchlet.
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@...