Skip to content

RFC enhance the toolchain bootstrap process

Dexuan Cui poky 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v3 RFC Latest7 patches 8 repliesIn review

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7sstate.bbclass: allow each step of toolchain bootstrap processes to do populate_sysroot independentlymeta/classes/sstate.bbclass+0 -240 replies
2/7cross.bbclass: make MULTIMACH_TARGET_SYS adjustable for bindir, libdir, libexecdirmeta/classes/cross.bbclass+4 -30 replies
3/7gcc-cross-initial, gcc-crosssdk-initial: change CROSS_TARGET_SYS_DIR and insall into new locationsmeta/recipes-devtools/gcc/gcc-cross-initial.inc meta/recipes-devtools/gcc/gcc-cross-initial_4.3.3.bb meta/recipes-devtools/gcc/gcc-cross-initial_4.5.1.bb +2 more+6 -42 replies
4/7eglibc-initial, eglibc-initial-nativesdk: install into individual sysrootsmeta/recipes-core/eglibc/eglibc-initial.inc meta/recipes-core/eglibc/eglibc_2.12.bb+11 -10 replies
5/7gcc-cross-intermediate, gcc-crosssdk-intermediate: change CROSS_TARGET_SYS_DIR and insall into new locationsmeta/recipes-devtools/gcc/gcc-4.5.1/fix_CPPFLAGS_LDFLAGS_FOR_TARGET.patch meta/recipes-devtools/gcc/gcc-cross-intermediate.inc meta/recipes-devtools/gcc/gcc-cross-intermediate_4.3.3.bb +4 more+73 -70 replies
6/7cross.bbclass: modify sysroot_stage_all to allow gcc-{cross, crossdk}-intermediate to populate the libgcc_s.so* filesmeta/classes/cross.bbclass meta/recipes-devtools/gcc/gcc-cross-intermediate.inc+11 -60 replies
7/7eglibc, eglibc-nativesdk: fix the build due to changes to eglibc-initial and gcc-cross-intermediatemeta/recipes-core/eglibc/eglibc.inc meta/recipes-core/eglibc/eglibc_2.12.bb+11 -61 reply

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

Cover letter [RFC: enhance toolchain bootstrap process: v3: 0/7] enhance the toolchain bootstrap process

Hi Richard and all,

The patch set enhances the toolchain bootstrap process by installing a separate sysroot for each step of the process.
The purpose is to avoid file overwriting in the current global sysroot, namely, to fix Bug 239: http://bugzilla.pokylinux.org/show_bug.cgi?id=239

The basic idea is straightforward:
1) For gcc-cross-initial and -intermediate, by changing MULTIMACH_TARGET_SYS to install the files into new locations;
2) Fix the build of eglibc-initial, eglibc by using the appropriate compilers, libs, headers;
3) Also make proper changes for the crosssdk/nativesdk version.

I've split all the changes into small git commits and each commit should be basically self-explanatory. :-)

Please review the commits and comment. Thanks!

Test Results:
I've tested building poky-image-sdk on various qemu targets: the qemu target can boot fine.
I'm also testing building meta-toolchain-sdk -- not finished yet, but I think it should be fine because "bitbake gcc-runtime-nativesdk" and "bitbake gcc-cross-canadian-mips" can succeed. I'll be doing more tests.

TODO:
1) changes to gcc-4.3.3 not completely finished (Should we still support gcc-4.3.3 since we have gcc-4.5.1?) However I think I should be able to add the missing changes soon, supposing here 4.3.3 and 4.5.1 have no big difference.
2) do more tests against glibc rather than eglibc.

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: dcui/tcbp-v3
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dcui/tcbp-v3

Thanks,
Dexuan Cui <[email protected]>
---

Dexuan Cui (7):
sstate.bbclass: allow each step of toolchain bootstrap processes to
do populate_sysroot independently
cross.bbclass: make MULTIMACH_TARGET_SYS adjustable for bindir,
libdir, libexecdir
gcc-cross-initial, gcc-crosssdk-initial: change CROSS_TARGET_SYS_DIR
and insall into new locations
eglibc-initial, eglibc-initial-nativesdk: install into individual
sysroots
gcc-cross-intermediate, gcc-crosssdk-intermediate: change
CROSS_TARGET_SYS_DIR and insall into new locations
cross.bbclass: modify sysroot_stage_all to allow
gcc-{cross,crossdk}-intermediate to populate the libgcc_s.so* files
eglibc, eglibc-nativesdk: fix the build due to changes to
eglibc-initial and gcc-cross-intermediate

 meta/classes/cross.bbclass                         |   17 +++++---
 meta/classes/sstate.bbclass                        |   24 ------------
 meta/recipes-core/eglibc/eglibc-initial.inc        |   10 +++++
 meta/recipes-core/eglibc/eglibc.inc                |    9 ++++
 meta/recipes-core/eglibc/eglibc_2.12.bb            |    8 +---
 .../fix_CPPFLAGS_LDFLAGS_FOR_TARGET.patch          |   40 ++++++++++++++++++++
 meta/recipes-devtools/gcc/gcc-cross-initial.inc    |    2 +
 .../gcc/gcc-cross-initial_4.3.3.bb                 |    2 +-
 .../gcc/gcc-cross-initial_4.5.1.bb                 |    2 +-
 .../gcc/gcc-cross-intermediate.inc                 |   32 ++++++++++++++-
 .../gcc/gcc-cross-intermediate_4.3.3.bb            |    2 +-
 .../gcc/gcc-cross-intermediate_4.5.1.bb            |    2 +-
 .../gcc/gcc-crosssdk-initial_4.3.3.bb              |    2 +-
 .../gcc/gcc-crosssdk-initial_4.5.1.bb              |    2 +-
 .../gcc/gcc-crosssdk-intermediate.inc              |    3 +
 .../gcc/gcc-crosssdk-intermediate_4.3.3.bb         |    2 +-
 .../gcc/gcc-crosssdk-intermediate_4.5.1.bb         |    2 +-
 17 files changed, 113 insertions(+), 48 deletions(-)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.5.1/fix_CPPFLAGS_LDFLAGS_FOR_TARGET.patch
Signature · 1 line
1.7.2