4 function detect_llvm_version () {
5 if [ "__xx__${TOOLCHAIN_VERSION}" = "__xx__" ] ; then
8 TEST_CC="clang-${TOOLCHAIN_VERSION}"
10 CC_VERSION=`${TEST_CC} -dumpversion | cut -d "." -f 1`
14 C_MAJOR_VERSION=`detect_llvm_version`
16 if [ __x__"${BUILD_TYPE}" = __x__Debug ] ; then
19 elif [ __x__"${BUILD_TYPE}" = __x__Relwithdebinfo ] ; then
25 BASICOPTS+=(${OPTIMIZE_LEVEL})
27 if [ "__x__${OPTIMIZE_LEVEL}" != "__x__-O0" ] ; then
28 if [ $C_MAJOR_VERSION -le 12 ] ; then
29 COPTS+=(-fslp-vectorize)
31 COPTS+=(-fstrict-vtable-pointers)
32 COPTS+=(-fstrict-enums)
36 if [ $USE_LTO -ne 0 ] ; then
40 . ${SCRIPTS_DIR}/additional_defines_simd_types_llvm.sh
42 BASICOPTS+=(-Wreserved-user-defined-literal)
44 if [ "__xx__${TOOLCHAIN_VERSION}" != "__xx__" ] ; then
45 DLL_LDOPTS+=(-fuse-ld=lld-${TOOLCHAIN_VERSION})
46 EXE_LDOPTS+=(-fuse-ld=lld-${TOOLCHAIN_VERSION})
48 DLL_LDOPTS+=(-fuse-ld=lld)
49 EXE_LDOPTS+=(-fuse-ld=lld)
51 if [ $USE_LTO -ne 0 ] ; then
52 DLL_LDOPTS+=(-flto=jobserver)
53 EXE_LDOPTS+=(-flto=jobserver)
55 if [ __x__"${BUILD_TYPE}" != __x__Release ] ; then
58 DLL_LDOPTS+=(-Wl,--compress-debug-sections=zlib)
59 EXE_LDOPTS+=(-Wl,--compress-debug-sections=zlib)
60 if [ $C_MAJOR_VERSION -le 11 ] ; then
61 COPTS+=(-Wa,--compress-debug-sections=zlib)
68 if [ __x__"${BUILD_TYPE}" != __x__Debug ] ; then
69 if [ $USE_LTO -ne 0 ] ; then
70 DLL_LDOPTS+=(-Wl,--lto-O3)
71 EXE_LDOPTS+=(-Wl,--lto-O3)
73 EXE_LDOPTS+=(-fwhole-program-vtables)
75 #EXE_LDOPTS+=(-Wl,--allow-shlib-undefined)