From 2bed01f727010db6cac491b79fffe711a93e1713 Mon Sep 17 00:00:00 2001 From: doe300 Date: Wed, 9 Feb 2022 16:12:20 +0100 Subject: [PATCH] Update Readme and build options Fixes header include path for Bullseye, see #105 and #107 --- .circleci/config.yml | 6 +++--- CMakeLists.txt | 2 +- Readme.md | 2 +- src/CMakeLists.txt | 2 +- test/TestProgram.cpp | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 31b2137..017a320 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -32,7 +32,7 @@ jobs: command: git clone https://github.com/KhronosGroup/OpenCL-Headers.git OpenCL-Headers - run: name: configure - command: mkdir build && cd build && LDFLAGS=-Wl,--warn-unresolved-symbols cmake ../ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DOpenCL_INCLUDE_DIRS=../OpenCL-Headers -DBUILD_NUMBER=$CIRCLE_BUILD_NUM -DCROSS_COMPILE=ON -DBUILD_TESTING=OFF -DBCMHOST_LIBRARY=/opt/vc/lib/libbcm_host.so -DCROSS_COMPILER_PATH=${HOME}/x-tools/armv6-rpi-linux-gnueabihf/bin -DCROSS_COMPILER_PREFIX="armv6-rpi-linux-gnueabihf-" -DSYSROOT_CROSS=${HOME}/cross -DOpenCL_LIBRARY=${HOME}/cross/usr/lib -DOpenCL_INCLUDE_DIR="${HOME}/cross/usr/include" + command: mkdir build && cd build && LDFLAGS=-Wl,--warn-unresolved-symbols cmake ../ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DOpenCL_INCLUDE_DIRS=../OpenCL-Headers -DBUILD_NUMBER=$CIRCLE_BUILD_NUM -DCROSS_COMPILE=ON -DBUILD_TESTING=OFF -DBUILD_ICD=ON -DBCMHOST_LIBRARY=/opt/vc/lib/libbcm_host.so -DCROSS_COMPILER_PATH=${HOME}/x-tools/armv6-rpi-linux-gnueabihf/bin -DCROSS_COMPILER_PREFIX="armv6-rpi-linux-gnueabihf-" -DSYSROOT_CROSS=${HOME}/cross -DOpenCL_LIBRARY=${HOME}/cross/usr/lib -DOpenCL_INCLUDE_DIR="${HOME}/cross/usr/include" - run: name: build command: cd build && make -j`nproc` @@ -71,7 +71,7 @@ jobs: command: dpkg-deb -x /tmp/vc4cl-stdlib.deb / && dpkg-deb -x /tmp/vc4c.deb / && dpkg-deb -x /tmp/vc4c_testdata.deb / - run: name: configure - command: mkdir build && cd build && cmake ../ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_NUMBER=$CIRCLE_BUILD_NUM -DBUILD_TESTING=ON -DINCLUDE_COMPILER=ON -DMOCK_HAL=ON + command: mkdir build && cd build && cmake ../ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_NUMBER=$CIRCLE_BUILD_NUM -DBUILD_TESTING=ON -DBUILD_ICD=OFF -DINCLUDE_COMPILER=ON -DMOCK_HAL=ON - run: name: make command: cd build && make -j`nproc` @@ -106,7 +106,7 @@ jobs: command: git clone https://github.com/KhronosGroup/OpenCL-Headers.git OpenCL-Headers - run: name: configure - command: mkdir build && cd build && LDFLAGS=-Wl,--warn-unresolved-symbols cmake ../ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DOpenCL_INCLUDE_DIRS=../OpenCL-Headers -DBUILD_NUMBER=$CIRCLE_BUILD_NUM -DCROSS_COMPILE=ON -DBUILD_TESTING=OFF -DINCLUDE_COMPILER=OFF -DBCMHOST_LIBRARY=/opt/vc/lib/libbcm_host.so -DCROSS_COMPILER_PATH=${HOME}/x-tools/armv6-rpi-linux-gnueabihf/bin -DCROSS_COMPILER_PREFIX="armv6-rpi-linux-gnueabihf-" -DSYSROOT_CROSS=${HOME}/cross -DOpenCL_LIBRARY=${HOME}/cross/usr/lib -DOpenCL_INCLUDE_DIR="${HOME}/cross/usr/include" + command: mkdir build && cd build && LDFLAGS=-Wl,--warn-unresolved-symbols cmake ../ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DOpenCL_INCLUDE_DIRS=../OpenCL-Headers -DBUILD_NUMBER=$CIRCLE_BUILD_NUM -DCROSS_COMPILE=ON -DBUILD_TESTING=OFF -DBUILD_ICD=ON -DINCLUDE_COMPILER=OFF -DBCMHOST_LIBRARY=/opt/vc/lib/libbcm_host.so -DCROSS_COMPILER_PATH=${HOME}/x-tools/armv6-rpi-linux-gnueabihf/bin -DCROSS_COMPILER_PREFIX="armv6-rpi-linux-gnueabihf-" -DSYSROOT_CROSS=${HOME}/cross -DOpenCL_LIBRARY=${HOME}/cross/usr/lib -DOpenCL_INCLUDE_DIR="${HOME}/cross/usr/include" - run: name: build command: cd build && make -j`nproc` diff --git a/CMakeLists.txt b/CMakeLists.txt index 81d6421..2e5c2d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ include(CheckSymbolExists) #### option(INCLUDE_COMPILER "Includes the VC4C compiler" ON) option(BUILD_TESTING "Build testing program" OFF) -option(BUILD_ICD "Build with support for ICD" ON) +option(BUILD_ICD "Build with support for ICD" OFF) option(IMAGE_SUPPORT "Experimental image support" OFF) # Option to enable/disable cross compilation option(CROSS_COMPILE "Cross compile for Raspbian" OFF) diff --git a/Readme.md b/Readme.md index 0def30b..351e2c5 100644 --- a/Readme.md +++ b/Readme.md @@ -41,7 +41,7 @@ The GPU (which is located on the same chip as the CPU) has 12 cores, able of run The following configuration options are available in CMake: - `BUILD_TESTING` toggles building of test program (when configured, can be built with `make TestVC4CL`) -- `CMAKE_BUILD_TYPE` set to *Debug*, *Release*, *asan*, *tsan* or *usbsan* to build for the given debug/release mode or with sanitizers enabled +- `CMAKE_BUILD_TYPE` set to *Debug*, *Release*, *RelWithDebInfo*, *asan*, *tsan* or *usbsan* to build for the given debug/release mode or with sanitizers enabled - `CROSS_COMPILE` toggles whether to cross-compile for the Raspberry Pi. NOTE: The [Raspberry Pi cross-compiler](https://github.com/raspberrypi/tools) is no longer supported! - `CROSS_COMPILER_PATH` sets the root path to the Raspberry Pi cross compiler (.g. `arm-linux-gnueabihf-g++-6`) - `INCLUDE_COMPILER` whether to include the [VC4C](https://github.com/doe300/VC4C) compiler. For the compiler to be actually included, the VC4C header and library needs to be found too diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index be8ba52..1996e29 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -26,7 +26,7 @@ endif() if(MOCK_HAL) target_compile_definitions(VC4CL PRIVATE MOCK_HAL=1) -elseif(CROSS_COMPILE OR EXISTS "/opt/vc/include/bcm_host.h") +elseif(CROSS_COMPILE OR EXISTS "/opt/vc/include/bcm_host.h" OR EXISTS "/usr/include/bcm_host.h") find_library(BCMHOST_LIBRARY NAMES bcm_host libbcm_host HINTS "/opt/vc/lib" "/usr/lib/arm-linux-gnueabihf") find_library(VCSM_LIBRARY NAMES vcsm libvcsm HINTS "/opt/vc/lib" "/usr/lib/arm-linux-gnueabihf") target_link_libraries(VC4CL ${BCMHOST_LIBRARY} ${VCSM_LIBRARY} ${SYSROOT_LIBRARY_FLAGS}) diff --git a/test/TestProgram.cpp b/test/TestProgram.cpp index 604a647..d632624 100644 --- a/test/TestProgram.cpp +++ b/test/TestProgram.cpp @@ -45,8 +45,8 @@ void TestProgram::checkBuildStatus(const cl_program program) state = VC4CL_FUNC(clGetProgramBuildInfo)(program, Platform::getVC4CLPlatform().VideoCoreIVGPU.toBase(), CL_PROGRAM_BUILD_LOG, log.size(), log.data(), nullptr); std::cerr << "Build log: " << log.data() << std::endl; - TEST_ASSERT_EQUALS(CL_BUILD_SUCCESS, status) } + TEST_ASSERT_EQUALS(CL_SUCCESS, state) } bool TestProgram::setup()