[poky] [RFC: enhance toolchain bootstrap process: v3: 0/7] enhance the toolchain bootstrap process
Cui, Dexuan
dexuan.cui at intel.com
Mon Jan 24 09:55:58 PST 2011
Cui, Dexuan wrote:
> Richard Purdie wrote:
>> Hi Dexuan,
>>
>> On Tue, 2011-01-18 at 21:57 +0800, Dexuan Cui wrote:
>>> 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. :-)
>>
>> I've had a look through this and experimented a little with the code
>> and I've some feedback:
> Hi Richard, thanks very much for the review and feedback!
> BTW: I was just about to send out my "RFC v5" patches and I saw the
> mail. :-)
>
> During the past days, I've been busy with testing and fixing &
> updating my patches.
> The v5 patches are at
> http://git.pokylinux.org/cgit/cgit.cgi/poky-contrib/log/?h=dcui/tcbp-v5
> (actually it's the same as dcui/tcbp-test currently) The attached
> v3-to-v5.diff shows the difference from v3 to v5:
>
> 1) fix several typos for "_prepend_virtclass-nativesdk": previously
> I used the wrong "_virtclass-nativesdk_prepend"!
>
> 2) in eglibc-initial.inc, now the line is
> STAGING_BINDIR_TOOLCHAIN_prepend =
> "${STAGING_DIR_NATIVE}${bindir_native}/${BASEPKG_HOST_SYS}.gcc-cross-initial:"
> Previously, I used HOST_SYS rather than BASEPKG_HOST_SYS. Actually
> HOST_SYS is not ok because this breaks arm/ppc builds.
>
> 3) similarly,
> in eglibc.inc:
> STAGING_BINDIR_TOOLCHAIN_prepend: HOST_SYS --> BASEPKG_HOST_SYS
> CPPFLAGS_prepend: TARGET_SYS -> BASEPKG_TARGET_SYS
> in gcc-cross-intermediate.inc:
> GCC_CROSS_INTERMEDIATE_WITH_BUILD_SYSROOT: TARGET_SYS -->
> BASEPKG_TARGET_SYS
>
> 4) in eglibc-initial.inc:
> use a "for t in ..." loop to replace the previous 3 statements.
>
> 5) add the code for glibc and glibc-initial similarly.
> 6) bump PRs accordingly.
>
> I'll send my current test results later.
My testing for tcbp-v5 is still not finished, but here I'd like to share the current status:
The latest master (070b7ee3, package_deb: Remove access to ...) is not stable: e.g,. pseudo issues, package-output.lock issue(this was fixed by RP 3 hours ago).
So I used a slightly old commit 740ea682(poky-init-build-env: unset BBPATH) as a "Base Build"(without my patches), and also do new build with my patches(My Build).
1) For all qemu targets(x86, x86-64, mips, ppc, arm) , My Build (bitbake poky-image-sdk) can build fine and can boot to sato GUI (except ppc that has not GUI). I checked the list of files in each qemu target's rootfs and can verify the list is the same as that in a Base Build; Inside qemu targets, I tried to run gcc/g++ to build simple C/C++ code and everything works fine.
2) I can also verify My Build(bitbake meta-toolchain-sdk) can build fine.
A KNOWN issue: aftar "tar -jxf" the .bz2 file and "source environment-setup-*, I got the error when running "${CC}":
[root at dcui-desktop 0.9+snapshot]# ${CC}
Inconsistency detected by ld.so: dynamic-link.h: 209: elf_get_dynamic_info: Assertion `info[15] == ((void *)0)' failed!
I'm trying to fix this asap -- looks eglibc-nativesdk is not built ok???
Thanks,
-- Dexuan
More information about the poky
mailing list