[OE-core] [RFC] Binutils upgrade to 2.24

Khem Raj raj.khem at gmail.com
Sat Feb 1 09:05:04 UTC 2014


On Fri, Jan 31, 2014 at 3:42 PM, Khem Raj <raj.khem at gmail.com> wrote:
> On Fri, Jan 31, 2014 at 2:35 PM, Saul Wold <sgw at linux.intel.com> wrote:
>> On 01/31/2014 02:08 PM, Khem Raj wrote:
>>>
>>> On Fri, Jan 31, 2014 at 1:36 PM, Saul Wold <sgw at linux.intel.com> wrote:
>>>>
>>>> On 01/29/2014 08:33 PM, Khem Raj wrote:
>>>>>
>>>>>
>>>>> On Thu, Dec 19, 2013 at 7:21 AM, Saul Wold <sgw at linux.intel.com> wrote:
>>>>>>
>>>>>>
>>>>>> On 12/16/2013 12:03 PM, Khem Raj wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Hi
>>>>>>>
>>>>>>> I have pushed a contrib branch for binutils 2.24 upgrade here
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> http://git.openembedded.org/openembedded-core-contrib/log/?h=kraj/binutils-2.24
>>>>>>>
>>>>>>> I have tested it on both uclibc/eglibc and qemu machines. But it would
>>>>>>> be nice if
>>>>>>> it gets more testing for machines I havent tested
>>>>>>>
>>>>>>
>>>>>> Looks like we tickled an LD bug of somekind, we are seeing the
>>>>>> following
>>>>>> failure across all machines, this was a second build using binutils
>>>>>> 2.24,
>>>>>> so
>>>>>> there was some shared state usage.
>>>>>>
>>>>>> RP pointed out the --as-needed option was used with -lm as those
>>>>>> symbols
>>>>>> are
>>>>>> math related.
>>>>>>
>>>>>>> | powerpc-poky-linux-gcc  -m32 -mhard-float -mcpu=7400
>>>>>>>
>>>>>>>
>>>>>>> --sysroot=/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/sysroots/qemuppc
>>>>>>> -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
>>>>>>>
>>>>>>>
>>>>>>> -I/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/work/ppc7400-poky-linux/wireless-tools/1_29-r4/wireless_tools.29
>>>>>>> -O2 -pipe -g -feliminate-unused-debug-types -MMD     -o iwconfig
>>>>>>> iwconfig.o
>>>>>>> libiw.so.29 -lm
>>>>>>> | powerpc-poky-linux-gcc  -m32 -mhard-float -mcpu=7400
>>>>>>>
>>>>>>>
>>>>>>> --sysroot=/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/sysroots/qemuppc
>>>>>>> -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
>>>>>>>
>>>>>>>
>>>>>>> -I/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/work/ppc7400-poky-linux/wireless-tools/1_29-r4/wireless_tools.29
>>>>>>> -O2 -pipe -g -feliminate-unused-debug-types -MMD     -o iwlist
>>>>>>> iwlist.o
>>>>>>> libiw.so.29 -lm
>>>>>>> | powerpc-poky-linux-gcc  -m32 -mhard-float -mcpu=7400
>>>>>>>
>>>>>>>
>>>>>>> --sysroot=/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/sysroots/qemuppc
>>>>>>> -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
>>>>>>>
>>>>>>>
>>>>>>> -I/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/work/ppc7400-poky-linux/wireless-tools/1_29-r4/wireless_tools.29
>>>>>>> -O2 -pipe -g -feliminate-unused-debug-types -MMD     -o iwpriv
>>>>>>> iwpriv.o
>>>>>>> libiw.so.29 -lm
>>>>>>> | powerpc-poky-linux-gcc  -m32 -mhard-float -mcpu=7400
>>>>>>>
>>>>>>>
>>>>>>> --sysroot=/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/sysroots/qemuppc
>>>>>>> -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
>>>>>>>
>>>>>>>
>>>>>>> -I/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/work/ppc7400-poky-linux/wireless-tools/1_29-r4/wireless_tools.29
>>>>>>> -O2 -pipe -g -feliminate-unused-debug-types -MMD     -o iwspy iwspy.o
>>>>>>> libiw.so.29 -lm
>>>>>>> | powerpc-poky-linux-gcc  -m32 -mhard-float -mcpu=7400
>>>>>>>
>>>>>>>
>>>>>>> --sysroot=/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/sysroots/qemuppc
>>>>>>> -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
>>>>>>>
>>>>>>>
>>>>>>> -I/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/work/ppc7400-poky-linux/wireless-tools/1_29-r4/wireless_tools.29
>>>>>>> -O2 -pipe -g -feliminate-unused-debug-types -MMD     -o iwgetid
>>>>>>> iwgetid.o
>>>>>>> libiw.so.29 -lm
>>>>>>> | powerpc-poky-linux-gcc  -m32 -mhard-float -mcpu=7400
>>>>>>>
>>>>>>>
>>>>>>> --sysroot=/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/sysroots/qemuppc
>>>>>>> -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
>>>>>>>
>>>>>>>
>>>>>>> -I/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/work/ppc7400-poky-linux/wireless-tools/1_29-r4/wireless_tools.29
>>>>>>> -O2 -pipe -g -feliminate-unused-debug-types -MMD     -o iwevent
>>>>>>> iwevent.o
>>>>>>> libiw.so.29 -lm
>>>>>>> | libiw.so.29: undefined reference to `ceil'
>>>>>>> | libiw.so.29: undefined reference to `pow'
>>>>>>> | libiw.so.29: undefined reference to `log10'
>>>>>>> | libiw.so.29: undefined reference to `floor'
>>>>>>> | collect2: error: ld returned 1 exit status
>>>>>>> | make: *** [iwconfig] Error 1
>>>>>>> | make: *** Waiting for unfinished jobs....
>>>>>>> | libiw.so.29: undefined reference to `ceil'
>>>>>>> | libiw.so.29: undefined reference to `pow'
>>>>>>> | libiw.so.29: undefined reference to `log10'
>>>>>>> | libiw.so.29: undefined reference to `floor'
>>>>>>> | collect2: error: ld returned 1 exit status
>>>>>>> | make: *** [iwgetid] Error 1
>>>>>>> | libiw.so.29: undefined reference to `ceil'
>>>>>>> | libiw.so.29: undefined reference to `pow'
>>>>>>> | libiw.so.29: undefined reference to `log10'
>>>>>>> | libiw.so.29: undefined reference to `floor'
>>>>>>> | collect2: error: ld returned 1 exit status
>>>>>>> | make: *** [iwspy] Error 1
>>>>>>> | libiw.so.29: undefined reference to `ceil'
>>>>>>> | libiw.so.29: undefined reference to `pow'
>>>>>>> | libiw.so.29: undefined reference to `log10'
>>>>>>> | libiw.so.29: undefined reference to `floor'
>>>>>>> | collect2: error: ld returned 1 exit status
>>>>>>> | make: *** [iwpriv] Error 1
>>>>>>> | libiw.so.29: undefined reference to `ceil'
>>>>>>> | libiw.so.29: undefined reference to `pow'
>>>>>>> | libiw.so.29: undefined reference to `log10'
>>>>>>> | libiw.so.29: undefined reference to `floor'
>>>>>>> | collect2: error: ld returned 1 exit status
>>>>>>> | make: *** [iwlist] Error 1
>>>>>>> | libiw.so.29: undefined reference to `ceil'
>>>>>>> | libiw.so.29: undefined reference to `pow'
>>>>>>> | libiw.so.29: undefined reference to `log10'
>>>>>>> | libiw.so.29: undefined reference to `floor'
>>>>>>> | collect2: error: ld returned 1 exit status
>>>>>>> | make: *** [iwevent] Error 1
>>>>>>> | ERROR: oe_runmake failed
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> I tested OE-Core builds for qemuppc
>>>>>
>>>>> 1. build from scratch  ( MACHINE=qemuppc bitbake wirelesstools)
>>>>> 2. build from sstate ( MACHINE=qemuppc bitbake -cclean wirelesstools
>>>>> and then step 1)
>>>>> 3. Build second time just wireless-tools ( MACHINE=qemuppc bitbake
>>>>> -ccleanall wirelesstools and then step 1 )
>>>>> 4. Rebuild all from sstate ( rm -rf tmp/ and then step 1)
>>>>>
>>>>> I could not reproduce this issue at all. The differences are I did it
>>>>> with OE-Core and not with Poky autbuilders run with poky distro
>>>>> policies.
>>>>> we should also actually regress OE-Core alone
>>>>>
>>>>> My build machine here is debian/wheezy and ubuntu 12.04 both 64bit)
>>>>>
>>>>> I am on commit c3f3fed1b397b6ee6d44e7d39e63d084e4a88e30 of OE-Core
>>>>>
>>>>> At this point I am out of ideas how to reproduce this.
>>>>>
>>>>> If there is some other developer out there who can try this patch and
>>>>> get the same errors,that would be interesting and probably we
>>>>> will get to root of it.
>>>>>
>>>>>
>>>> Sorry Khem, failed again!
>>>>
>>>> Build Configuration:
>>>> BB_VERSION        = "1.21.1"
>>>> BUILD_SYS         = "x86_64-linux"
>>>> NATIVELSBSTRING   = "Ubuntu-13.10"
>>>> TARGET_SYS        = "powerpc-poky-linux"
>>>> MACHINE           = "qemuppc"
>>>> DISTRO            = "poky"
>>>> DISTRO_VERSION    = "1.5+snapshot-20140131"
>>>> TUNE_FEATURES     = "m32 fpu-hard ppc7400 altivec"
>>>> TARGET_FPU        = ""
>>>> meta
>>>> meta-yocto
>>>> meta-yocto-bsp    = "mut:980faeefaac3466aff38822479bf7d9fff4994eb"
>>>>
>>>>
>>>> I did a bitbake -c cleansstate binutils-native eglibc wireless-tools
>>>> followed by a bitbake of wireless-tools and I still get this same
>>>> failure.
>>>>
>>>
>>> OK still cant get it here. For above, you did those cmds on clean tmp/
>>> and sstate being around ? or tmp with previous build in there
>>>
>> Yes, but I just did another clean sstate, clean tmp dir of both of these
>> build and they both still fail.
>>
>> Do you have a newer machine than 12.04?  What's the compiler/binutils that
>> you have on 12.04 for the native build. I have binutils-2.23.52 and
>> gcc-4.8.1 on my Ubuntu 13.10.
>
> Mine is debian/wheezy here. I think I have access to 13.10 box
> somewhere, let me try it there
>
>
>>
>> Sau!
>>
>>
>>>
>>>> My build info above.
>>>>
>>>> I tried with OE-Core alone and still got the same failure (this time with
>>>> ARM!)
>>>>
>>>> Build Configuration:
>>>> BB_VERSION        = "1.21.1"
>>>> BUILD_SYS         = "x86_64-linux"
>>>> NATIVELSBSTRING   = "Ubuntu-13.10"
>>>> TARGET_SYS        = "arm-oe-linux-gnueabi"
>>>> MACHINE           = "qemuarm"
>>>> DISTRO            = "nodistro"
>>>> DISTRO_VERSION    = "nodistro.0"
>>>> TUNE_FEATURES     = "armv5 thumb dsp"
>>>> TARGET_FPU        = "soft"
>>>> meta              = "binutils:e20eeca128f362d500e19c5757e13cc7dab86b3a"
>>>>
>>>>
>>>> Totally clean build area.
>>>>
>>>
>>> and no sstate ?
>>>
>>
>> Build again with NO Sstate and clean build area

I was able to reproduce it, I have fixed it in wireless-tools
and sent out a new patchset to ml as pull request, test it out
in your setup

>>
>>>>
>>>>
>>>> Sau!
>>>>
>>>
>>>
>>



More information about the Openembedded-core mailing list