Skip to content

Commit

Permalink
Add crossbuild settings (#623)
Browse files Browse the repository at this point in the history
Co-authored-by: Naoki Shibata <[email protected]>
  • Loading branch information
shibatch and Naoki Shibata authored Feb 8, 2025
1 parent 1dd5679 commit 8d4caa7
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 11 deletions.
70 changes: 70 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,76 @@ pipeline {
'''
}
}

stage('arm32 linux gcc-12') {
agent { label 'armv7 && debian12' }
options { skipDefaultCheckout() }
steps {
cleanWs()
checkout scm
sh '''
echo "arm32 gcc-12 on" `hostname`
export CC=gcc-12
export CXX=g++-12
mkdir build
cd build
cmake .. -GNinja -DCMAKE_INSTALL_PREFIX=../../install -DSLEEF_SHOW_CONFIG=1 -DSLEEF_BUILD_QUAD=TRUE -DSLEEF_ENABLE_TESTER4=True -DSLEEF_ENABLE_TESTER=False
cmake -E time oomstaller ninja -j `nproc`
export CTEST_OUTPUT_ON_FAILURE=TRUE
ctest -j `nproc`
'''
}
}

stage('cross-ppc64el gcc') {
agent { label 'x86_64 && ubuntu24 && cuda' }
steps {
cleanWs()
checkout scm
sh '''
echo "Cross ppc64el gcc on" `hostname`
rm -rf build-native
mkdir build-native
cd build-native
cmake -GNinja .. -DSLEEF_SHOW_CONFIG=1 -DSLEEF_BUILD_QUAD=TRUE -DSLEEF_BUILD_DFT=TRUE
cmake -E time ninja
cd ..
mkdir build
cd build
cmake -GNinja .. -DCMAKE_TOOLCHAIN_FILE=../toolchains/ppc64el-gcc.cmake -DNATIVE_BUILD_DIR=`pwd`/../build-native -DCMAKE_INSTALL_PREFIX=../install -DSLEEF_SHOW_CONFIG=1 -DSLEEF_ENFORCE_TESTER3=TRUE -DSLEEF_BUILD_QUAD=TRUE -DSLEEF_BUILD_DFT=TRUE -DSLEEF_ENABLE_TESTER4=True -DSLEEF_ENABLE_TESTER=False
cmake -E time ninja
export OMP_WAIT_POLICY=passive
export CTEST_OUTPUT_ON_FAILURE=TRUE
ctest -j `nproc`
ninja install
'''
}
}

stage('cross-s390x gcc') {
agent { label 'x86_64 && ubuntu24 && cuda' }
steps {
cleanWs()
checkout scm
sh '''
echo "Cross s390x gcc on" `hostname`
rm -rf build-native
mkdir build-native
cd build-native
cmake -GNinja .. -DSLEEF_SHOW_CONFIG=1 -DSLEEF_BUILD_QUAD=TRUE -DSLEEF_BUILD_DFT=TRUE
cmake -E time ninja
cd ..
mkdir build
cd build
cmake -GNinja .. -DCMAKE_TOOLCHAIN_FILE=../toolchains/s390x-gcc.cmake -DNATIVE_BUILD_DIR=`pwd`/../build-native -DCMAKE_INSTALL_PREFIX=../install -DSLEEF_SHOW_CONFIG=1 -DSLEEF_ENFORCE_TESTER3=TRUE -DSLEEF_BUILD_QUAD=TRUE -DSLEEF_BUILD_DFT=TRUE -DSLEEF_ENABLE_TESTER4=True -DSLEEF_ENABLE_TESTER=False
cmake -E time ninja
export OMP_WAIT_POLICY=passive
export CTEST_OUTPUT_ON_FAILURE=TRUE
ctest -j `nproc`
ninja install
'''
}
}
}
}
}
Expand Down
13 changes: 8 additions & 5 deletions toolchains/ppc64el-gcc.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@ SET (CMAKE_CROSSCOMPILING TRUE)
SET (CMAKE_SYSTEM_NAME "Linux")
SET (CMAKE_SYSTEM_PROCESSOR "ppc64")

SET(CMAKE_FIND_ROOT_PATH /usr/powerpc64le-linux-gnu /usr/include/powerpc64le-linux-gnu /usr/lib/powerpc64le-linux-gnu)
SET(CMAKE_FIND_ROOT_PATH /usr/powerpc64le-linux-gnu /usr/include/powerpc64le-linux-gnu /usr/lib/powerpc64le-linux-gnu)

find_program(CMAKE_C_COMPILER NAMES powerpc64le-linux-gnu-gcc)
find_program(CMAKE_CXX_COMPILER NAMES powerpc64le-linux-gnu-g++)
execute_process(COMMAND bash -c "compgen -c | egrep '^powerpc64le-linux-gnu-gcc(-[0-9]+(\\.[0-9]+\\.[0-9]+)?)?$' | sort -nr | uniq" OUTPUT_VARIABLE GCC_CANDIDATES)
string(REPLACE "\n" ";" GCC_CANDIDATES "${GCC_CANDIDATES}")
execute_process(COMMAND bash -c "compgen -c | egrep '^powerpc64le-linux-gnu-g\\+\\+(-[0-9]+(\\.[0-9]+\\.[0-9]+)?)?$' | sort -nr | uniq" OUTPUT_VARIABLE GXX_CANDIDATES)
string(REPLACE "\n" ";" GXX_CANDIDATES "${GXX_CANDIDATES}")

SET(CMAKE_AR /usr/powerpc64le-linux-gnu/bin/ar)
find_program(CMAKE_C_COMPILER NAMES ${GCC_CANDIDATES})
find_program(CMAKE_CXX_COMPILER NAMES ${GXX_CANDIDATES})

SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
2 changes: 0 additions & 2 deletions toolchains/ppc64el-llvm.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ set(CMAKE_C_COMPILER_TARGET powerpc64le-linux-gnu)
find_program(CMAKE_CXX_COMPILER NAMES ${CLANGXX_CANDIDATES})
set(CMAKE_CXX_COMPILER_TARGET powerpc64le-linux-gnu)

SET(CMAKE_AR /usr/powerpc64le-linux-gnu/bin/ar)

SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
11 changes: 8 additions & 3 deletions toolchains/s390x-gcc.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,15 @@ SET (CMAKE_CROSSCOMPILING TRUE)
SET (CMAKE_SYSTEM_NAME "Linux")
SET (CMAKE_SYSTEM_PROCESSOR "s390x")

SET(CMAKE_FIND_ROOT_PATH /usr/s390x-linux-gnu /usr/include/s390x-linux-gnu /usr/lib/s390x-linux-gnu)
SET(CMAKE_FIND_ROOT_PATH /usr/s390x-linux-gnu /usr/include/s390x-linux-gnu /usr/lib/s390x-linux-gnu)

find_program(CMAKE_C_COMPILER NAMES s390x-linux-gnu-gcc)
find_program(CMAKE_CXX_COMPILER NAMES s390x-linux-gnu-g++)
execute_process(COMMAND bash -c "compgen -c | egrep '^s390x-linux-gnu-gcc(-[0-9]+(\\.[0-9]+\\.[0-9]+)?)?$' | sort -nr | uniq" OUTPUT_VARIABLE GCC_CANDIDATES)
string(REPLACE "\n" ";" GCC_CANDIDATES "${GCC_CANDIDATES}")
execute_process(COMMAND bash -c "compgen -c | egrep '^s390x-linux-gnu-g\\+\\+(-[0-9]+(\\.[0-9]+\\.[0-9]+)?)?$' | sort -nr | uniq" OUTPUT_VARIABLE GXX_CANDIDATES)
string(REPLACE "\n" ";" GXX_CANDIDATES "${GXX_CANDIDATES}")

find_program(CMAKE_C_COMPILER NAMES ${GCC_CANDIDATES})
find_program(CMAKE_CXX_COMPILER NAMES ${GXX_CANDIDATES})

SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
Expand Down
2 changes: 1 addition & 1 deletion toolchains/s390x-llvm.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ find_program(CMAKE_CXX_COMPILER NAMES ${CLANGXX_CANDIDATES})
set(CMAKE_CXX_COMPILER_TARGET s390x-linux-gnu)

SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

0 comments on commit 8d4caa7

Please sign in to comment.