From 89725716672c39f6831f70c6c94e5055eaca16a4 Mon Sep 17 00:00:00 2001 From: Hyung-Kyu Choi Date: Tue, 31 Jan 2017 13:36:36 +0900 Subject: [PATCH] Use -O1 optimization for arm and armel Because there are bugs for -O3 optimization in clang (<=3.8) for arm, let's use -O1 instead of -O3 for a while. Related github issue: https://github.com/dotnet/core-setup/issues/790 Signed-off-by: Hyung-Kyu Choi Commit migrated from https://github.com/dotnet/coreclr/commit/433650d8278203447ff15728028012f3d9bb20f7 --- .../src/pal/tools/clang-compiler-override-arm.txt | 20 ++++++++++++++++++++ src/coreclr/src/pal/tools/gen-buildsys-clang.sh | 8 +++++++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/coreclr/src/pal/tools/clang-compiler-override-arm.txt diff --git a/src/coreclr/src/pal/tools/clang-compiler-override-arm.txt b/src/coreclr/src/pal/tools/clang-compiler-override-arm.txt new file mode 100644 index 0000000..da25715 --- /dev/null +++ b/src/coreclr/src/pal/tools/clang-compiler-override-arm.txt @@ -0,0 +1,20 @@ +SET (CMAKE_C_FLAGS_INIT "-Wall -std=c11") +SET (CMAKE_C_FLAGS_DEBUG_INIT "-g -O0") +SET (CLR_C_FLAGS_CHECKED_INIT "-g -O1") +# Refer to the below instruction to support __thread with -O2/-O3 on Linux/ARM +# https://github.com/dotnet/coreclr/blob/master/Documentation/building/linux-instructions.md +SET (CMAKE_C_FLAGS_RELEASE_INIT "-g -O1") +SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-g -O1") + +SET (CMAKE_CXX_FLAGS_INIT "-Wall -Wno-null-conversion -std=c++11") +SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g -O0") +SET (CLR_CXX_FLAGS_CHECKED_INIT "-g -O1") +SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-g -O1") +SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-g -O1") + +SET (CLR_DEFINES_DEBUG_INIT DEBUG _DEBUG _DBG URTBLDENV_FRIENDLY=Checked BUILDENV_CHECKED=1) +SET (CLR_DEFINES_CHECKED_INIT DEBUG _DEBUG _DBG URTBLDENV_FRIENDLY=Checked BUILDENV_CHECKED=1) +SET (CLR_DEFINES_RELEASE_INIT NDEBUG URTBLDENV_FRIENDLY=Retail) +SET (CLR_DEFINES_RELWITHDEBINFO_INIT NDEBUG URTBLDENV_FRIENDLY=Retail) + +SET (CMAKE_INSTALL_PREFIX $ENV{__CMakeBinDir}) diff --git a/src/coreclr/src/pal/tools/gen-buildsys-clang.sh b/src/coreclr/src/pal/tools/gen-buildsys-clang.sh index 5d4d4c8..db342eb 100755 --- a/src/coreclr/src/pal/tools/gen-buildsys-clang.sh +++ b/src/coreclr/src/pal/tools/gen-buildsys-clang.sh @@ -144,9 +144,15 @@ if [ "$build_arch" == "armel" ]; then cmake_extra_defines="$cmake_extra_defines -DARM_SOFTFP=1" fi +if [ "$build_arch" == "arm" -o "$build_arch" == "armel" ]; then + overridefile=clang-compiler-override-arm.txt +else + overridefile=clang-compiler-override.txt +fi + cmake \ -G "$generator" \ - "-DCMAKE_USER_MAKE_RULES_OVERRIDE=$1/src/pal/tools/clang-compiler-override.txt" \ + "-DCMAKE_USER_MAKE_RULES_OVERRIDE=$1/src/pal/tools/$overridefile" \ "-DCMAKE_AR=$llvm_ar" \ "-DCMAKE_LINKER=$llvm_link" \ "-DCMAKE_NM=$llvm_nm" \ -- 2.7.4