diff --git a/build.sh b/build.sh index 4850d09dc8..62e290ae54 100755 --- a/build.sh +++ b/build.sh @@ -7,7 +7,7 @@ pushd "$SCRIPT_DIR" >/dev/null set -e set -x -MIN_GCC_VERSION=6.0.0 +MIN_GCC_VERSION=8.0.0 gccBuild=false function version_less_than_equal_to() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" = "$1"; } @@ -55,8 +55,8 @@ if $gccBuild; then fi if version_less_than_equal_to $gcc_ver $MIN_GCC_VERSION; then - export CC="gcc-6" - export CXX="g++-6" + export CC="gcc-8" + export CXX="g++-8" else export CC="gcc" export CXX="g++" diff --git a/clean.sh b/clean.sh index 136d670e68..42713ba829 100755 --- a/clean.sh +++ b/clean.sh @@ -8,7 +8,7 @@ set -e set +x rm -rf build_debug -rm -rf build_release +rm -rf build_gcc_debug rm -rf cmake/output -popd >/dev/null \ No newline at end of file +popd >/dev/null diff --git a/cmake/cmake-modules/CommonSetup.cmake b/cmake/cmake-modules/CommonSetup.cmake index c2c924c260..ef48dc3fb4 100644 --- a/cmake/cmake-modules/CommonSetup.cmake +++ b/cmake/cmake-modules/CommonSetup.cmake @@ -55,7 +55,7 @@ macro(CommonSetup) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__CLANG__") else () set(CMAKE_CXX_FLAGS "\ - -std=c++17 -stdlib=libc++ -ggdb -Wall -Wextra -Wstrict-aliasing -Wunreachable-code -Wcast-qual -Wctor-dtor-privacy \ + -std=c++17 -ggdb -Wall -Wextra -Wstrict-aliasing -Wunreachable-code -Wcast-qual -Wctor-dtor-privacy \ -Wdisabled-optimization -Wformat=2 -Winit-self -Wmissing-include-dirs -Wswitch-default \ -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wstrict-overflow=5 -Wswitch-default -Wundef \ -Wno-variadic-macros -Wno-parentheses -Wno-unused-function -Wno-unused -Wno-documentation -fdiagnostics-show-option \ @@ -63,9 +63,14 @@ macro(CommonSetup) ${RPC_LIB_DEFINES} ${CMAKE_CXX_FLAGS}") if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") + # libc++ is a Clang-only option + set(CMAKE_CXX_FLAGS "-stdlib=libc++ ${CMAKE_CXX_FLAGS}") set(CXX_EXP_LIB "-lc++fs -ferror-limit=10") - else() - set(CXX_EXP_LIB "-lstdc++fs -fmax-errors=10 -Wnoexcept -Wstrict-null-sentinel") + else() # gcc + set(CXX_EXP_LIB "-nostdinc++ -I/usr/include/c++/8 -I/usr/include/x86_64-linux-gnu/c++/8 -nodefaultlibs + -l/usr/lib/x86_64-linux-gnu/libc++.so -l/usr/lib/x86_64-linux-gnu/libc++abi.so + -lm -lc -lgcc_s -lgcc + -lstdc++fs -fmax-errors=10 -Wnoexcept -Wstrict-null-sentinel") endif () endif () diff --git a/setup.sh b/setup.sh index 5d05a5998a..8f2b65ca3d 100755 --- a/setup.sh +++ b/setup.sh @@ -7,7 +7,7 @@ pushd "$SCRIPT_DIR" >/dev/null downloadHighPolySuv=true gccBuild=false MIN_CMAKE_VERSION=3.10.0 -MIN_GCC_VERSION=6.0.0 +MIN_GCC_VERSION=8.0.0 function version_less_than_equal_to() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" = "$1"; } # Parse command line arguments @@ -39,11 +39,11 @@ if $gccBuild; then if version_less_than_equal_to $gcc_ver $MIN_GCC_VERSION; then if [ "$(uname)" == "Darwin" ]; then # osx brew update - brew install gcc-6 g++-6 + brew install gcc-8 g++-8 else sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get -y update - sudo apt-get install -y gcc-6 g++-6 + sudo apt-get install -y gcc-8 g++-8 gcc-8-multilib g++-8-multilib fi else echo "Already have good version of gcc: $gcc_ver"