[yocto] [OE-core] [RFT] upcoming glibc 2.21 and gcc 4.9 upgrade

Khem Raj raj.khem at gmail.com
Wed Feb 18 19:36:54 PST 2015


> On Feb 18, 2015, at 4:31 PM, Khem Raj <raj.khem at gmail.com> wrote:
> 
> 
>> On Feb 18, 2015, at 4:28 PM, Khem Raj <raj.khem at gmail.com> wrote:
>> 
>> 
>>> On Feb 18, 2015, at 4:23 PM, Khem Raj <raj.khem at gmail.com> wrote:
>>> 
>>> 
>>>> On Feb 18, 2015, at 1:41 PM, Richard Purdie <richard.purdie at linuxfoundation.org> wrote:
>>>> 
>>>> On Wed, 2015-02-18 at 10:38 -0800, Khem Raj wrote:
>>>>>> On Feb 18, 2015, at 5:06 AM, Richard Purdie <richard.purdie at linuxfoundation.org> wrote:
>>>>>> On Wed, 2015-02-18 at 11:51 +0000, Richard Purdie wrote:
>>>>>>> On Wed, 2015-02-18 at 01:01 -0800, Khem Raj wrote:
>>>>>> The series needs:
>>>>>> 
>>>>>> TUNE_CCARGS_x86 := "${@oe_filter_out('-mfpmath=sse', '${TUNE_CCARGS}', d)}"
>>>>>> +TUNE_CCARGS_x86-64 := "${@oe_filter_out('-mfpmath=sse', '${TUNE_CCARGS}', d)}”
>>>>>> 
>>>>> 
>>>>> hmmm I assumed x86 was common across 32bit and 64bit x86 but seems not so I replaced the old patch instead of appending it 
>>>> 
>>>> Thanks, I'll update the patch for the next round.
>>>> 
>>>>> 
>>>>>> since the x86 override doesn't cover x86_64. I'll queue that and run yet
>>>>>> another build. We do have another poky-tiny issue too:
>>>>>> 
>>>>>> https://autobuilder.yoctoproject.org/main/builders/poky-tiny/builds/204
>>>>>> 
>>>>> 
>>>>> OK. I am creating a local config to use tiny config for libc and weed out remaining build issues for tiny config 
>>>> 
>>>> Cool, thanks.
>>>> 
>>>> The next build is in progress and looking greener than the last. Next up
>>>> it appears we still have multilib issues:
>>> 
>>> I have pushed a new patchset to same branch. That should fix the tiny build issues.
>>> 
>>>> 
>>>> https://autobuilder.yoctoproject.org/main/builders/nightly-multilib/builds/201
>>> 
>>> 
>>> | dcigettext.c: In function '__dcigettext':
>>> | dcigettext.c:856:30: error: '__libc_setlocale_lock' undeclared (first use in this function)
>>> |         __libc_rwlock_unlock (__libc_setlocale_lock);
>>> 
>>> is what I see.
>>> 
>>> I have fixed this in the latest patchset. So lets start with the new patchset.
>>> 
>> 
>> in https://autobuilder.yoctoproject.org/main/builders/nightly-multilib/builds/201/steps/BuildImages/logs/stdio
>> 
>> | make: *** [/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-multilib/build/build/tmp/work/core2-64-poky-linux/glibc-locale/2.21-r0/locale-tree/usr/lib64/locale/es_HN] Aborted (core dumped)
>> 
>> thats new its probably a crash in localedef.
>> 
> 
> 
> | checking for i586-pokymllib32-linux-gcc... i586-pokymllib32-linux-gcc -m64 -march=core2 -mtune=core2 -msse3 --sysroot=/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-multilib/build/build/tmp/sysroots/lib32-qemux86-64-tcbootstrap
> | checking for suffix of object files... configure: error: in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-multilib/build/build/tmp/work/x86-pokymllib32-linux/lib32-glibc-initial/2.21-r0/build-i586-pokymllib32-linux':
> | configure: error: cannot compute suffix of object files: cannot compile
> | See `config.log' for more details
> | WARNING: /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-multilib/build/build/tmp/work/x86-pokymllib32-linux/lib32-glibc-initial/2.21-r0/temp/run.do_configure.1095:1 exit 1 from
> |   /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-multilib/build/build/tmp/work/x86-pokymllib32-linux/lib32-glibc-initial/2.21-r0/git/configure --host=i586-pokymllib32-linux --build=x86_64-linux --prefix=/usr --without-cvs --disable-sanity-checks --with-headers=/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-multilib/build/build/tmp/sysroots/lib32-qemux86-64/usr/include --with-kconfig=/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-multilib/build/build/tmp/sysroots/x86_64-linux/usr/bin --enable-hacker-mode --enable-addons
> | ERROR: Function failed: do_configure (log file is located at /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-multilib/build/build/tmp/work/x86-pokymllib32-linux/lib32-glibc-initial/2.21-r0/temp/log.do_configure.1095)
> NOTE: recipe lib32-glibc-initial-2.21-r0: task do_configure: Failed
> 
> 
> Can you post config.log ? here
> 
> I don’t have multilib setup so hard to reproduce it here
> 


Nevermind. I think I understood the problem. This tweaking of TUNE_CCARGS is resulting in premature evaluation in case of multilib and we are ending up with 64bit options when using 32bit gcc
Now, I have fixed this by patching glibc itself. see

http://git.openembedded.org/openembedded-core-contrib/tree/meta/recipes-core/glibc/glibc/0001-When-disabling-SSE-also-make-sure-that-fpmath-is-not.patch?h=kraj/gcc-glibc-upgrade

as a result all CCARGS patches aren’t needed any longer.

This should be good with multilib now. Please try the latest patchset.

Thinking of TUNE_CCARGS pruning, I think mips multilib will have similar issues, probably that flag should also move into glibc build system but I will leave that for another day


More information about the yocto mailing list