OSDN Git Service

[BUILD][General][WIP] Win32: TRY: Cross build with llvm clang, linking has failed...
authorK.Ohta <whatisthis.sowhat@gmail.com>
Tue, 27 Sep 2016 21:54:05 +0000 (06:54 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Tue, 27 Sep 2016 21:54:05 +0000 (06:54 +0900)
source/build-cmake/buildvars.dat
source/build-cmake/buildvars_mingw_cross_win32.dat
source/build-cmake/cmake/toolchain_win32_cross_linux_llvm.cmake
source/build-cmake/config_build_cross_win32.sh

index 3639b7c..46aad80 100644 (file)
@@ -13,6 +13,7 @@ MAKEFLAGS_BASE=" \
                -Wreserved-user-defined-literal \
                -fslp-vectorize \
                -fvectorize -funroll-loops \
+               -mcpu=x86-64 \
                -msse -msse2 \
               "
 MAKEFLAGS_CXX_BASE="-g -O3  -std=c++03 ${MAKEFLAGS_BASE} -flto -DNDEBUG" 
index ba4a07b..2951ce6 100644 (file)
@@ -10,20 +10,14 @@ MAKEFLAGS_BASE="-fvect-cost-model=dynamic -ftree-vectorize \
                -fselective-scheduling -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops \
                -funroll-loops \
                -floop-nest-optimize \
-               -msse -msse2 -mfpmath=sse"
+               -msse -msse2 -mfpmath=sse \
+               -std=c++11"
                
 MAKEFLAGS_BASE2="-flto -O3 ${MAKEFLAGS_BASE} -DNDEBUG"
 #MAKEFLAGS_BASE2="-g -ggdb -DNDEBUG"
 
-MAKEFLAGS_CXX="${MAKEFLAGS_BASE2}"
-MAKEFLAGS_CC="${MAKEFLAGS_BASE2}"
-MAKEFLAGS_LIB_CXX="${MAKEFLAGS_BASE2}"
-MAKEFLAGS_LIB_CC="${MAKEFLAGS_BASE2}"
-
-MAKEFLAGS_LINK_BASE="-s ${MAKEFLAGS_BASE2}"
+MAKEFLAGS_LINK_BASE="-s -fwhole-program ${MAKEFLAGS_BASE2}"
 #MAKEFLAGS_LINK_BASE="-g -ggdb ${MAKEFLAGS_BASE2}"
-CMAKE_LINKFLAG="${MAKEFLAGS_LINK_BASE}"
-CMAKE_DLL_LINKFLAG="${MAKEFLAGS_LINK_BASE}"
 
 CMAKE_APPENDFLAG="-DUSE_QT5_4_APIS=ON -DUSE_MOVIE_LOADER=ON \
                    -DUSE_MOVIE_SAVER=ON \
@@ -31,25 +25,41 @@ CMAKE_APPENDFLAG="-DUSE_QT5_4_APIS=ON -DUSE_MOVIE_LOADER=ON \
                    -DCMAKE_LD:STRING=i686-w64-mingw32-gcc-ld \
                   -DCMAKE_NM:STRING=i686-w64-mingw32-gcc-nm \
                   -DCMAKE_RANLIB:STRING=i686-w64-mingw32-gcc-ranlib \
-                  "
+          "
 
 ## LLVM
-#MAKEFLAGS_BASE="-target i686-w64-mingw32"
+#MAKEFLAGS_BASE=""
+
+#MAKEFLAGS_BASE2="-O3 ${MAKEFLAGS_BASE} -DNDEBUG \
+#                -std=c++0x \
+#                -march=pentium4 \
+#              -Wreserved-user-defined-literal \
+#              -D_HAS_EXCEPTIONS \
+#              -D__float128=\"long double\"
+#              "
+#MAKEFLAGS_BASE2="-g -ggdb -DNDEBUG"
+
+#MAKEFLAGS_LINK_BASE="-s ${MAKEFLAGS_BASE2}"
+#MAKEFLAGS_LINK_BASE="-g -ggdb ${MAKEFLAGS_BASE2}"
+
 #CMAKE_APPENDFLAG="-DUSE_QT5_4_APIS=ON -DUSE_MOVIE_LOADER=ON \
 #                   -DUSE_MOVIE_SAVER=ON \
 #                   -DCMAKE_AR:STRING=llvm-ar-3.9 \
-#                   -DCMAKE_LD:STRING=llvm-ld-3.9 \
+#                   -DCMAKE_LD:STRING=i686-w64-mingw32-ld \
 #                 -DCMAKE_NM:STRING=llvm-nm-3.9 \
 #                 -DCMAKE_RANLIB:STRING=llvm-ranlib-3.9 \
 #                 "
-#MAKEFLAGS_CXX="-flto -O2 ${MAKEFLAGS_BASE} -DNDEBUG" 
-#MAKEFLAGS_CC="-flto -O2 ${MAKEFLAGS_BASE} -DNDEBUG"
-#MAKEFLAGS_LIB_CXX="-flto -O2 ${MAKEFLAGS_BASE} -DNDEBUG" 
-#MAKEFLAGS_LIB_CC="-flto -O2 ${MAKEFLAGS_BASE}  -DNDEBUG"
-#CMAKE_LINKFLAG="-s -flto"
-#CMAKE_DLL_LINKFLAG="-s -flto"
-#CMAKE_LINKFLAG="-g  -ggdb"
-#CMAKE_DLL_LINKFLAG="-g  -ggdb"
+
+###########################
+#
+#
+MAKEFLAGS_CXX="${MAKEFLAGS_BASE2}"
+MAKEFLAGS_CC="${MAKEFLAGS_BASE2}"
+MAKEFLAGS_LIB_CXX="${MAKEFLAGS_BASE2}"
+MAKEFLAGS_LIB_CC="${MAKEFLAGS_BASE2}"
+
+CMAKE_LINKFLAG="${MAKEFLAGS_LINK_BASE}"
+CMAKE_DLL_LINKFLAG="${MAKEFLAGS_LINK_BASE}"
 
 CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DLIBAV_ROOT_DIR=/usr/local/i586-mingw-msvc/ffmpeg-3.1.1"
 MAKEFLAGS_GENERAL="-j5"
index 455b620..3675dc9 100644 (file)
@@ -2,14 +2,18 @@
 SET(CMAKE_SYSTEM_NAME Windows)
 
 # which compilers to use for C and C++
-SET(CMAKE_C_COMPILER clang-3.9)
-SET(CMAKE_CXX_COMPILER clang++-3.9)
+SET(CMAKE_SYSTEM_NAME Windows)
+SET(CMAKE_C_COMPILER i686-w64-mingw32-clang)
+SET(CMAKE_CXX_COMPILER i686-w64-mingw32-clang++)
 SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres)
 SET(CMAKE_AR  llvm-ar-3.9)
+SET(CMAKE_LD  /usr/bin/i686-w64-mingw32-ld)
+SET(CMAKE_LINKSE  /usr/bin/i686-w64-mingw32-ld)
+SET(CMAKE_NM  llvm-nm-3.9)
 
 #set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
 #set(CMAKE_EXE_LINKER_FLAGS "-static-libstdc++")
-set(CMAKE_EXE_LINKER_FLAGS "-target i686-w64-mingw32 -flto")
+#set(CMAKE_EXE_LINKER_FLAGS "")
 
 #SET(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qcs <TARGET> --plugin==$(i686-264-mingw32-gcc --print-file-name=liblto_plugin.so) <LINK_FLAGS> <OBJECTS>")
 #SET(CMAKE_C_ARCHIVE_FINISH   true)
index 3c5af4b..ba034ff 100755 (executable)
@@ -12,7 +12,7 @@ export WINEDEBUG="-all"
 CMAKE_LINKFLAG=""
 CMAKE_APPENDFLAG=""
 MAKEFLAGS_GENERAL="-j4"
-
+export WCLANG_FORCE_CXX_EXCEPTIONS=1
 mkdir -p ./bin-win32/
 
 if [ -e ./buildvars_mingw_cross_win32.dat ] ; then