Message ID | XnsA38C830E65DF6berndkuhlsPkbjNfxxIA@bernd-kuhls.de |
---|---|
State | Not Applicable |
Headers | show |
Dear Bernd Kuhls, On Sun, 17 Aug 2014 12:53:00 +0200, Bernd Kuhls wrote: > I understand, but removing the gcc version check, which would remove > support for xmmintrin.h in all i386 builds, would remove the mmx support > for lame on many builds, where it is not necessary. Yes, understood. Maybe instead add some conditional code in lame to enable the MMX stuff only with known working gcc versions? I think there are some #define you can test to get the gcc version. > Would something like this, extended to all external toolchains, be > acceptable? > > --- a/toolchain/toolchain-external/Config.in > +++ b/toolchain/toolchain-external/Config.in > @@ -18,6 +18,7 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM > select BR2_INSTALL_LIBSTDCPP > select BR2_HOSTARCH_NEEDS_IA32_LIBS > select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 > + select BR2_GCC_VERSION_4_9_X > help > Linaro toolchain for the ARM architecture. It uses Linaro > GCC 2014.05 (based on gcc 4.9), Linaro GDB 2014.05 (based on That works only for "known" external toolchains: it won't work with custom external toolchains. Thomas
On 08/17/14 14:55, Thomas Petazzoni wrote: > Dear Bernd Kuhls, > > On Sun, 17 Aug 2014 12:53:00 +0200, Bernd Kuhls wrote: > >> I understand, but removing the gcc version check, which would remove >> support for xmmintrin.h in all i386 builds, would remove the mmx support >> for lame on many builds, where it is not necessary. > > Yes, understood. Maybe instead add some conditional code in lame to > enable the MMX stuff only with known working gcc versions? I think > there are some #define you can test to get the gcc version. Since the work is done in a hook, it can be as simple as: ifeq ($(BR2_i386),y) define LAME_COMPILE_FIX if $(CC) --version | grep -q '4\.9'; then \ $(SED) '/xmmintrin\.h/d' $(@D)/configure; \ fi endef endif However, it should be a post-patch hook, not a pre-configure hook. The convention is that anything that manipulates the source itself should be done in the patch (or extract) step. Regards, Arnout [snip]
--- a/toolchain/toolchain-external/Config.in +++ b/toolchain/toolchain-external/Config.in @@ -18,6 +18,7 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 + select BR2_GCC_VERSION_4_9_X help Linaro toolchain for the ARM architecture. It uses Linaro GCC 2014.05 (based on gcc 4.9), Linaro GDB 2014.05 (based on