Hi Bruce, 2014-07-08 00:36, Bruce Richardson: > Add a special case to the native target makefile, where we check if > -march=native shows SSE4.2 support. If it does not, then not everything may > build, so we check if the hardware supports SSE4.2, and use a corei7 target > explicitly to get the SSE4.2 support. [...] > MACHINE_CFLAGS = -march=native > + > +# on FreeBSD systems, sometimes the correct cputype is not picked up. > +# To get everything to compile, we need SSE4.2 support, so check if that is > +# reported by compiler. If not, check if the CPU actually supports it, and if > +# so, set the compilation target to be a corei7, minimum target with SSE4.2 > +SSE42_SUPPORT=$(shell $(CC) -march=native -dM -E - < /dev/null | grep SSE4_2) > +ifeq ($(SSE42_SUPPORT),) > + CPU_SSE42_SUPPORT=$(shell if [ -f /var/run/dmesg.boot ] ; then grep > SSE4\.2 /var/run/dmesg.boot ; fi) > + ifneq ($(CPU_SSE42_SUPPORT),) > + MACHINE_CFLAGS= -march=corei7 > + endif > +endif
What do you think of this change? - CPU_SSE42_SUPPORT=$(shell if [ -f /var/run/dmesg.boot ] ; then grep SSE4\.2 /var/run/dmesg.boot ; fi) + CPU_SSE42_SUPPORT = $(shell grep SSE4\.2 /var/run/dmesg.boot 2>/dev/null) It's simpler and should produce the same result. If you agree, I'll change it before applying. Thanks -- Thomas