OSDN Git Service

[COMMON] Fix unaligned SIMD variables.Fix crash built with "-msse2" at Win32.
[csp-qt/common_source_project-fm7.git] / source / build-cmake / params / buildvars_mingw_params_gcc.dat
index fac8323..e12a757 100644 (file)
 # This is build-parameters fo GCC/MinGW.
 # Neither for GCC/Linux and LLVM.
 #
+case ${LOCAL_ARCH_TYPE} in 
+   "SSE2" | "sse2" )
+      ARCH_FLAGS="-march=pentium4 -mfpmath=sse"
+      ;;
+   "SSE3" | "sse3" )
+      ARCH_FLAGS="-march=prescott  -mfpmath=sse"
+      ;;
+   "AVX" | "avx" )
+      ARCH_FLAGS="-march=pentium4 -msse3  -mssse3 -msse4.1 -msse4.2 -mavx -mfpmath=sse"
+      ;;
+   "SSE1" | "sse1" | "pentium3" | "PENTIUM3" )
+      ARCH_FLAGS="-march=pentium3 -mfpmath=sse"
+      ;;
+   "No" | "no" | "686" )
+      ARCH_FLAGS="-march=i686"
+      ;;
+   * )
+      ARCH_FLAGS="-march=i686 -mtune=generic"
+      ;;
+ esac
 
 case ${CSP_DEBUG} in
    "Yes" | "yes" | "YES" )
-     MAKEFLAGS_BASE2="-g -ggdb ${MAKEFLAGS_BASE} -DNDEBUG"
+     MAKEFLAGS_BASE2="-ggdb ${ARCH_FLAGS} ${MAKEFLAGS_BASE} ${ADDITIONAL_CFLAGS} -DNDEBUG"
      ;;
    "No" | "no" | "NO" | * )
-     MAKEFLAGS_BASE2="${MAKEFLAGS_BASE} -O3 \
-                -fvect-cost-model=dynamic -ftree-vectorize \
-               -ftree-loop-optimize -ftree-loop-if-convert-stores \
-               -fselective-scheduling -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops \
-               -funroll-loops \
-               -floop-nest-optimize \
-               -msse -msse2 -mfpmath=sse \
+     MAKEFLAGS_BASE2="${MAKEFLAGS_BASE} -O2 \
+                ${ARCH_FLAGS} \
                -std=c++11 \
+               ${ADDITIONAL_CFLAGS} \
                -DNDEBUG "
+#                -ftree-vectorize \
+#              -ftree-loop-optimize \
+#              -floop-nest-optimize \
      ;;
 esac
 
+case ${USE_WHOLE_PROGRAM_OPTIMIZE} in
+   "Yes" | "yes" | "YES" )
+      LTO_FLAGS="-fwhole-program"
+      ;;
+   * )
+      LTO_FLAGS=""
+      ;;
+esac
+
+case ${USE_SANITIZER} in
+   "Yes" | "yes" | "YES" )
+      MAKEFLAGS_BASE2="${MAKEFLAGS_BASE2} \
+              -fsanitize=address \
+              -fsanitize=undefined \
+              -fsanitize=vptr \
+                  "
+                  ;;
+   "No" | "no" | "NO" | * )
+                  ;;
+esac   
+
+case ${USE_STACK_PROTECTION} in
+   "Yes" | "yes" | "YES" )
+      MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
+              -fstack-protector \
+                  "
+                  ;;
+   "All" | "all" | "ALL" )
+      MAKEFLAGS_BASE2="${MAKEFLAGS_BASE2} \
+              -fstack-protector-all \
+                  "
+                  ;;
+   "Strong" | "strong" | "STRONG" )
+      MAKEFLAGS_BASE2="${MAKEFLAGS_BASE2} \
+              -fstack-protector-strong \
+                  "
+                  ;;
+   "No" | "no" | "NO" )
+      MAKEFLAGS_BASE2="${MAKEFLAGS_BASE2} \
+              -fno-stack-protector \
+                  "
+                  ;;
+   "Default" | "default" | "DEFAULT" | * )
+           ;;
+esac   
+
 case ${USE_LTO} in
    "Yes" | "yes" | "YES" )
-       MAKEFLAGS_LINK_BASE="-flto -fwhole-program ${MAKEFLAGS_BASE2}"
+       MAKEFLAGS_LINK_BASE="-flto=${LTO_THREADS} ${LTO_FLAGS} ${MAKEFLAGS_BASE2}"
+       MAKEFLAGS_BASE2="-flto -ffat-lto-objects ${MAKEFLAGS_BASE2}"
        ;;
    "No" | "no" | "NO" | * )
        MAKEFLAGS_LINK_BASE="${MAKEFLAGS_BASE2}"
+       MAKEFLAGS_BASE2="${MAKEFLAGS_BASE2}"
        ;;
 esac
+case ${STRIP_SYMBOLS} in
+   "Yes" | "yes" | "YES" )
+     MAKEFLAGS_BASE2="-s ${MAKEFLAGS_BASE2}"
+     MAKEFLAGS_LINK_BASE="-s ${MAKEFLAGS_LINK_BASE}"
+   ;;
+   "No" | "no" | "NO" | * )
+     MAKEFLAGS_BASE2="${MAKEFLAGS_BASE2}"
+     MAKEFLAGS_LINK_BASE="${MAKEFLAGS_LINK_BASE}"
+   ;;
+esac
+case ${USE_OPENMP} in
+   "Yes" | "yes" | "YES" )
+     CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DUSE_OPENMP=YES"
+   ;;
+   "No" | "no" | "NO" | * )
+     CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DUSE_OPENMP=NO"
+   ;;
+esac
+
+#CMAKE_APPENDFLAG="-DUSE_QT5_4_APIS=ON -DUSE_MOVIE_LOADER=ON \
 
-CMAKE_APPENDFLAG="-DUSE_QT5_4_APIS=ON -DUSE_MOVIE_LOADER=ON \
+CMAKE_APPENDFLAG=" -DUSE_QT5_4_APIS=ON \
+                   -DUSE_MOVIE_LOADER=ON \
                    -DUSE_MOVIE_SAVER=ON \
                    -DCMAKE_AR:STRING=i686-w64-mingw32-gcc-ar \
                    -DCMAKE_LD:STRING=i686-w64-mingw32-gcc-ld \