Date: Sun, 10 Feb 2019 13:52:24 -0800 From: Mark Millard <marklmi@yahoo.com> To: Steve Kargl <sgk@troutmask.apl.washington.edu> Cc: Dimitry Andric <dim@freebsd.org>, freebsd-toolchain@freebsd.org Subject: Re: clang broken on current? Message-ID: <730656BB-9E5C-4144-A3DA-9CACECB0E4F5@yahoo.com> In-Reply-To: <3357E34B-D91C-4197-86F0-9058C343CAC7@yahoo.com> References: <20190210050003.GA31811@troutmask.apl.washington.edu> <F26ACA01-4132-4020-8089-FB862347F37E@FreeBSD.org> <20190210184656.GD35569@troutmask.apl.washington.edu> <59881520-AB59-49C3-810F-C0676C3B037C@yahoo.com> <20190210193409.GA35990@troutmask.apl.washington.edu> <3357E34B-D91C-4197-86F0-9058C343CAC7@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2019-Feb-10, at 12:02, Mark Millard <marklmi at yahoo.com> wrote: > On 2019-Feb-10, at 11:34, Steve Kargl <sgk at = troutmask.apl.washington.edu> wrote: >=20 >> Having set CFLAGS+=3D-march=3Dnative -mtune=3Dnative and trying to >> force qt5-gui configure with -sse2 option, I have a config.summary >> that contains (my in-line comments ***) >>=20 >> Build type: freebsd-clang (i386, CPU features: <none>) >>=20 >> *** What????? *** >>=20 >> Compiler: clang 7.0.1 >> Configuration: compile_examples largefile rdrnd x86SimdAlways sharedr >> rpath release c++11 c++14 concurrent dbus reduce_exports = reduce_relocations >> stl >> Build options: >> Mode ................................... release >> Optimize release build for size ........ no >> Building shared libraries .............. yes >> Using C standard ....................... C11 >> Using C++ standard ..................... C++14 >> Using ccache ........................... no >> Using gold linker ...................... no >> Using precompiled headers .............. no >> Using LTCG ............................. no >> Target compiler supports: >> SSE .................................. <none> >>=20 >> *** That's not good. *** >>=20 >> AVX .................................. <none> >> AVX512 ............................... <none> >> Other x86 ............................ RDRAND >> Intrinsics without -mXXX option ...... yes >> Build parts ............................ libs tools >=20 >=20 > /usr/ports/Mk/Uses/qt-dist.mk has: >=20 > . if ${ARCH} =3D=3D i386 && empty(MACHINE_CPU:Msse2) > CONFIGURE_ARGS+=3D -no-sse2 > . endif >=20 > This traces back to: >=20 > /usr/src/share/mk/bsd.cpu.mk and its: >=20 > . elif ${MACHINE_CPUARCH} =3D=3D "amd64" > MACHINE_CPU =3D amd64 sse2 sse mmx > . elif ${MACHINE_CPUARCH} =3D=3D "arm" > MACHINE_CPU =3D arm > . elif ${MACHINE_CPUARCH} =3D=3D "i386" > MACHINE_CPU =3D i486 >=20 > and (I'll not list it all): >=20 > ########## i386 > . if ${MACHINE_CPUARCH} =3D=3D "i386" > . if ${CPUTYPE} =3D=3D "znver1" > MACHINE_CPU =3D avx2 avx sse42 sse41 ssse3 sse4a sse3 sse2 sse mmx k6 = k5 i586 > . elif ${CPUTYPE} =3D=3D "bdver4" > MACHINE_CPU =3D xop avx2 avx sse42 sse41 ssse3 sse4a sse3 sse2 sse mmx = k6 k5 i586 > . elif ${CPUTYPE} =3D=3D "bdver3" || ${CPUTYPE} =3D=3D "bdver2" || \ > ${CPUTYPE} =3D=3D "bdver1" > MACHINE_CPU =3D xop avx sse42 sse41 ssse3 sse4a sse3 sse2 sse mmx k6 = k5 i586 > . elif ${CPUTYPE} =3D=3D "btver2" > MACHINE_CPU =3D avx sse42 sse41 ssse3 sse4a sse3 sse2 sse mmx k6 k5 = i586 > . elif ${CPUTYPE} =3D=3D "btver1" > MACHINE_CPU =3D ssse3 sse4a sse3 sse2 sse mmx k6 k5 i586 > . elif ${CPUTYPE} =3D=3D "amdfam10" > MACHINE_CPU =3D athlon-xp athlon k7 3dnow sse4a sse3 sse2 sse mmx k6 = k5 i586 > . elif ${CPUTYPE} =3D=3D "opteron-sse3" || ${CPUTYPE} =3D=3D = "athlon64-sse3" > MACHINE_CPU =3D athlon-xp athlon k7 3dnow sse3 sse2 sse mmx k6 k5 i586 > . elif ${CPUTYPE} =3D=3D "opteron" || ${CPUTYPE} =3D=3D "athlon64" || = \ >=20 > . . . >=20 > and: >=20 > ########## amd64 > . elif ${MACHINE_CPUARCH} =3D=3D "amd64" > . if ${CPUTYPE} =3D=3D "znver1" > MACHINE_CPU =3D avx2 avx sse42 sse41 ssse3 sse4a sse3 > . . . > . endif > MACHINE_CPU +=3D amd64 sse2 sse mmx > ########## Mips > . elif ${MACHINE_CPUARCH} =3D=3D "mips" >=20 >=20 > So it looks like freeBSD expects CPUTYPE to be set for i368 in order > to enable sse2 in MACHINE_CPU . Other things have a similar status > for amd64 but amd64 always has sse2 . >=20 [I see I switched which message that I was replying to. Sorry.] Looks like when native works and clang is in use, and the context is amd64 (or i386), CPUTYPE could be generated by the likes of (example from my amd64 context): # sh -c "clang -v -fsyntax-only -march=3Dnative -x c /dev/null 2>&1 | = grep -e '-target-cpu' | sed -e 's|.*-target-cpu \([[:alnum:]]*\) = .*|\1|'" znver1 (I got that command from = https://forums.freebsd.org/threads/make-conf-optimizations-optimizing-buil= ds.63461/ .) Trying such on a cortex-a57 (aarch64) got an empty-string result. Same for cortex-a53 (aarch64) and cortex-a7 (armv7). (I do not have a powerpc* available at the moment.) =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?730656BB-9E5C-4144-A3DA-9CACECB0E4F5>