On 03/09/2016 05:02 PM, 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 :(.

Yes. Fundamentally the Yocto concept of arch appears to be inconsistent with gcc's concept in that the defaults for Yocto don't match the defaults for gcc on the same platform. At the time I submitted that patch reworking how the toolchain is built wasn't feasible.

I'm not working with Yocto at this time so can't contribute to the solution, however if/when I get the opportunity I can help verify that the bug the patch fixed hasn't been re-introduced.

Peter
I believe these overrides need to move to the gcc-target.inc file.

Cheers,

Richard


--
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to