[OE-core] Wrong sstate signatures for cross toolchain Was: [yocto] Building gdb-7.10 for arm with master

Martin Jansa martin.jansa at gmail.com
Wed Mar 9 23:52:07 UTC 2016


On Wed, Mar 09, 2016 at 11:02:31PM +0000, Richard Purdie wrote:
> On Wed, 2016-03-09 at 23:50 +0100, Martin Jansa wrote:
> > What's even more interesting is that even gcc-cross-initial has
> > different signatures for 2 ARM MACHINEs with different DEFAULTTUNES
> > 
> > OE qemuarm7@ ~/build/oe-core $ grep ^DEFAULTTUNE= env.gdb-cross-arm*
> > env.gdb-cross-arm:DEFAULTTUNE="armv5te"
> > env.gdb-cross-arm7:DEFAULTTUNE="armv7a-neon"
> > 
> > OE qemuarm7@ ~/build/oe-core $ ls tmp-glibc/sstate
> > -diff/1457556601/*/*/*gcc-cross-initial*/*do_configure*
> > tmp-glibc/sstate-diff/1457556601/qemuarm/x86_64-linux/gcc-cross
> > -initial-arm/5.3.0
> > -r0.do_configure.sigdata.e54e7a04acf1029cc37463114c7e4dba
> > tmp-glibc/sstate-diff/1457556601/qemuarm7/x86_64-linux/gcc-cross
> > -initial-arm/5.3.0
> > -r0.do_configure.sigdata.3496e3dde08a49b14462741cc6f8d239
> > OE qemuarm7@ ~/build/oe-core $ bitbake-diffsigs tmp-glibc/sstate
> > -diff/1457556601/*/*/*gcc-cross-initial*/*do_configure*
> > basehash changed from 5848199c69eee0db746de21c5458c13d to
> > 673cd8d19bc4cbea132900a670593df6
> > Variable EXTRA_OECONF value changed from '--with-newlib --without
> > -headers --disable-shared --disable-threads --disable-multilib -
> > -disable-__cxa_atexit --enable-languages=c --program
> > -prefix=${TARGET_PREFIX} --with-sysroot=/not/exist --with-build
> > -sysroot=${GCCCROSS_BUILDSYSROOT} ${EXTRA_OECONF_INITIAL} 
> > ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '--with
> > -ld=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}ld.bfd', '', d)}
> > ${EXTRA_OECONF_GCC_FLOAT} ${@get_gcc_ppc_plt_settings(bb, d)} --with
> > -native-system-header-dir=${SYSTEMHEADERS}${DISABLE_STATIC} 
> > ${@gettext_oeconf(d)}
> > DISTRO_FEATURES{ld-is-gold} = Unset' to '--with-newlib --without
> > -headers --disable-shared --disable-threads --disable-multilib -
> > -disable-__cxa_atexit --enable-languages=c --program
> > -prefix=${TARGET_PREFIX} --with-sysroot=/not/exist --with-build
> > -sysroot=${GCCCROSS_BUILDSYSROOT} ${EXTRA_OECONF_INITIAL} 
> > ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '--with
> > -ld=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}ld.bfd', '', d)}
> > ${EXTRA_OECONF_GCC_FLOAT} ${@get_gcc_ppc_plt_settings(bb, d)} --with
> > -native-system-header-dir=${SYSTEMHEADERS}${DISABLE_STATIC} 
> > ${@gettext_oeconf(d)} --with-arch=armv7-a
> > DISTRO_FEATURES{ld-is-gold} = Unset'
> 
> To answer my own question, it looks like:
> 
> gcc-configure-common.inc:EXTRA_OECONF_append_armv6 = " --with-arch=armv6"
> gcc-configure-common.inc:EXTRA_OECONF_append_armv7a = " --with-arch=armv7-a"
> gcc-configure-common.inc:EXTRA_OECONF_append_armv7ve = " --with-arch=armv7-a"
> 
> which effectively comes from:
> 
> http://git.yoctoproject.org/cgit.cgi/poky/commit/meta/recipes-devtools/gcc/gcc-configure-common.inc?id=c0a071e16ec04f485f06eece5b807e5afbe1c1f1
> 
> The concept of having one gcc for each arch precludes such changes :(.
> 
> I believe these overrides need to move to the gcc-target.inc file.

Reverting this change in Dizzy based build fixes the signatures for
gcc-cross(-initial)-arm

for gdb-cross-arm, there is still datadir -> TUNE_PKGARCH dependency from even
older change:

OE qemuarm7@ ~/build/oe-core/openembedded-core $ git show -1 3e87aba1
commit 3e87aba1ee2ca0e39ba66fb7cba52e48df499c23
Author: Phil Blundell <pb at pbcl.net>
Date:   Wed Apr 24 16:15:54 2013 +0100

    gdb-cross: Adjust ${datadir} to avoid file conflicts in sysroot
    

+datadir .= "/gdb-${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"

Reverting this change fixes gdb-cross-arm signatures.

Will try what happens when I revert this in master and move --with-arch
options to gcc-target.inc only.

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20160310/93409549/attachment-0002.sig>


More information about the Openembedded-core mailing list