summaryrefslogtreecommitdiff
path: root/tools/ci
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-08-01 03:24:00 +0300
committerAndrei Karas <akaras@inbox.ru>2017-08-01 03:52:06 +0300
commit547fb04145d2ab1e5c68a47b1e673aa352d41da6 (patch)
tree6a9273615b7cf96da6fa3e59337585fd79e7d0cf /tools/ci
parent3641f656462c27eb34f9aba94bf943c083e054ee (diff)
downloadplus-547fb04145d2ab1e5c68a47b1e673aa352d41da6.tar.gz
plus-547fb04145d2ab1e5c68a47b1e673aa352d41da6.tar.bz2
plus-547fb04145d2ab1e5c68a47b1e673aa352d41da6.tar.xz
plus-547fb04145d2ab1e5c68a47b1e673aa352d41da6.zip
Use mxe with gcc-6 for mxe builds.
Diffstat (limited to 'tools/ci')
-rwxr-xr-xtools/ci/flags/mingw5.sh307
-rwxr-xr-xtools/ci/flags/mingw6.sh308
-rwxr-xr-xtools/ci/jobs/mxe_gcc5.sh2
-rwxr-xr-xtools/ci/jobs/mxe_gcc6.sh20
-rwxr-xr-xtools/ci/jobs/mxe_gcc6_tests.sh17
5 files changed, 653 insertions, 1 deletions
diff --git a/tools/ci/flags/mingw5.sh b/tools/ci/flags/mingw5.sh
new file mode 100755
index 000000000..a8da966b8
--- /dev/null
+++ b/tools/ci/flags/mingw5.sh
@@ -0,0 +1,307 @@
+#!/bin/bash
+
+#export CXXFLAGS="${CXXFLAGS} --all-warnings"
+#export CXXFLAGS="${CXXFLAGS} --extra-warnings"
+export CXXFLAGS="${CXXFLAGS} -W"
+export CXXFLAGS="${CXXFLAGS} -Wabi"
+# ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wabi-tag"
+#export CXXFLAGS="${CXXFLAGS} -Wabi="
+export CXXFLAGS="${CXXFLAGS} -Waddress"
+# +++ ignoring. may be can be fixed?
+#export CXXFLAGS="${CXXFLAGS} -Waggregate-return"
+export CXXFLAGS="${CXXFLAGS} -Waggressive-loop-optimizations"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Waliasing"
+#export CXXFLAGS="${CXXFLAGS} -Walign-commons"
+export CXXFLAGS="${CXXFLAGS} -Wall"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wampersand"
+export CXXFLAGS="${CXXFLAGS} -Warray-bounds"
+# +++ need try it
+export CXXFLAGS="${CXXFLAGS} -Warray-bounds=2"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Warray-temporaries"
+#export CXXFLAGS="${CXXFLAGS} -Wassign-intercept"
+# show warnings for padding
+#export CXXFLAGS="${CXXFLAGS} -Wattributes"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wbad-function-cast"
+export CXXFLAGS="${CXXFLAGS} -Wbool-compare"
+export CXXFLAGS="${CXXFLAGS} -Wbuiltin-macro-redefined"
+#export CXXFLAGS="${CXXFLAGS} -Wc++-compat"
+#export CXXFLAGS="${CXXFLAGS} -Wc++0x-compat"
+#export CXXFLAGS="${CXXFLAGS} -Wc++11-compat"
+export CXXFLAGS="${CXXFLAGS} -Wc++14-compat"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wc-binding-type"
+#export CXXFLAGS="${CXXFLAGS} -Wc90-c99-compat"
+#export CXXFLAGS="${CXXFLAGS} -Wc99-c11-compat"
+export CXXFLAGS="${CXXFLAGS} -Wcast-align"
+export CXXFLAGS="${CXXFLAGS} -Wcast-qual"
+export CXXFLAGS="${CXXFLAGS} -Wchar-subscripts"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wcharacter-truncation"
+export CXXFLAGS="${CXXFLAGS} -Wchkp"
+export CXXFLAGS="${CXXFLAGS} -Wclobbered"
+export CXXFLAGS="${CXXFLAGS} -Wcomment"
+export CXXFLAGS="${CXXFLAGS} -Wcomments"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wcompare-reals"
+export CXXFLAGS="${CXXFLAGS} -Wconditionally-supported"
+# +++ need fix in future
+#export CXXFLAGS="${CXXFLAGS} -Wconversion"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wconversion-extra"
+export CXXFLAGS="${CXXFLAGS} -Wconversion-null"
+export CXXFLAGS="${CXXFLAGS} -Wcoverage-mismatch"
+export CXXFLAGS="${CXXFLAGS} -Wcpp"
+export CXXFLAGS="${CXXFLAGS} -Wctor-dtor-privacy"
+export CXXFLAGS="${CXXFLAGS} -Wdate-time"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wdeclaration-after-statement"
+export CXXFLAGS="${CXXFLAGS} -Wdelete-incomplete"
+export CXXFLAGS="${CXXFLAGS} -Wdelete-non-virtual-dtor"
+export CXXFLAGS="${CXXFLAGS} -Wdeprecated"
+export CXXFLAGS="${CXXFLAGS} -Wdeprecated-declarations"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wdesignated-init"
+export CXXFLAGS="${CXXFLAGS} -Wdisabled-optimization"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wdiscarded-array-qualifiers"
+#export CXXFLAGS="${CXXFLAGS} -Wdiscarded-qualifiers"
+export CXXFLAGS="${CXXFLAGS} -Wdiv-by-zero"
+# +++ need fix in future
+#export CXXFLAGS="${CXXFLAGS} -Wdouble-promotion"
+#export CXXFLAGS="${CXXFLAGS} -Wduplicated-cond"
+# +++ too many warnings. may be used some times
+#export CXXFLAGS="${CXXFLAGS} -Weffc++"
+export CXXFLAGS="${CXXFLAGS} -Wempty-body"
+export CXXFLAGS="${CXXFLAGS} -Wendif-labels"
+export CXXFLAGS="${CXXFLAGS} -Wenum-compare"
+export CXXFLAGS="${CXXFLAGS} -Werror-implicit-function-declaration"
+export CXXFLAGS="${CXXFLAGS} -Wextra"
+# +++ need fix in future
+#export CXXFLAGS="${CXXFLAGS} -Wfloat-conversion"
+# +++ need fix in future
+#export CXXFLAGS="${CXXFLAGS} -Wfloat-equal"
+export CXXFLAGS="${CXXFLAGS} -Wformat=1"
+export CXXFLAGS="${CXXFLAGS} -Wformat-contains-nul"
+export CXXFLAGS="${CXXFLAGS} -Wformat-extra-args"
+# +++ ignoring. probably need use some times
+#export CXXFLAGS="${CXXFLAGS} -Wformat-nonliteral"
+export CXXFLAGS="${CXXFLAGS} -Wformat-security"
+export CXXFLAGS="${CXXFLAGS} -Wformat-signedness"
+export CXXFLAGS="${CXXFLAGS} -Wformat-y2k"
+export CXXFLAGS="${CXXFLAGS} -Wformat-zero-length"
+#export CXXFLAGS="${CXXFLAGS} -Wformat="
+#export CXXFLAGS="${CXXFLAGS} -Wframe-address"
+#export CXXFLAGS="${CXXFLAGS} -Wframe-larger-than=<number>"
+export CXXFLAGS="${CXXFLAGS} -Wfree-nonheap-object"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wfunction-elimination"
+#export CXXFLAGS="${CXXFLAGS} -Whsa"
+export CXXFLAGS="${CXXFLAGS} -Wignored-qualifiers"
+#export CXXFLAGS="${CXXFLAGS} -Wignored-attributes"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wimplicit"
+#export CXXFLAGS="${CXXFLAGS} -Wimplicit-function-declaration"
+#export CXXFLAGS="${CXXFLAGS} -Wimplicit-int"
+#export CXXFLAGS="${CXXFLAGS} -Wimplicit-interface"
+#export CXXFLAGS="${CXXFLAGS} -Wimplicit-procedure"
+#export CXXFLAGS="${CXXFLAGS} -Wincompatible-pointer-types"
+export CXXFLAGS="${CXXFLAGS} -Winherited-variadic-ctor"
+export CXXFLAGS="${CXXFLAGS} -Winit-self"
+# ignoting
+#export CXXFLAGS="${CXXFLAGS} -Winline"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wint-conversion"
+export CXXFLAGS="${CXXFLAGS} -Wint-to-pointer-cast"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Winteger-division"
+#export CXXFLAGS="${CXXFLAGS} -Wintrinsic-shadow"
+#export CXXFLAGS="${CXXFLAGS} -Wintrinsics-std"
+export CXXFLAGS="${CXXFLAGS} -Winvalid-memory-model"
+export CXXFLAGS="${CXXFLAGS} -Winvalid-offsetof"
+export CXXFLAGS="${CXXFLAGS} -Winvalid-pch"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wjump-misses-init"
+#export CXXFLAGS="${CXXFLAGS} -Wlarger-than-"
+#export CXXFLAGS="${CXXFLAGS} -Wlarger-than="
+#export CXXFLAGS="${CXXFLAGS} -Wline-truncation"
+export CXXFLAGS="${CXXFLAGS} -Wliteral-suffix"
+export CXXFLAGS="${CXXFLAGS} -Wlogical-not-parentheses"
+export CXXFLAGS="${CXXFLAGS} -Wlogical-op"
+export CXXFLAGS="${CXXFLAGS} -Wlong-long"
+export CXXFLAGS="${CXXFLAGS} -Wmain"
+export CXXFLAGS="${CXXFLAGS} -Wmaybe-uninitialized"
+export CXXFLAGS="${CXXFLAGS} -Wmemset-transposed-args"
+#export CXXFLAGS="${CXXFLAGS} -Wmisleading-indentation"
+export CXXFLAGS="${CXXFLAGS} -Wmissing-braces"
+export CXXFLAGS="${CXXFLAGS} -Wmissing-declarations"
+export CXXFLAGS="${CXXFLAGS} -Wmissing-field-initializers"
+export CXXFLAGS="${CXXFLAGS} -Wmissing-format-attribute"
+export CXXFLAGS="${CXXFLAGS} -Wmissing-include-dirs"
+export CXXFLAGS="${CXXFLAGS} -Wmissing-noreturn"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wmissing-parameter-type"
+#export CXXFLAGS="${CXXFLAGS} -Wmissing-prototypes"
+export CXXFLAGS="${CXXFLAGS} -Wmultichar"
+# ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wmultiple-inheritance"
+# ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wnamespaces"
+export CXXFLAGS="${CXXFLAGS} -Wnarrowing"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wnested-externs"
+export CXXFLAGS="${CXXFLAGS} -Wnoexcept"
+export CXXFLAGS="${CXXFLAGS} -Wnon-template-friend"
+export CXXFLAGS="${CXXFLAGS} -Wnon-virtual-dtor"
+export CXXFLAGS="${CXXFLAGS} -Wnonnull"
+#export CXXFLAGS="${CXXFLAGS} -Wnonnull-compare"
+#export CXXFLAGS="${CXXFLAGS} -Wnormalized"
+export CXXFLAGS="${CXXFLAGS} -Wnormalized=nfkc"
+#export CXXFLAGS="${CXXFLAGS} -Wnull-dereference"
+export CXXFLAGS="${CXXFLAGS} -Wodr"
+# probably need fix it
+export CXXFLAGS="${CXXFLAGS} -Wold-style-cast"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wold-style-declaration"
+#export CXXFLAGS="${CXXFLAGS} -Wold-style-definition"
+export CXXFLAGS="${CXXFLAGS} -Wopenmp-simd"
+export CXXFLAGS="${CXXFLAGS} -Woverflow"
+export CXXFLAGS="${CXXFLAGS} -Woverlength-strings"
+export CXXFLAGS="${CXXFLAGS} -Woverloaded-virtual"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Woverride-init"
+#export CXXFLAGS="${CXXFLAGS} -Woverride-init-side-effects"
+export CXXFLAGS="${CXXFLAGS} -Wpacked"
+export CXXFLAGS="${CXXFLAGS} -Wpacked-bitfield-compat"
+# +++ may be need fix in future?
+#export CXXFLAGS="${CXXFLAGS} -Wpadded"
+export CXXFLAGS="${CXXFLAGS} -Wparentheses"
+export CXXFLAGS="${CXXFLAGS} -Wpedantic"
+export CXXFLAGS="${CXXFLAGS} -Wpedantic-ms-format"
+#export CXXFLAGS="${CXXFLAGS} -Wplacement-new"
+#export CXXFLAGS="${CXXFLAGS} -Wplacement-new="
+export CXXFLAGS="${CXXFLAGS} -Wpmf-conversions"
+export CXXFLAGS="${CXXFLAGS} -Wpointer-arith"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wpointer-sign"
+#export CXXFLAGS="${CXXFLAGS} -Wpointer-to-int-cast"
+export CXXFLAGS="${CXXFLAGS} -Wpragmas"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wproperty-assign-default"
+#export CXXFLAGS="${CXXFLAGS} -Wprotocol"
+export CXXFLAGS="${CXXFLAGS} -Wpsabi"
+#export CXXFLAGS="${CXXFLAGS} -Wreal-q-constant"
+#export CXXFLAGS="${CXXFLAGS} -Wrealloc-lhs"
+#export CXXFLAGS="${CXXFLAGS} -Wrealloc-lhs-all"
+export CXXFLAGS="${CXXFLAGS} -Wredundant-decls"
+export CXXFLAGS="${CXXFLAGS} -Wreorder"
+export CXXFLAGS="${CXXFLAGS} -Wreturn-local-addr"
+export CXXFLAGS="${CXXFLAGS} -Wreturn-type"
+#export CXXFLAGS="${CXXFLAGS} -Wscalar-storage-order"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wselector"
+export CXXFLAGS="${CXXFLAGS} -Wsequence-point"
+export CXXFLAGS="${CXXFLAGS} -Wshadow"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wshadow-ivar"
+export CXXFLAGS="${CXXFLAGS} -Wshift-count-negative"
+export CXXFLAGS="${CXXFLAGS} -Wshift-count-overflow"
+#export CXXFLAGS="${CXXFLAGS} -Wshift-negative-value"
+#export CXXFLAGS="${CXXFLAGS} -Wshift-overflow"
+#export CXXFLAGS="${CXXFLAGS} -Wshift-overflow="
+export CXXFLAGS="${CXXFLAGS} -Wsign-compare"
+# +++ need fix in future
+#export CXXFLAGS="${CXXFLAGS} -Wsign-conversion"
+export CXXFLAGS="${CXXFLAGS} -Wsign-promo"
+export CXXFLAGS="${CXXFLAGS} -Wsized-deallocation"
+export CXXFLAGS="${CXXFLAGS} -Wsizeof-array-argument"
+export CXXFLAGS="${CXXFLAGS} -Wsizeof-pointer-memaccess"
+export CXXFLAGS="${CXXFLAGS} -Wstack-protector"
+#export CXXFLAGS="${CXXFLAGS} -Wstack-usage="
+export CXXFLAGS="${CXXFLAGS} -Wstrict-aliasing=2"
+#export CXXFLAGS="${CXXFLAGS} -Wstrict-aliasing="
+export CXXFLAGS="${CXXFLAGS} -Wstrict-null-sentinel"
+#export CXXFLAGS="${CXXFLAGS} -Wstrict-overflow"
+export CXXFLAGS="${CXXFLAGS} -Wstrict-overflow=1"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wstrict-prototypes"
+#export CXXFLAGS="${CXXFLAGS} -Wstrict-selector-match"
+#export CXXFLAGS="${CXXFLAGS} -Wsubobject-linkage"
+# +++ ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=const"
+#export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=format"
+export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=noreturn"
+# +++ ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=pure"
+#export CXXFLAGS="${CXXFLAGS} -Wsuggest-final-methods"
+#export CXXFLAGS="${CXXFLAGS} -Wsuggest-final-types"
+export CXXFLAGS="${CXXFLAGS} -Wsuggest-override"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wsurprising"
+export CXXFLAGS="${CXXFLAGS} -Wswitch"
+export CXXFLAGS="${CXXFLAGS} -Wswitch-bool"
+export CXXFLAGS="${CXXFLAGS} -Wswitch-default"
+export CXXFLAGS="${CXXFLAGS} -Wswitch-enum"
+export CXXFLAGS="${CXXFLAGS} -Wsync-nand"
+export CXXFLAGS="${CXXFLAGS} -Wsynth"
+# ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wsystem-headers"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wtabs"
+#export CXXFLAGS="${CXXFLAGS} -Wtarget-lifetime"
+#export CXXFLAGS="${CXXFLAGS} -Wtautological-compare"
+# ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wtemplates"
+#export CXXFLAGS="${CXXFLAGS} -Wterminate"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wtraditional"
+#export CXXFLAGS="${CXXFLAGS} -Wtraditional-conversion"
+export CXXFLAGS="${CXXFLAGS} -Wtrampolines"
+export CXXFLAGS="${CXXFLAGS} -Wtrigraphs"
+export CXXFLAGS="${CXXFLAGS} -Wtype-limits"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wundeclared-selector"
+export CXXFLAGS="${CXXFLAGS} -Wundef"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wunderflow"
+export CXXFLAGS="${CXXFLAGS} -Wuninitialized"
+export CXXFLAGS="${CXXFLAGS} -Wunknown-pragmas"
+# +++ may be try use in future?
+#export CXXFLAGS="${CXXFLAGS} -Wunsafe-loop-optimizations"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wunsuffixed-float-constants"
+export CXXFLAGS="${CXXFLAGS} -Wunused"
+export CXXFLAGS="${CXXFLAGS} -Wunused-but-set-parameter"
+export CXXFLAGS="${CXXFLAGS} -Wunused-but-set-variable"
+export CXXFLAGS="${CXXFLAGS} -Wunreachable-code"
+#export CXXFLAGS="${CXXFLAGS} -Wunused-const-variable=1"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wunused-dummy-argument"
+export CXXFLAGS="${CXXFLAGS} -Wunused-function"
+export CXXFLAGS="${CXXFLAGS} -Wunused-label"
+export CXXFLAGS="${CXXFLAGS} -Wunused-local-typedefs"
+export CXXFLAGS="${CXXFLAGS} -Wunused-macros"
+export CXXFLAGS="${CXXFLAGS} -Wunused-parameter"
+export CXXFLAGS="${CXXFLAGS} -Wunused-result"
+export CXXFLAGS="${CXXFLAGS} -Wunused-value"
+export CXXFLAGS="${CXXFLAGS} -Wunused-variable"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wuse-without-only"
+# +++ need from time to time
+#export CXXFLAGS="${CXXFLAGS} -Wuseless-cast"
+export CXXFLAGS="${CXXFLAGS} -Wvarargs"
+export CXXFLAGS="${CXXFLAGS} -Wvariadic-macros"
+export CXXFLAGS="${CXXFLAGS} -Wvector-operation-performance"
+#export CXXFLAGS="${CXXFLAGS} -Wvirtual-inheritance"
+export CXXFLAGS="${CXXFLAGS} -Wvirtual-move-assign"
+export CXXFLAGS="${CXXFLAGS} -Wvla"
+export CXXFLAGS="${CXXFLAGS} -Wvolatile-register-var"
+export CXXFLAGS="${CXXFLAGS} -Wwrite-strings"
+export CXXFLAGS="${CXXFLAGS} -Wzero-as-null-pointer-constant"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wzerotrip"
+#export CXXFLAGS="${CXXFLAGS} -frequire-return-statement"
diff --git a/tools/ci/flags/mingw6.sh b/tools/ci/flags/mingw6.sh
new file mode 100755
index 000000000..97b05f9ab
--- /dev/null
+++ b/tools/ci/flags/mingw6.sh
@@ -0,0 +1,308 @@
+#!/bin/bash
+
+#export CXXFLAGS="${CXXFLAGS} --all-warnings"
+#export CXXFLAGS="${CXXFLAGS} --extra-warnings"
+export CXXFLAGS="${CXXFLAGS} -W"
+export CXXFLAGS="${CXXFLAGS} -Wabi"
+# ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wabi-tag"
+#export CXXFLAGS="${CXXFLAGS} -Wabi="
+export CXXFLAGS="${CXXFLAGS} -Waddress"
+# +++ ignoring. may be can be fixed?
+#export CXXFLAGS="${CXXFLAGS} -Waggregate-return"
+export CXXFLAGS="${CXXFLAGS} -Waggressive-loop-optimizations"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Waliasing"
+#export CXXFLAGS="${CXXFLAGS} -Walign-commons"
+export CXXFLAGS="${CXXFLAGS} -Wall"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wampersand"
+export CXXFLAGS="${CXXFLAGS} -Warray-bounds"
+# +++ need try it
+export CXXFLAGS="${CXXFLAGS} -Warray-bounds=2"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Warray-temporaries"
+#export CXXFLAGS="${CXXFLAGS} -Wassign-intercept"
+# show warnings for padding
+#export CXXFLAGS="${CXXFLAGS} -Wattributes"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wbad-function-cast"
+export CXXFLAGS="${CXXFLAGS} -Wbool-compare"
+export CXXFLAGS="${CXXFLAGS} -Wbuiltin-macro-redefined"
+#export CXXFLAGS="${CXXFLAGS} -Wc++-compat"
+#export CXXFLAGS="${CXXFLAGS} -Wc++0x-compat"
+#export CXXFLAGS="${CXXFLAGS} -Wc++11-compat"
+export CXXFLAGS="${CXXFLAGS} -Wc++14-compat"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wc-binding-type"
+#export CXXFLAGS="${CXXFLAGS} -Wc90-c99-compat"
+#export CXXFLAGS="${CXXFLAGS} -Wc99-c11-compat"
+export CXXFLAGS="${CXXFLAGS} -Wcast-align"
+export CXXFLAGS="${CXXFLAGS} -Wcast-qual"
+export CXXFLAGS="${CXXFLAGS} -Wchar-subscripts"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wcharacter-truncation"
+export CXXFLAGS="${CXXFLAGS} -Wchkp"
+export CXXFLAGS="${CXXFLAGS} -Wclobbered"
+export CXXFLAGS="${CXXFLAGS} -Wcomment"
+export CXXFLAGS="${CXXFLAGS} -Wcomments"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wcompare-reals"
+export CXXFLAGS="${CXXFLAGS} -Wconditionally-supported"
+# +++ need fix in future
+#export CXXFLAGS="${CXXFLAGS} -Wconversion"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wconversion-extra"
+export CXXFLAGS="${CXXFLAGS} -Wconversion-null"
+export CXXFLAGS="${CXXFLAGS} -Wcoverage-mismatch"
+export CXXFLAGS="${CXXFLAGS} -Wcpp"
+export CXXFLAGS="${CXXFLAGS} -Wctor-dtor-privacy"
+export CXXFLAGS="${CXXFLAGS} -Wdate-time"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wdeclaration-after-statement"
+export CXXFLAGS="${CXXFLAGS} -Wdelete-incomplete"
+export CXXFLAGS="${CXXFLAGS} -Wdelete-non-virtual-dtor"
+export CXXFLAGS="${CXXFLAGS} -Wdeprecated"
+export CXXFLAGS="${CXXFLAGS} -Wdeprecated-declarations"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wdesignated-init"
+# some times can be triggered
+#export CXXFLAGS="${CXXFLAGS} -Wdisabled-optimization"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wdiscarded-array-qualifiers"
+#export CXXFLAGS="${CXXFLAGS} -Wdiscarded-qualifiers"
+export CXXFLAGS="${CXXFLAGS} -Wdiv-by-zero"
+# +++ need fix in future
+#export CXXFLAGS="${CXXFLAGS} -Wdouble-promotion"
+export CXXFLAGS="${CXXFLAGS} -Wduplicated-cond"
+# +++ too many warnings. may be used some times
+#export CXXFLAGS="${CXXFLAGS} -Weffc++"
+export CXXFLAGS="${CXXFLAGS} -Wempty-body"
+export CXXFLAGS="${CXXFLAGS} -Wendif-labels"
+export CXXFLAGS="${CXXFLAGS} -Wenum-compare"
+export CXXFLAGS="${CXXFLAGS} -Werror-implicit-function-declaration"
+export CXXFLAGS="${CXXFLAGS} -Wextra"
+# +++ need fix in future
+#export CXXFLAGS="${CXXFLAGS} -Wfloat-conversion"
+# +++ need fix in future
+#export CXXFLAGS="${CXXFLAGS} -Wfloat-equal"
+export CXXFLAGS="${CXXFLAGS} -Wformat=1"
+export CXXFLAGS="${CXXFLAGS} -Wformat-contains-nul"
+export CXXFLAGS="${CXXFLAGS} -Wformat-extra-args"
+# +++ ignoring. probably need use some times
+#export CXXFLAGS="${CXXFLAGS} -Wformat-nonliteral"
+export CXXFLAGS="${CXXFLAGS} -Wformat-security"
+export CXXFLAGS="${CXXFLAGS} -Wformat-signedness"
+export CXXFLAGS="${CXXFLAGS} -Wformat-y2k"
+export CXXFLAGS="${CXXFLAGS} -Wformat-zero-length"
+#export CXXFLAGS="${CXXFLAGS} -Wformat="
+export CXXFLAGS="${CXXFLAGS} -Wframe-address"
+#export CXXFLAGS="${CXXFLAGS} -Wframe-larger-than=<number>"
+export CXXFLAGS="${CXXFLAGS} -Wfree-nonheap-object"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wfunction-elimination"
+export CXXFLAGS="${CXXFLAGS} -Whsa"
+export CXXFLAGS="${CXXFLAGS} -Wignored-qualifiers"
+export CXXFLAGS="${CXXFLAGS} -Wignored-attributes"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wimplicit"
+#export CXXFLAGS="${CXXFLAGS} -Wimplicit-function-declaration"
+#export CXXFLAGS="${CXXFLAGS} -Wimplicit-int"
+#export CXXFLAGS="${CXXFLAGS} -Wimplicit-interface"
+#export CXXFLAGS="${CXXFLAGS} -Wimplicit-procedure"
+#export CXXFLAGS="${CXXFLAGS} -Wincompatible-pointer-types"
+export CXXFLAGS="${CXXFLAGS} -Winherited-variadic-ctor"
+export CXXFLAGS="${CXXFLAGS} -Winit-self"
+# ignoting
+#export CXXFLAGS="${CXXFLAGS} -Winline"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wint-conversion"
+export CXXFLAGS="${CXXFLAGS} -Wint-to-pointer-cast"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Winteger-division"
+#export CXXFLAGS="${CXXFLAGS} -Wintrinsic-shadow"
+#export CXXFLAGS="${CXXFLAGS} -Wintrinsics-std"
+export CXXFLAGS="${CXXFLAGS} -Winvalid-memory-model"
+export CXXFLAGS="${CXXFLAGS} -Winvalid-offsetof"
+export CXXFLAGS="${CXXFLAGS} -Winvalid-pch"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wjump-misses-init"
+#export CXXFLAGS="${CXXFLAGS} -Wlarger-than-"
+#export CXXFLAGS="${CXXFLAGS} -Wlarger-than="
+#export CXXFLAGS="${CXXFLAGS} -Wline-truncation"
+export CXXFLAGS="${CXXFLAGS} -Wliteral-suffix"
+export CXXFLAGS="${CXXFLAGS} -Wlogical-not-parentheses"
+export CXXFLAGS="${CXXFLAGS} -Wlogical-op"
+export CXXFLAGS="${CXXFLAGS} -Wlong-long"
+export CXXFLAGS="${CXXFLAGS} -Wlto-type-mismatch"
+export CXXFLAGS="${CXXFLAGS} -Wmain"
+export CXXFLAGS="${CXXFLAGS} -Wmaybe-uninitialized"
+export CXXFLAGS="${CXXFLAGS} -Wmemset-transposed-args"
+export CXXFLAGS="${CXXFLAGS} -Wmisleading-indentation"
+export CXXFLAGS="${CXXFLAGS} -Wmissing-braces"
+export CXXFLAGS="${CXXFLAGS} -Wmissing-declarations"
+export CXXFLAGS="${CXXFLAGS} -Wmissing-field-initializers"
+export CXXFLAGS="${CXXFLAGS} -Wmissing-format-attribute"
+export CXXFLAGS="${CXXFLAGS} -Wmissing-include-dirs"
+export CXXFLAGS="${CXXFLAGS} -Wmissing-noreturn"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wmissing-parameter-type"
+#export CXXFLAGS="${CXXFLAGS} -Wmissing-prototypes"
+export CXXFLAGS="${CXXFLAGS} -Wmultichar"
+# ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wmultiple-inheritance"
+# ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wnamespaces"
+export CXXFLAGS="${CXXFLAGS} -Wnarrowing"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wnested-externs"
+export CXXFLAGS="${CXXFLAGS} -Wnoexcept"
+export CXXFLAGS="${CXXFLAGS} -Wnon-template-friend"
+export CXXFLAGS="${CXXFLAGS} -Wnon-virtual-dtor"
+export CXXFLAGS="${CXXFLAGS} -Wnonnull"
+export CXXFLAGS="${CXXFLAGS} -Wnonnull-compare"
+#export CXXFLAGS="${CXXFLAGS} -Wnormalized"
+export CXXFLAGS="${CXXFLAGS} -Wnormalized=nfkc"
+export CXXFLAGS="${CXXFLAGS} -Wnull-dereference"
+export CXXFLAGS="${CXXFLAGS} -Wodr"
+# probably need fix it
+#export CXXFLAGS="${CXXFLAGS} -Wold-style-cast"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wold-style-declaration"
+#export CXXFLAGS="${CXXFLAGS} -Wold-style-definition"
+export CXXFLAGS="${CXXFLAGS} -Wopenmp-simd"
+export CXXFLAGS="${CXXFLAGS} -Woverflow"
+export CXXFLAGS="${CXXFLAGS} -Woverlength-strings"
+export CXXFLAGS="${CXXFLAGS} -Woverloaded-virtual"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Woverride-init"
+#export CXXFLAGS="${CXXFLAGS} -Woverride-init-side-effects"
+export CXXFLAGS="${CXXFLAGS} -Wpacked"
+export CXXFLAGS="${CXXFLAGS} -Wpacked-bitfield-compat"
+# +++ may be need fix in future?
+#export CXXFLAGS="${CXXFLAGS} -Wpadded"
+export CXXFLAGS="${CXXFLAGS} -Wparentheses"
+export CXXFLAGS="${CXXFLAGS} -Wpedantic"
+export CXXFLAGS="${CXXFLAGS} -Wplacement-new"
+#export CXXFLAGS="${CXXFLAGS} -Wplacement-new="
+export CXXFLAGS="${CXXFLAGS} -Wpmf-conversions"
+export CXXFLAGS="${CXXFLAGS} -Wpointer-arith"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wpointer-sign"
+#export CXXFLAGS="${CXXFLAGS} -Wpointer-to-int-cast"
+export CXXFLAGS="${CXXFLAGS} -Wpragmas"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wproperty-assign-default"
+#export CXXFLAGS="${CXXFLAGS} -Wprotocol"
+export CXXFLAGS="${CXXFLAGS} -Wpsabi"
+#export CXXFLAGS="${CXXFLAGS} -Wreal-q-constant"
+#export CXXFLAGS="${CXXFLAGS} -Wrealloc-lhs"
+#export CXXFLAGS="${CXXFLAGS} -Wrealloc-lhs-all"
+export CXXFLAGS="${CXXFLAGS} -Wredundant-decls"
+export CXXFLAGS="${CXXFLAGS} -Wreorder"
+export CXXFLAGS="${CXXFLAGS} -Wreturn-local-addr"
+export CXXFLAGS="${CXXFLAGS} -Wreturn-type"
+export CXXFLAGS="${CXXFLAGS} -Wscalar-storage-order"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wselector"
+export CXXFLAGS="${CXXFLAGS} -Wsequence-point"
+export CXXFLAGS="${CXXFLAGS} -Wshadow"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wshadow-ivar"
+export CXXFLAGS="${CXXFLAGS} -Wshift-count-negative"
+export CXXFLAGS="${CXXFLAGS} -Wshift-count-overflow"
+export CXXFLAGS="${CXXFLAGS} -Wshift-negative-value"
+export CXXFLAGS="${CXXFLAGS} -Wshift-overflow"
+#export CXXFLAGS="${CXXFLAGS} -Wshift-overflow="
+export CXXFLAGS="${CXXFLAGS} -Wsign-compare"
+# +++ need fix in future
+#export CXXFLAGS="${CXXFLAGS} -Wsign-conversion"
+export CXXFLAGS="${CXXFLAGS} -Wsign-promo"
+export CXXFLAGS="${CXXFLAGS} -Wsized-deallocation"
+export CXXFLAGS="${CXXFLAGS} -Wsizeof-array-argument"
+export CXXFLAGS="${CXXFLAGS} -Wsizeof-pointer-memaccess"
+export CXXFLAGS="${CXXFLAGS} -Wstack-protector"
+#export CXXFLAGS="${CXXFLAGS} -Wstack-usage="
+export CXXFLAGS="${CXXFLAGS} -Wstrict-aliasing=2"
+#export CXXFLAGS="${CXXFLAGS} -Wstrict-aliasing="
+export CXXFLAGS="${CXXFLAGS} -Wstrict-null-sentinel"
+#export CXXFLAGS="${CXXFLAGS} -Wstrict-overflow"
+export CXXFLAGS="${CXXFLAGS} -Wstrict-overflow=1"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wstrict-prototypes"
+#export CXXFLAGS="${CXXFLAGS} -Wstrict-selector-match"
+export CXXFLAGS="${CXXFLAGS} -Wsubobject-linkage"
+# +++ ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=const"
+#export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=format"
+export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=noreturn"
+# +++ ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=pure"
+#export CXXFLAGS="${CXXFLAGS} -Wsuggest-final-methods"
+#export CXXFLAGS="${CXXFLAGS} -Wsuggest-final-types"
+export CXXFLAGS="${CXXFLAGS} -Wsuggest-override"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wsurprising"
+export CXXFLAGS="${CXXFLAGS} -Wswitch"
+export CXXFLAGS="${CXXFLAGS} -Wswitch-bool"
+export CXXFLAGS="${CXXFLAGS} -Wswitch-default"
+export CXXFLAGS="${CXXFLAGS} -Wswitch-enum"
+export CXXFLAGS="${CXXFLAGS} -Wsync-nand"
+export CXXFLAGS="${CXXFLAGS} -Wsynth"
+# ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wsystem-headers"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wtabs"
+#export CXXFLAGS="${CXXFLAGS} -Wtarget-lifetime"
+export CXXFLAGS="${CXXFLAGS} -Wtautological-compare"
+# ignoring
+#export CXXFLAGS="${CXXFLAGS} -Wtemplates"
+export CXXFLAGS="${CXXFLAGS} -Wterminate"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wtraditional"
+#export CXXFLAGS="${CXXFLAGS} -Wtraditional-conversion"
+export CXXFLAGS="${CXXFLAGS} -Wtrampolines"
+export CXXFLAGS="${CXXFLAGS} -Wtrigraphs"
+export CXXFLAGS="${CXXFLAGS} -Wtype-limits"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wundeclared-selector"
+export CXXFLAGS="${CXXFLAGS} -Wundef"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wunderflow"
+export CXXFLAGS="${CXXFLAGS} -Wuninitialized"
+export CXXFLAGS="${CXXFLAGS} -Wunknown-pragmas"
+# +++ may be try use in future?
+#export CXXFLAGS="${CXXFLAGS} -Wunsafe-loop-optimizations"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wunsuffixed-float-constants"
+export CXXFLAGS="${CXXFLAGS} -Wunused"
+export CXXFLAGS="${CXXFLAGS} -Wunused-but-set-parameter"
+export CXXFLAGS="${CXXFLAGS} -Wunused-but-set-variable"
+export CXXFLAGS="${CXXFLAGS} -Wunreachable-code"
+export CXXFLAGS="${CXXFLAGS} -Wunused-const-variable=1"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wunused-dummy-argument"
+export CXXFLAGS="${CXXFLAGS} -Wunused-function"
+export CXXFLAGS="${CXXFLAGS} -Wunused-label"
+export CXXFLAGS="${CXXFLAGS} -Wunused-local-typedefs"
+export CXXFLAGS="${CXXFLAGS} -Wunused-macros"
+export CXXFLAGS="${CXXFLAGS} -Wunused-parameter"
+export CXXFLAGS="${CXXFLAGS} -Wunused-result"
+export CXXFLAGS="${CXXFLAGS} -Wunused-value"
+export CXXFLAGS="${CXXFLAGS} -Wunused-variable"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wuse-without-only"
+# +++ need from time to time
+#export CXXFLAGS="${CXXFLAGS} -Wuseless-cast"
+export CXXFLAGS="${CXXFLAGS} -Wvarargs"
+export CXXFLAGS="${CXXFLAGS} -Wvariadic-macros"
+export CXXFLAGS="${CXXFLAGS} -Wvector-operation-performance"
+export CXXFLAGS="${CXXFLAGS} -Wvirtual-inheritance"
+export CXXFLAGS="${CXXFLAGS} -Wvirtual-move-assign"
+export CXXFLAGS="${CXXFLAGS} -Wvla"
+export CXXFLAGS="${CXXFLAGS} -Wvolatile-register-var"
+export CXXFLAGS="${CXXFLAGS} -Wwrite-strings"
+export CXXFLAGS="${CXXFLAGS} -Wzero-as-null-pointer-constant"
+# not for C++
+#export CXXFLAGS="${CXXFLAGS} -Wzerotrip"
+#export CXXFLAGS="${CXXFLAGS} -frequire-return-statement"
diff --git a/tools/ci/jobs/mxe_gcc5.sh b/tools/ci/jobs/mxe_gcc5.sh
index e9ae0d97b..da3cb678a 100755
--- a/tools/ci/jobs/mxe_gcc5.sh
+++ b/tools/ci/jobs/mxe_gcc5.sh
@@ -3,7 +3,7 @@
export LOGFILE=mxe_gcc5.log
source ./tools/ci/scripts/winvars.sh || exit 1
-source ./build/mingw5flags.sh || exit 1
+source ./tools/ci/flags/mingw5.sh || exit 1
$CC --version
$CXX --version
diff --git a/tools/ci/jobs/mxe_gcc6.sh b/tools/ci/jobs/mxe_gcc6.sh
new file mode 100755
index 000000000..7aa6d1e83
--- /dev/null
+++ b/tools/ci/jobs/mxe_gcc6.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+export LOGFILE=mxe_gcc6.log
+
+source ./tools/ci/scripts/winvars.sh || exit 1
+source ./tools/ci/flags/mingw6.sh || exit 1
+
+$CC --version
+$CXX --version
+
+echo env
+env
+
+autoreconf -i || exit 1
+
+./configure \
+--host=${CROSS} \
+--enable-werror || (cp config.log logs || exit 1)
+
+make -j2 V=0
diff --git a/tools/ci/jobs/mxe_gcc6_tests.sh b/tools/ci/jobs/mxe_gcc6_tests.sh
new file mode 100755
index 000000000..81548bad2
--- /dev/null
+++ b/tools/ci/jobs/mxe_gcc6_tests.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+export LOGFILE=mxe_gcc6.log
+
+source ./tools/ci/scripts/winvars.sh || exit 1
+
+$CC --version
+$CXX --version
+
+autoreconf -i || exit 1
+
+./configure \
+--host=${CROSS} \
+--enable-unittestsbin \
+$* || (cp config.log logs || exit 1)
+
+make -j2 V=0