Hi all, I've recently been looking into a performance regression when switching from my SoC vendor's pre-compiled legacy SDK toolchain (gcc 4.5.1 + glibc 2.11) to OE. The CPU is a 45nm Intel Atom and my machine config includes tune-atom.inc. The root cause of the slowdown seems to be that by default OE for 32bit x86 configures glibc for i586-*-linux and therefore does not enable the SSE optimised string functions, etc, etc which are available when building glibc for i686-*-linux.
Performance of the OE builds can be restored by setting X86ARCH32 to "i686" in tune-core2.inc. This seems to be a correct and valid fix, applicable to atom, core2 and corei7 and hopefully acceptable for upstream oe-core. However, a side effect of the fix is that TRANSLATED_TARGET_ARCH changes from i586 to i686, which means that any _i586 over-rides stop working and I'm not sure on the best way to solve that. Looking at the _i586 over-rides in oe-core and meta-oe, there aren't many and most could (should?) probably be replaced with _x86 instead. An alternative might be to duplicate every _i586 over-ride for _i686 (it's already done that way for KLIBC_ARCH and QEMUARCH in meta-oe). Which would be the preferred approach? Thanks Andre -- -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core