Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit b04fcb8

Browse files
Remove Clang specific settings from toolchain.cmake
Move clang specific settings from toolchain.cmake to src\pal\tools\gen-buildsys-clang.sh
1 parent b530527 commit b04fcb8

File tree

3 files changed

+47
-9
lines changed

3 files changed

+47
-9
lines changed

cross/toolchain.cmake

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ set(TARGET_ARCH_NAME $ENV{TARGET_BUILD_ARCH})
44
set(CMAKE_SYSTEM_NAME Linux)
55
set(CMAKE_SYSTEM_VERSION 1)
66

7+
# please update toolchain.sh if you add a new target here.
78
if(TARGET_ARCH_NAME STREQUAL "armel")
89
set(CMAKE_SYSTEM_PROCESSOR armv7l)
910
set(TOOLCHAIN "arm-linux-gnueabi")
@@ -62,11 +63,6 @@ endmacro()
6263

6364
# Specify link flags
6465
add_compile_param(CROSS_LINK_FLAGS "--sysroot=${CROSS_ROOTFS}")
65-
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
66-
add_compile_param(CROSS_LINK_FLAGS "--gcc-toolchain=${CROSS_ROOTFS}/usr")
67-
add_compile_param(CROSS_LINK_FLAGS "--target=${TOOLCHAIN}")
68-
endif()
69-
7066
add_compile_param(CROSS_LINK_FLAGS "-fuse-ld=gold")
7167

7268
if(TARGET_ARCH_NAME STREQUAL "armel")
@@ -86,10 +82,6 @@ add_compile_param(CMAKE_MODULE_LINKER_FLAGS "${CROSS_LINK_FLAGS}" "TOOLCHAIN_EXE
8682

8783
# Specify compile options
8884
add_compile_options("--sysroot=${CROSS_ROOTFS}")
89-
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
90-
add_compile_options("--target=${TOOLCHAIN}")
91-
add_compile_options("--gcc-toolchain=${CROSS_ROOTFS}/usr")
92-
endif()
9385

9486
if(TARGET_ARCH_NAME MATCHES "^(arm|armel|arm64)$")
9587
set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})

cross/toolchain.sh

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/usr/bin/env sh
2+
TARGET_ARCH_NAME=$TARGET_BUILD_ARCH
3+
4+
if [ ! -z $TOOLCHAIN ]; then
5+
return 0
6+
fi
7+
8+
if [ "$TARGET_ARCH_NAME" = "armel" ]; then
9+
export TOOLCHAIN="arm-linux-gnueabi"
10+
elif [ "$TARGET_ARCH_NAME" = "arm" ]; then
11+
if [ -d ${CROSS_ROOTFS}/usr/lib/gcc/armv6-alpine-linux-musleabihf ]; then
12+
export TOOLCHAIN="armv6-alpine-linux-musleabihf"
13+
else
14+
export TOOLCHAIN="arm-linux-gnueabihf"
15+
fi
16+
elif [ "$TARGET_ARCH_NAME" = "arm64" ]; then
17+
if [ -d ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl ]; then
18+
export TOOLCHAIN="aarch64-alpine-linux-musl"
19+
else
20+
export TOOLCHAIN="aarch64-linux-gnu"
21+
fi
22+
elif [ "$TARGET_ARCH_NAME" = "x86" ]; then
23+
export TOOLCHAIN="i686-linux-gnu"
24+
else
25+
echo "Arch is ${TARGET_ARCH_NAME}. Only armel, arm, arm64 and x86 are supported!"]
26+
return 1
27+
fi
28+
29+
return 0

src/pal/tools/gen-buildsys-clang.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,10 @@ fi
112112
if [[ -n "$LLDB_INCLUDE_DIR" ]]; then
113113
cmake_extra_defines="$cmake_extra_defines -DWITH_LLDB_INCLUDES=$LLDB_INCLUDE_DIR"
114114
fi
115+
116+
CLR_EXTRA_LLVM_COMPILE_FLAGS=""
117+
CLR_EXTRA_LLVM_LD_FLAGS=""
118+
115119
if [ "$CROSSCOMPILE" == "1" ]; then
116120
if ! [[ -n "$ROOTFS_DIR" ]]; then
117121
echo "ROOTFS_DIR not set for crosscompile"
@@ -124,7 +128,17 @@ if [ "$CROSSCOMPILE" == "1" ]; then
124128
cmake_extra_defines="$cmake_extra_defines -C $CONFIG_DIR/tryrun.cmake"
125129
cmake_extra_defines="$cmake_extra_defines -DCMAKE_TOOLCHAIN_FILE=$CONFIG_DIR/toolchain.cmake"
126130
cmake_extra_defines="$cmake_extra_defines -DCLR_UNIX_CROSS_BUILD=1"
131+
CLR_EXTRA_LLVM_COMPILE_FLAGS="$CLR_EXTRA_LLVM_COMPILE_FLAGS --gcc-toolchain=$ROOTFS_DIR/usr"
132+
CLR_EXTRA_LLVM_LD_FLAGS="$CLR_EXTRA_LLVM_LD_FLAGS --gcc-toolchain=$ROOTFS_DIR/usr"
133+
source $CONFIG_DIR/toolchain.sh
134+
CLR_EXTRA_LLVM_COMPILE_FLAGS="$CLR_EXTRA_LLVM_COMPILE_FLAGS --target=$TOOLCHAIN"
135+
CLR_EXTRA_LLVM_LD_FLAGS="$CLR_EXTRA_LLVM_LD_FLAGS --target=$TOOLCHAIN"
127136
fi
137+
138+
CMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS $CLR_EXTRA_LLVM_COMPILE_FLAGS"
139+
CMAKE_C_FLAGS="$CMAKE_C_FLAGS $CLR_EXTRA_LLVM_COMPILE_FLAGS"
140+
CMAKE_LD_FLAGS="$CMAKE_LD_FLAGS $CLR_EXTRA_LLVM_LD_FLAGS"
141+
128142
if [ $OS == "Linux" ]; then
129143
linux_id_file="/etc/os-release"
130144
if [[ -n "$CROSSCOMPILE" ]]; then
@@ -162,6 +176,9 @@ cmake \
162176
"-DCMAKE_BUILD_TYPE=$buildtype" \
163177
"-DCMAKE_EXPORT_COMPILE_COMMANDS=1 " \
164178
"-DCLR_CMAKE_ENABLE_CODE_COVERAGE=$code_coverage" \
179+
"-DCMAKE_CXX_FLAGS=$CMAKE_CXX_FLAGS" \
180+
"-DCMAKE_C_FLAGS=$CMAKE_C_FLAGS" \
181+
"-DCMAKE_LD_FLAGS=$CMAKE_LD_FLAGS" \
165182
$cmake_extra_defines \
166183
$__UnprocessedCMakeArgs \
167184
"$1"

0 commit comments

Comments
 (0)