mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
Add Travis CI jobs for Arm and AArch64 (#638)
* Add Travis CI jobs for Arm and AArch64 - Use fixed Linaro toolchains - Move travis script to a shell file Signed-off-by: Kevin Petit <kevin.petit@arm.com> * Fix Arm build and string comparisons added under #637 * Remove verbose flag on tar command
This commit is contained in:
31
.travis.yml
31
.travis.yml
@@ -4,27 +4,12 @@ os:
|
|||||||
- linux
|
- linux
|
||||||
- osx
|
- osx
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
- os: linux
|
||||||
|
env: JOB_ARCHITECTURE=arm
|
||||||
|
- os: linux
|
||||||
|
env: JOB_ARCHITECTURE=aarch64
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- export TOP=$(pwd)
|
- ./travis.sh
|
||||||
- git clone https://github.com/KhronosGroup/OpenCL-Headers.git
|
|
||||||
- cd OpenCL-Headers
|
|
||||||
- ln -s CL OpenCL # For OSX builds
|
|
||||||
- cd ..
|
|
||||||
- git clone https://github.com/KhronosGroup/OpenCL-ICD-Loader.git
|
|
||||||
- cd ${TOP}/OpenCL-ICD-Loader
|
|
||||||
- mkdir build
|
|
||||||
- cd build
|
|
||||||
- cmake -DOPENCL_ICD_LOADER_HEADERS_DIR=${TOP}/OpenCL-Headers/ ..
|
|
||||||
- make
|
|
||||||
- cd ${TOP}
|
|
||||||
- git clone https://github.com/KhronosGroup/libclcxx.git
|
|
||||||
- ls -l
|
|
||||||
- mkdir build
|
|
||||||
- cd build
|
|
||||||
- cmake -DCL_INCLUDE_DIR=${TOP}/OpenCL-Headers
|
|
||||||
-DCL_LIB_DIR=${TOP}/OpenCL-ICD-Loader/build
|
|
||||||
-DCL_LIBCLCXX_DIR=${TOP}/libclcxx
|
|
||||||
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=./bin
|
|
||||||
-DOPENCL_LIBRARIES="-lOpenCL -lpthread"
|
|
||||||
..
|
|
||||||
- make -j2
|
|
||||||
|
|||||||
@@ -142,7 +142,8 @@ if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang"
|
|||||||
# avoiding excess precision problems that cause tests like int2float
|
# avoiding excess precision problems that cause tests like int2float
|
||||||
# to falsely fail. -ffloat-store also works, but WG suggested
|
# to falsely fail. -ffloat-store also works, but WG suggested
|
||||||
# that sse would be better.
|
# that sse would be better.
|
||||||
if(${CLConform_TARGET_ARCH} EQUAL "x86_64" OR ${CLConform_TARGET_ARCH} EQUAL "x86")
|
if(${CLConform_TARGET_ARCH} STREQUAL "x86_64" OR ${CLConform_TARGET_ARCH}
|
||||||
|
STREQUAL "x86")
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse -msse2 -mfpmath=sse")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse -msse2 -mfpmath=sse")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -mfpmath=sse")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -mfpmath=sse")
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ set (${MODULE_NAME}_SOURCES
|
|||||||
Sleep.cpp test_conversions.cpp basic_test_conversions.cpp
|
Sleep.cpp test_conversions.cpp basic_test_conversions.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC AND ${CLConform_TARGET_ARCH} EQUAL "ARM")
|
if(CMAKE_COMPILER_IS_GNUCXX AND "${CLConform_TARGET_ARCH}" STREQUAL "ARM")
|
||||||
list(APPEND ${MODULE_NAME}_SOURCES fplib.cpp)
|
list(APPEND ${MODULE_NAME}_SOURCES fplib.cpp)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
68
travis.sh
Executable file
68
travis.sh
Executable file
@@ -0,0 +1,68 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
export TOP=$(pwd)
|
||||||
|
|
||||||
|
TOOLCHAIN_URL_arm="https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz"
|
||||||
|
TOOLCHAIN_URL_aarch64="https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz"
|
||||||
|
|
||||||
|
TOOLCHAIN_PREFIX_arm=arm-linux-gnueabihf
|
||||||
|
TOOLCHAIN_PREFIX_aarch64=aarch64-linux-gnu
|
||||||
|
|
||||||
|
TOOLCHAIN_FILE=${TOP}/toolchain.cmake
|
||||||
|
touch ${TOOLCHAIN_FILE}
|
||||||
|
|
||||||
|
# Prepare toolchain if needed
|
||||||
|
if [[ ${JOB_ARCHITECTURE} != "" ]]; then
|
||||||
|
TOOLCHAIN_URL_VAR=TOOLCHAIN_URL_${JOB_ARCHITECTURE}
|
||||||
|
TOOLCHAIN_URL=${!TOOLCHAIN_URL_VAR}
|
||||||
|
wget ${TOOLCHAIN_URL}
|
||||||
|
TOOLCHAIN_ARCHIVE=${TOOLCHAIN_URL##*/}
|
||||||
|
tar xf ${TOOLCHAIN_ARCHIVE}
|
||||||
|
TOOLCHAIN_DIR=${TOP}/${TOOLCHAIN_ARCHIVE%.tar.xz}
|
||||||
|
export PATH=${TOOLCHAIN_DIR}/bin:${PATH}
|
||||||
|
|
||||||
|
TOOLCHAIN_PREFIX_VAR=TOOLCHAIN_PREFIX_${JOB_ARCHITECTURE}
|
||||||
|
TOOLCHAIN_PREFIX=${!TOOLCHAIN_PREFIX_VAR}
|
||||||
|
|
||||||
|
echo "SET(CMAKE_SYSTEM_NAME Linux)" >> ${TOOLCHAIN_FILE}
|
||||||
|
echo "SET(CMAKE_SYSTEM_PROCESSOR ${JOB_ARCHITECTURE})" >> ${TOOLCHAIN_FILE}
|
||||||
|
echo "SET(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)" >> ${TOOLCHAIN_FILE}
|
||||||
|
echo "SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)" >> ${TOOLCHAIN_FILE}
|
||||||
|
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)" >> ${TOOLCHAIN_FILE}
|
||||||
|
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)" >> ${TOOLCHAIN_FILE}
|
||||||
|
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)" >> ${TOOLCHAIN_FILE}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prepare headers
|
||||||
|
git clone https://github.com/KhronosGroup/OpenCL-Headers.git
|
||||||
|
cd OpenCL-Headers
|
||||||
|
ln -s CL OpenCL # For OSX builds
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# Get and build loader
|
||||||
|
git clone https://github.com/KhronosGroup/OpenCL-ICD-Loader.git
|
||||||
|
cd ${TOP}/OpenCL-ICD-Loader
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DOPENCL_ICD_LOADER_HEADERS_DIR=${TOP}/OpenCL-Headers/ ..
|
||||||
|
make
|
||||||
|
|
||||||
|
# Get libclcxx
|
||||||
|
cd ${TOP}
|
||||||
|
git clone https://github.com/KhronosGroup/libclcxx.git
|
||||||
|
|
||||||
|
# Build CTS
|
||||||
|
ls -l
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -DCL_INCLUDE_DIR=${TOP}/OpenCL-Headers \
|
||||||
|
-DCL_LIB_DIR=${TOP}/OpenCL-ICD-Loader/build \
|
||||||
|
-DCL_LIBCLCXX_DIR=${TOP}/libclcxx \
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \
|
||||||
|
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=./bin \
|
||||||
|
-DOPENCL_LIBRARIES="-lOpenCL -lpthread" \
|
||||||
|
..
|
||||||
|
make -j2
|
||||||
|
|
||||||
Reference in New Issue
Block a user