diff mbox series

package/clpeak: new package

Message ID 20211024113654.88720-1-gilles.talis@gmail.com
State Changes Requested
Headers show
Series package/clpeak: new package | expand

Commit Message

Gilles Talis Oct. 24, 2021, 11:36 a.m. UTC
clpeak is a tool that profiles OpenCL devices to find
their peak capacities

Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
---
 DEVELOPERS                 |  1 +
 package/Config.in          |  1 +
 package/clpeak/Config.in   | 14 ++++++++++++++
 package/clpeak/clpeak.hash |  3 +++
 package/clpeak/clpeak.mk   | 13 +++++++++++++
 5 files changed, 32 insertions(+)
 create mode 100644 package/clpeak/Config.in
 create mode 100644 package/clpeak/clpeak.hash
 create mode 100644 package/clpeak/clpeak.mk

Comments

Thomas Petazzoni Dec. 30, 2021, 5 p.m. UTC | #1
Hello Gilles,

On Sun, 24 Oct 2021 13:36:54 +0200
Gilles Talis <gilles.talis@gmail.com> wrote:

> clpeak is a tool that profiles OpenCL devices to find
> their peak capacities
> 
> Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
> ---
>  DEVELOPERS                 |  1 +
>  package/Config.in          |  1 +
>  package/clpeak/Config.in   | 14 ++++++++++++++
>  package/clpeak/clpeak.hash |  3 +++
>  package/clpeak/clpeak.mk   | 13 +++++++++++++
>  5 files changed, 32 insertions(+)
>  create mode 100644 package/clpeak/Config.in
>  create mode 100644 package/clpeak/clpeak.hash
>  create mode 100644 package/clpeak/clpeak.mk

Thanks for this package submission! Unfortunately, I'm afraid there is
an issue: it downloads stuff during the configure step. See below:

>>> clpeak 0777205be1d5681d5a76d46ec94588544e8462a5 Configuring
...
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for CL_VERSION_2_2
-- Looking for CL_VERSION_2_2 - found
-- Found OpenCL: /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libOpenCL.so (found version "2.2") 
CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as

    project(ProjectName)

  near the top of the file, but after cmake_minimum_required().

  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build
gmake[1]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
gmake[2]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
gmake[3]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
gmake[3]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
gmake[3]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
[ 12%] Creating directories for 'hpp_headers'
[ 25%] Performing download step (git clone) for 'hpp_headers'
Cloning into 'hpp_headers'...
remote: Enumerating objects: 558, done.        
remote: Counting objects: 100% (558/558), done.        
remote: Compressing objects: 100% (396/396), done.        
remote: Total 558 (delta 324), reused 355 (delta 155), pack-reused 0        
Receiving objects: 100% (558/558), 762.72 KiB | 5.45 MiB/s, done.
Resolving deltas: 100% (324/324), done.
Already on 'master'
Your branch is up to date with 'origin/master'.
Submodule 'external/CMock' (https://github.com/ThrowTheSwitch/CMock) registered for path 'external/CMock'
Submodule 'external/Unity' (https://github.com/ThrowTheSwitch/Unity) registered for path 'external/Unity'
Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock'...
Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/Unity'...
Submodule path 'external/CMock': checked out '7cc41ddfdd07dc5eb8359d278f439f14031d64ad'
Submodule 'vendor/c_exception' (https://github.com/throwtheswitch/cexception.git) registered for path 'external/CMock/vendor/c_exception'
Submodule 'vendor/unity' (https://github.com/throwtheswitch/unity.git) registered for path 'external/CMock/vendor/unity'
Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock/vendor/c_exception'...
Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock/vendor/unity'...
Submodule path 'external/CMock/vendor/c_exception': checked out 'dce9e8b26f2179439002e02d691429e81a32b6c0'
Submodule 'vendor/unity' (https://github.com/throwtheswitch/unity.git) registered for path 'external/CMock/vendor/c_exception/vendor/unity'
Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock/vendor/c_exception/vendor/unity'...
Submodule path 'external/CMock/vendor/c_exception/vendor/unity': checked out '2c7629a0ae90ffe991b5fd08e4db8672f72ed64c'
Submodule path 'external/CMock/vendor/unity': checked out '031f3bbe45f8adf504ca3d13e6f093869920b091'
Submodule path 'external/Unity': checked out '7d2bf62b7e6afaf38153041a9d53c21aeeca9a25'
[ 37%] Performing update step for 'hpp_headers'
HEAD is now at 1df82b9 Add param traits for CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM (#165)
[ 50%] No patch step for 'hpp_headers'
[ 62%] Performing configure step for 'hpp_headers'
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build
[ 75%] Performing build step for 'hpp_headers'
gmake[4]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
gmake[4]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
[ 87%] Performing install step for 'hpp_headers'
gmake[4]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
Install the project...
-- Install configuration: "Release"
-- Installing: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include/CL
-- Installing: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include/CL/cl2.hpp
-- Installing: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include/CL/opencl.hpp
gmake[4]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
[100%] Completed 'hpp_headers'
gmake[3]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
[100%] Built target hpp_headers
gmake[2]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
gmake[1]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
-- Selected OpenCL includes from /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include;/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include
-- Selected OpenCL lib /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libOpenCL.so
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    BUILD_DOC
    BUILD_DOCS
    BUILD_EXAMPLE
    BUILD_EXAMPLES
    BUILD_TEST
    BUILD_TESTING
    BUILD_TESTS


-- Build files have been written to: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5

Also, while note related to clpeak, I did try to build this
configuration (which uses the NXP OpenCL provider):

BR2_aarch64=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_CLPEAK=y
BR2_PACKAGE_FREESCALE_IMX=y
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8=y
BR2_PACKAGE_IMX_GPU_VIV=y
# BR2_TARGET_ROOTFS_TAR is not set

and it fails with:

/home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/aarch64-buildroot-linux-gnu/9.3.0/../../../../aarch64-buildroot-linux-gnu/bin/ld: /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib64/libGAL.so: undefined reference to `stat@GLIBC_2.33'

And indeed the C library in this toolchain is glibc 2.31. So this means
that the libGAL library shipped by NXP in imx-gpu-viv will only work
with glibc >= 2.33.

Best regards,

Thomas
Gilles Talis Jan. 16, 2022, 8:50 a.m. UTC | #2
Hi Thomas,

thanks for the review. Somehow, I missed this email and just stumbled
across it now.

Le jeu. 30 déc. 2021 à 18:00, Thomas Petazzoni
<thomas.petazzoni@bootlin.com> a écrit :
>
> Hello Gilles,
>
> On Sun, 24 Oct 2021 13:36:54 +0200
> Gilles Talis <gilles.talis@gmail.com> wrote:
>
> > clpeak is a tool that profiles OpenCL devices to find
> > their peak capacities
> >
> > Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
> > ---
> >  DEVELOPERS                 |  1 +
> >  package/Config.in          |  1 +
> >  package/clpeak/Config.in   | 14 ++++++++++++++
> >  package/clpeak/clpeak.hash |  3 +++
> >  package/clpeak/clpeak.mk   | 13 +++++++++++++
> >  5 files changed, 32 insertions(+)
> >  create mode 100644 package/clpeak/Config.in
> >  create mode 100644 package/clpeak/clpeak.hash
> >  create mode 100644 package/clpeak/clpeak.mk
>
> Thanks for this package submission! Unfortunately, I'm afraid there is
> an issue: it downloads stuff during the configure step. See below:
Good catch! It seems like clpeak has a hidden dependency that I missed.
Whilst I am here, one question: how do we deal with packages that have
git submodules dependencies? Is it OK to let the download process
download these dependencies? Even if the dependencies are available
buildroot packages?

>
> >>> clpeak 0777205be1d5681d5a76d46ec94588544e8462a5 Configuring
> ...
> -- The C compiler identification is GNU 9.3.0
> -- The CXX compiler identification is GNU 9.3.0
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Check for working C compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-gcc - skipped
> -- Detecting C compile features
> -- Detecting C compile features - done
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Check for working CXX compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-g++ - skipped
> -- Detecting CXX compile features
> -- Detecting CXX compile features - done
> -- Looking for CL_VERSION_2_2
> -- Looking for CL_VERSION_2_2 - found
> -- Found OpenCL: /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libOpenCL.so (found version "2.2")
> CMake Warning (dev) in CMakeLists.txt:
>   No project() command is present.  The top-level CMakeLists.txt file must
>   contain a literal, direct call to the project() command.  Add a line of
>   code such as
>
>     project(ProjectName)
>
>   near the top of the file, but after cmake_minimum_required().
>
>   CMake is pretending there is a "project(Project)" command on the first
>   line.
> This warning is for project developers.  Use -Wno-dev to suppress it.
>
> -- The C compiler identification is GNU 9.3.0
> -- The CXX compiler identification is GNU 9.3.0
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Check for working C compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-gcc - skipped
> -- Detecting C compile features
> -- Detecting C compile features - done
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Check for working CXX compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-g++ - skipped
> -- Detecting CXX compile features
> -- Detecting CXX compile features - done
> -- Configuring done
> -- Generating done
> -- Build files have been written to: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build
> gmake[1]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> gmake[2]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> gmake[3]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> gmake[3]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> gmake[3]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> [ 12%] Creating directories for 'hpp_headers'
> [ 25%] Performing download step (git clone) for 'hpp_headers'
> Cloning into 'hpp_headers'...
> remote: Enumerating objects: 558, done.
> remote: Counting objects: 100% (558/558), done.
> remote: Compressing objects: 100% (396/396), done.
> remote: Total 558 (delta 324), reused 355 (delta 155), pack-reused 0
> Receiving objects: 100% (558/558), 762.72 KiB | 5.45 MiB/s, done.
> Resolving deltas: 100% (324/324), done.
> Already on 'master'
> Your branch is up to date with 'origin/master'.
> Submodule 'external/CMock' (https://github.com/ThrowTheSwitch/CMock) registered for path 'external/CMock'
> Submodule 'external/Unity' (https://github.com/ThrowTheSwitch/Unity) registered for path 'external/Unity'
> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock'...
> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/Unity'...
> Submodule path 'external/CMock': checked out '7cc41ddfdd07dc5eb8359d278f439f14031d64ad'
> Submodule 'vendor/c_exception' (https://github.com/throwtheswitch/cexception.git) registered for path 'external/CMock/vendor/c_exception'
> Submodule 'vendor/unity' (https://github.com/throwtheswitch/unity.git) registered for path 'external/CMock/vendor/unity'
> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock/vendor/c_exception'...
> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock/vendor/unity'...
> Submodule path 'external/CMock/vendor/c_exception': checked out 'dce9e8b26f2179439002e02d691429e81a32b6c0'
> Submodule 'vendor/unity' (https://github.com/throwtheswitch/unity.git) registered for path 'external/CMock/vendor/c_exception/vendor/unity'
> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock/vendor/c_exception/vendor/unity'...
> Submodule path 'external/CMock/vendor/c_exception/vendor/unity': checked out '2c7629a0ae90ffe991b5fd08e4db8672f72ed64c'
> Submodule path 'external/CMock/vendor/unity': checked out '031f3bbe45f8adf504ca3d13e6f093869920b091'
> Submodule path 'external/Unity': checked out '7d2bf62b7e6afaf38153041a9d53c21aeeca9a25'
> [ 37%] Performing update step for 'hpp_headers'
> HEAD is now at 1df82b9 Add param traits for CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM (#165)
> [ 50%] No patch step for 'hpp_headers'
> [ 62%] Performing configure step for 'hpp_headers'
> -- The C compiler identification is GNU 9.3.0
> -- The CXX compiler identification is GNU 9.3.0
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Check for working C compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-gcc - skipped
> -- Detecting C compile features
> -- Detecting C compile features - done
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Check for working CXX compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-g++ - skipped
> -- Detecting CXX compile features
> -- Detecting CXX compile features - done
> -- Configuring done
> -- Generating done
> -- Build files have been written to: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build
> [ 75%] Performing build step for 'hpp_headers'
> gmake[4]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
> gmake[4]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
> [ 87%] Performing install step for 'hpp_headers'
> gmake[4]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
> Install the project...
> -- Install configuration: "Release"
> -- Installing: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include/CL
> -- Installing: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include/CL/cl2.hpp
> -- Installing: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include/CL/opencl.hpp
> gmake[4]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
> [100%] Completed 'hpp_headers'
> gmake[3]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> [100%] Built target hpp_headers
> gmake[2]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> gmake[1]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> -- Selected OpenCL includes from /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include;/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include
> -- Selected OpenCL lib /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libOpenCL.so
> -- Configuring done
> -- Generating done
> CMake Warning:
>   Manually-specified variables were not used by the project:
>
>     BUILD_DOC
>     BUILD_DOCS
>     BUILD_EXAMPLE
>     BUILD_EXAMPLES
>     BUILD_TEST
>     BUILD_TESTING
>     BUILD_TESTS
>
>
> -- Build files have been written to: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5
>
> Also, while note related to clpeak, I did try to build this
> configuration (which uses the NXP OpenCL provider):
>
> BR2_aarch64=y
> BR2_TOOLCHAIN_EXTERNAL=y
> BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
> BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE=y
> BR2_INIT_NONE=y
> BR2_SYSTEM_BIN_SH_NONE=y
> # BR2_PACKAGE_BUSYBOX is not set
> BR2_PACKAGE_CLPEAK=y
> BR2_PACKAGE_FREESCALE_IMX=y
> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8=y
> BR2_PACKAGE_IMX_GPU_VIV=y
> # BR2_TARGET_ROOTFS_TAR is not set
>
> and it fails with:
>
> /home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/aarch64-buildroot-linux-gnu/9.3.0/../../../../aarch64-buildroot-linux-gnu/bin/ld: /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib64/libGAL.so: undefined reference to `stat@GLIBC_2.33'
>
> And indeed the C library in this toolchain is glibc 2.31. So this means
> that the libGAL library shipped by NXP in imx-gpu-viv will only work
> with glibc >= 2.33.
Good catch again. This is quite a bummer. I will look into that when
time allows.

>
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
thanks
Gilles.
Arnout Vandecappelle Jan. 16, 2022, 12:10 p.m. UTC | #3
On 16/01/2022 09:50, Gilles Talis wrote:
> Hi Thomas,
> 
> thanks for the review. Somehow, I missed this email and just stumbled
> across it now.
> 
> Le jeu. 30 déc. 2021 à 18:00, Thomas Petazzoni
> <thomas.petazzoni@bootlin.com> a écrit :
>>
>> Hello Gilles,
>>
>> On Sun, 24 Oct 2021 13:36:54 +0200
>> Gilles Talis <gilles.talis@gmail.com> wrote:
>>
>>> clpeak is a tool that profiles OpenCL devices to find
>>> their peak capacities
>>>
>>> Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
>>> ---
>>>   DEVELOPERS                 |  1 +
>>>   package/Config.in          |  1 +
>>>   package/clpeak/Config.in   | 14 ++++++++++++++
>>>   package/clpeak/clpeak.hash |  3 +++
>>>   package/clpeak/clpeak.mk   | 13 +++++++++++++
>>>   5 files changed, 32 insertions(+)
>>>   create mode 100644 package/clpeak/Config.in
>>>   create mode 100644 package/clpeak/clpeak.hash
>>>   create mode 100644 package/clpeak/clpeak.mk
>>
>> Thanks for this package submission! Unfortunately, I'm afraid there is
>> an issue: it downloads stuff during the configure step. See below:
> Good catch! It seems like clpeak has a hidden dependency that I missed.
> Whilst I am here, one question: how do we deal with packages that have
> git submodules dependencies? Is it OK to let the download process
> download these dependencies? Even if the dependencies are available
> buildroot packages?

  We prefer to unbundle dependencies (i.e., use the buildroot package rather 
than the submodule) if that is possible. However, some projects make that really 
hard (like chromium...) so it's not a strict requirement, more a best effort thing.

  Regards,
  Arnout

> 
>>
>>>>> clpeak 0777205be1d5681d5a76d46ec94588544e8462a5 Configuring
>> ...
>> -- The C compiler identification is GNU 9.3.0
>> -- The CXX compiler identification is GNU 9.3.0
>> -- Detecting C compiler ABI info
>> -- Detecting C compiler ABI info - done
>> -- Check for working C compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-gcc - skipped
>> -- Detecting C compile features
>> -- Detecting C compile features - done
>> -- Detecting CXX compiler ABI info
>> -- Detecting CXX compiler ABI info - done
>> -- Check for working CXX compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-g++ - skipped
>> -- Detecting CXX compile features
>> -- Detecting CXX compile features - done
>> -- Looking for CL_VERSION_2_2
>> -- Looking for CL_VERSION_2_2 - found
>> -- Found OpenCL: /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libOpenCL.so (found version "2.2")
>> CMake Warning (dev) in CMakeLists.txt:
>>    No project() command is present.  The top-level CMakeLists.txt file must
>>    contain a literal, direct call to the project() command.  Add a line of
>>    code such as
>>
>>      project(ProjectName)
>>
>>    near the top of the file, but after cmake_minimum_required().
>>
>>    CMake is pretending there is a "project(Project)" command on the first
>>    line.
>> This warning is for project developers.  Use -Wno-dev to suppress it.
>>
>> -- The C compiler identification is GNU 9.3.0
>> -- The CXX compiler identification is GNU 9.3.0
>> -- Detecting C compiler ABI info
>> -- Detecting C compiler ABI info - done
>> -- Check for working C compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-gcc - skipped
>> -- Detecting C compile features
>> -- Detecting C compile features - done
>> -- Detecting CXX compiler ABI info
>> -- Detecting CXX compiler ABI info - done
>> -- Check for working CXX compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-g++ - skipped
>> -- Detecting CXX compile features
>> -- Detecting CXX compile features - done
>> -- Configuring done
>> -- Generating done
>> -- Build files have been written to: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build
>> gmake[1]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
>> gmake[2]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
>> gmake[3]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
>> gmake[3]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
>> gmake[3]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
>> [ 12%] Creating directories for 'hpp_headers'
>> [ 25%] Performing download step (git clone) for 'hpp_headers'
>> Cloning into 'hpp_headers'...
>> remote: Enumerating objects: 558, done.
>> remote: Counting objects: 100% (558/558), done.
>> remote: Compressing objects: 100% (396/396), done.
>> remote: Total 558 (delta 324), reused 355 (delta 155), pack-reused 0
>> Receiving objects: 100% (558/558), 762.72 KiB | 5.45 MiB/s, done.
>> Resolving deltas: 100% (324/324), done.
>> Already on 'master'
>> Your branch is up to date with 'origin/master'.
>> Submodule 'external/CMock' (https://github.com/ThrowTheSwitch/CMock) registered for path 'external/CMock'
>> Submodule 'external/Unity' (https://github.com/ThrowTheSwitch/Unity) registered for path 'external/Unity'
>> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock'...
>> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/Unity'...
>> Submodule path 'external/CMock': checked out '7cc41ddfdd07dc5eb8359d278f439f14031d64ad'
>> Submodule 'vendor/c_exception' (https://github.com/throwtheswitch/cexception.git) registered for path 'external/CMock/vendor/c_exception'
>> Submodule 'vendor/unity' (https://github.com/throwtheswitch/unity.git) registered for path 'external/CMock/vendor/unity'
>> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock/vendor/c_exception'...
>> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock/vendor/unity'...
>> Submodule path 'external/CMock/vendor/c_exception': checked out 'dce9e8b26f2179439002e02d691429e81a32b6c0'
>> Submodule 'vendor/unity' (https://github.com/throwtheswitch/unity.git) registered for path 'external/CMock/vendor/c_exception/vendor/unity'
>> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock/vendor/c_exception/vendor/unity'...
>> Submodule path 'external/CMock/vendor/c_exception/vendor/unity': checked out '2c7629a0ae90ffe991b5fd08e4db8672f72ed64c'
>> Submodule path 'external/CMock/vendor/unity': checked out '031f3bbe45f8adf504ca3d13e6f093869920b091'
>> Submodule path 'external/Unity': checked out '7d2bf62b7e6afaf38153041a9d53c21aeeca9a25'
>> [ 37%] Performing update step for 'hpp_headers'
>> HEAD is now at 1df82b9 Add param traits for CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM (#165)
>> [ 50%] No patch step for 'hpp_headers'
>> [ 62%] Performing configure step for 'hpp_headers'
>> -- The C compiler identification is GNU 9.3.0
>> -- The CXX compiler identification is GNU 9.3.0
>> -- Detecting C compiler ABI info
>> -- Detecting C compiler ABI info - done
>> -- Check for working C compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-gcc - skipped
>> -- Detecting C compile features
>> -- Detecting C compile features - done
>> -- Detecting CXX compiler ABI info
>> -- Detecting CXX compiler ABI info - done
>> -- Check for working CXX compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-g++ - skipped
>> -- Detecting CXX compile features
>> -- Detecting CXX compile features - done
>> -- Configuring done
>> -- Generating done
>> -- Build files have been written to: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build
>> [ 75%] Performing build step for 'hpp_headers'
>> gmake[4]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
>> gmake[4]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
>> [ 87%] Performing install step for 'hpp_headers'
>> gmake[4]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
>> Install the project...
>> -- Install configuration: "Release"
>> -- Installing: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include/CL
>> -- Installing: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include/CL/cl2.hpp
>> -- Installing: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include/CL/opencl.hpp
>> gmake[4]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
>> [100%] Completed 'hpp_headers'
>> gmake[3]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
>> [100%] Built target hpp_headers
>> gmake[2]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
>> gmake[1]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
>> -- Selected OpenCL includes from /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include;/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include
>> -- Selected OpenCL lib /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libOpenCL.so
>> -- Configuring done
>> -- Generating done
>> CMake Warning:
>>    Manually-specified variables were not used by the project:
>>
>>      BUILD_DOC
>>      BUILD_DOCS
>>      BUILD_EXAMPLE
>>      BUILD_EXAMPLES
>>      BUILD_TEST
>>      BUILD_TESTING
>>      BUILD_TESTS
>>
>>
>> -- Build files have been written to: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5
>>
>> Also, while note related to clpeak, I did try to build this
>> configuration (which uses the NXP OpenCL provider):
>>
>> BR2_aarch64=y
>> BR2_TOOLCHAIN_EXTERNAL=y
>> BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
>> BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE=y
>> BR2_INIT_NONE=y
>> BR2_SYSTEM_BIN_SH_NONE=y
>> # BR2_PACKAGE_BUSYBOX is not set
>> BR2_PACKAGE_CLPEAK=y
>> BR2_PACKAGE_FREESCALE_IMX=y
>> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8=y
>> BR2_PACKAGE_IMX_GPU_VIV=y
>> # BR2_TARGET_ROOTFS_TAR is not set
>>
>> and it fails with:
>>
>> /home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/aarch64-buildroot-linux-gnu/9.3.0/../../../../aarch64-buildroot-linux-gnu/bin/ld: /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib64/libGAL.so: undefined reference to `stat@GLIBC_2.33'
>>
>> And indeed the C library in this toolchain is glibc 2.31. So this means
>> that the libGAL library shipped by NXP in imx-gpu-viv will only work
>> with glibc >= 2.33.
> Good catch again. This is quite a bummer. I will look into that when
> time allows.
> 
>>
>> Best regards,
>>
>> Thomas
>> --
>> Thomas Petazzoni, CTO, Bootlin
>> Embedded Linux and Kernel engineering
>> https://bootlin.com
> thanks
> Gilles.
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
>
Gilles Talis Jan. 16, 2022, 12:40 p.m. UTC | #4
Le dim. 16 janv. 2022 à 13:10, Arnout Vandecappelle <arnout@mind.be> a écrit :
>
>
>
> On 16/01/2022 09:50, Gilles Talis wrote:
> > Hi Thomas,
> >
> > thanks for the review. Somehow, I missed this email and just stumbled
> > across it now.
> >
> > Le jeu. 30 déc. 2021 à 18:00, Thomas Petazzoni
> > <thomas.petazzoni@bootlin.com> a écrit :
> >>
> >> Hello Gilles,
> >>
> >> On Sun, 24 Oct 2021 13:36:54 +0200
> >> Gilles Talis <gilles.talis@gmail.com> wrote:
> >>
> >>> clpeak is a tool that profiles OpenCL devices to find
> >>> their peak capacities
> >>>
> >>> Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
> >>> ---
> >>>   DEVELOPERS                 |  1 +
> >>>   package/Config.in          |  1 +
> >>>   package/clpeak/Config.in   | 14 ++++++++++++++
> >>>   package/clpeak/clpeak.hash |  3 +++
> >>>   package/clpeak/clpeak.mk   | 13 +++++++++++++
> >>>   5 files changed, 32 insertions(+)
> >>>   create mode 100644 package/clpeak/Config.in
> >>>   create mode 100644 package/clpeak/clpeak.hash
> >>>   create mode 100644 package/clpeak/clpeak.mk
> >>
> >> Thanks for this package submission! Unfortunately, I'm afraid there is
> >> an issue: it downloads stuff during the configure step. See below:
> > Good catch! It seems like clpeak has a hidden dependency that I missed.
> > Whilst I am here, one question: how do we deal with packages that have
> > git submodules dependencies? Is it OK to let the download process
> > download these dependencies? Even if the dependencies are available
> > buildroot packages?
>
>   We prefer to unbundle dependencies (i.e., use the buildroot package rather
> than the submodule) if that is possible. However, some projects make that really
> hard (like chromium...) so it's not a strict requirement, more a best effort thing.
>
>   Regards,
>   Arnout
thanks for the clarification Arnout!
regards
Gilles.

>
> >
> >>
> >>>>> clpeak 0777205be1d5681d5a76d46ec94588544e8462a5 Configuring
> >> ...
> >> -- The C compiler identification is GNU 9.3.0
> >> -- The CXX compiler identification is GNU 9.3.0
> >> -- Detecting C compiler ABI info
> >> -- Detecting C compiler ABI info - done
> >> -- Check for working C compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-gcc - skipped
> >> -- Detecting C compile features
> >> -- Detecting C compile features - done
> >> -- Detecting CXX compiler ABI info
> >> -- Detecting CXX compiler ABI info - done
> >> -- Check for working CXX compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-g++ - skipped
> >> -- Detecting CXX compile features
> >> -- Detecting CXX compile features - done
> >> -- Looking for CL_VERSION_2_2
> >> -- Looking for CL_VERSION_2_2 - found
> >> -- Found OpenCL: /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libOpenCL.so (found version "2.2")
> >> CMake Warning (dev) in CMakeLists.txt:
> >>    No project() command is present.  The top-level CMakeLists.txt file must
> >>    contain a literal, direct call to the project() command.  Add a line of
> >>    code such as
> >>
> >>      project(ProjectName)
> >>
> >>    near the top of the file, but after cmake_minimum_required().
> >>
> >>    CMake is pretending there is a "project(Project)" command on the first
> >>    line.
> >> This warning is for project developers.  Use -Wno-dev to suppress it.
> >>
> >> -- The C compiler identification is GNU 9.3.0
> >> -- The CXX compiler identification is GNU 9.3.0
> >> -- Detecting C compiler ABI info
> >> -- Detecting C compiler ABI info - done
> >> -- Check for working C compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-gcc - skipped
> >> -- Detecting C compile features
> >> -- Detecting C compile features - done
> >> -- Detecting CXX compiler ABI info
> >> -- Detecting CXX compiler ABI info - done
> >> -- Check for working CXX compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-g++ - skipped
> >> -- Detecting CXX compile features
> >> -- Detecting CXX compile features - done
> >> -- Configuring done
> >> -- Generating done
> >> -- Build files have been written to: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build
> >> gmake[1]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> >> gmake[2]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> >> gmake[3]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> >> gmake[3]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> >> gmake[3]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> >> [ 12%] Creating directories for 'hpp_headers'
> >> [ 25%] Performing download step (git clone) for 'hpp_headers'
> >> Cloning into 'hpp_headers'...
> >> remote: Enumerating objects: 558, done.
> >> remote: Counting objects: 100% (558/558), done.
> >> remote: Compressing objects: 100% (396/396), done.
> >> remote: Total 558 (delta 324), reused 355 (delta 155), pack-reused 0
> >> Receiving objects: 100% (558/558), 762.72 KiB | 5.45 MiB/s, done.
> >> Resolving deltas: 100% (324/324), done.
> >> Already on 'master'
> >> Your branch is up to date with 'origin/master'.
> >> Submodule 'external/CMock' (https://github.com/ThrowTheSwitch/CMock) registered for path 'external/CMock'
> >> Submodule 'external/Unity' (https://github.com/ThrowTheSwitch/Unity) registered for path 'external/Unity'
> >> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock'...
> >> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/Unity'...
> >> Submodule path 'external/CMock': checked out '7cc41ddfdd07dc5eb8359d278f439f14031d64ad'
> >> Submodule 'vendor/c_exception' (https://github.com/throwtheswitch/cexception.git) registered for path 'external/CMock/vendor/c_exception'
> >> Submodule 'vendor/unity' (https://github.com/throwtheswitch/unity.git) registered for path 'external/CMock/vendor/unity'
> >> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock/vendor/c_exception'...
> >> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock/vendor/unity'...
> >> Submodule path 'external/CMock/vendor/c_exception': checked out 'dce9e8b26f2179439002e02d691429e81a32b6c0'
> >> Submodule 'vendor/unity' (https://github.com/throwtheswitch/unity.git) registered for path 'external/CMock/vendor/c_exception/vendor/unity'
> >> Cloning into '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers/external/CMock/vendor/c_exception/vendor/unity'...
> >> Submodule path 'external/CMock/vendor/c_exception/vendor/unity': checked out '2c7629a0ae90ffe991b5fd08e4db8672f72ed64c'
> >> Submodule path 'external/CMock/vendor/unity': checked out '031f3bbe45f8adf504ca3d13e6f093869920b091'
> >> Submodule path 'external/Unity': checked out '7d2bf62b7e6afaf38153041a9d53c21aeeca9a25'
> >> [ 37%] Performing update step for 'hpp_headers'
> >> HEAD is now at 1df82b9 Add param traits for CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM (#165)
> >> [ 50%] No patch step for 'hpp_headers'
> >> [ 62%] Performing configure step for 'hpp_headers'
> >> -- The C compiler identification is GNU 9.3.0
> >> -- The CXX compiler identification is GNU 9.3.0
> >> -- Detecting C compiler ABI info
> >> -- Detecting C compiler ABI info - done
> >> -- Check for working C compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-gcc - skipped
> >> -- Detecting C compile features
> >> -- Detecting C compile features - done
> >> -- Detecting CXX compiler ABI info
> >> -- Detecting CXX compiler ABI info - done
> >> -- Check for working CXX compiler: /home/thomas/projets/buildroot/output/host/bin/aarch64-linux-g++ - skipped
> >> -- Detecting CXX compile features
> >> -- Detecting CXX compile features - done
> >> -- Configuring done
> >> -- Generating done
> >> -- Build files have been written to: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build
> >> [ 75%] Performing build step for 'hpp_headers'
> >> gmake[4]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
> >> gmake[4]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
> >> [ 87%] Performing install step for 'hpp_headers'
> >> gmake[4]: Entering directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
> >> Install the project...
> >> -- Install configuration: "Release"
> >> -- Installing: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include/CL
> >> -- Installing: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include/CL/cl2.hpp
> >> -- Installing: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include/CL/opencl.hpp
> >> gmake[4]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build/hpp/src/hpp_headers-build'
> >> [100%] Completed 'hpp_headers'
> >> gmake[3]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> >> [100%] Built target hpp_headers
> >> gmake[2]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> >> gmake[1]: Leaving directory '/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp/build'
> >> -- Selected OpenCL includes from /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include;/home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5/clhpp_install/include
> >> -- Selected OpenCL lib /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libOpenCL.so
> >> -- Configuring done
> >> -- Generating done
> >> CMake Warning:
> >>    Manually-specified variables were not used by the project:
> >>
> >>      BUILD_DOC
> >>      BUILD_DOCS
> >>      BUILD_EXAMPLE
> >>      BUILD_EXAMPLES
> >>      BUILD_TEST
> >>      BUILD_TESTING
> >>      BUILD_TESTS
> >>
> >>
> >> -- Build files have been written to: /home/thomas/projets/buildroot/output/build/clpeak-0777205be1d5681d5a76d46ec94588544e8462a5
> >>
> >> Also, while note related to clpeak, I did try to build this
> >> configuration (which uses the NXP OpenCL provider):
> >>
> >> BR2_aarch64=y
> >> BR2_TOOLCHAIN_EXTERNAL=y
> >> BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
> >> BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE=y
> >> BR2_INIT_NONE=y
> >> BR2_SYSTEM_BIN_SH_NONE=y
> >> # BR2_PACKAGE_BUSYBOX is not set
> >> BR2_PACKAGE_CLPEAK=y
> >> BR2_PACKAGE_FREESCALE_IMX=y
> >> BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8=y
> >> BR2_PACKAGE_IMX_GPU_VIV=y
> >> # BR2_TARGET_ROOTFS_TAR is not set
> >>
> >> and it fails with:
> >>
> >> /home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/aarch64-buildroot-linux-gnu/9.3.0/../../../../aarch64-buildroot-linux-gnu/bin/ld: /home/thomas/projets/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib64/libGAL.so: undefined reference to `stat@GLIBC_2.33'
> >>
> >> And indeed the C library in this toolchain is glibc 2.31. So this means
> >> that the libGAL library shipped by NXP in imx-gpu-viv will only work
> >> with glibc >= 2.33.
> > Good catch again. This is quite a bummer. I will look into that when
> > time allows.
> >
> >>
> >> Best regards,
> >>
> >> Thomas
> >> --
> >> Thomas Petazzoni, CTO, Bootlin
> >> Embedded Linux and Kernel engineering
> >> https://bootlin.com
> > thanks
> > Gilles.
> > _______________________________________________
> > buildroot mailing list
> > buildroot@buildroot.org
> > https://lists.buildroot.org/mailman/listinfo/buildroot
> >
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index f864f7ef47..41cef4a442 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1034,6 +1034,7 @@  N:	Gilles Talis <gilles.talis@gmail.com>
 F:	board/freescale/imx8mmevk/
 F:	configs/freescale_imx8mmevk_defconfig
 F:	package/cctz/
+F:	package/clpeak/
 F:	package/faad2/
 F:	package/fdk-aac/
 F:	package/httping/
diff --git a/package/Config.in b/package/Config.in
index d40eb9dabc..0a7c0deea8 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -87,6 +87,7 @@  menu "Debugging, profiling and benchmark"
 	source "package/bonnie/Config.in"
 	source "package/cache-calibrator/Config.in"
 	source "package/clinfo/Config.in"
+	source "package/clpeak/Config.in"
 	source "package/coremark/Config.in"
 	source "package/coremark-pro/Config.in"
 	source "package/dacapo/Config.in"
diff --git a/package/clpeak/Config.in b/package/clpeak/Config.in
new file mode 100644
index 0000000000..6b0aeb220c
--- /dev/null
+++ b/package/clpeak/Config.in
@@ -0,0 +1,14 @@ 
+config BR2_PACKAGE_CLPEAK
+	bool "clpeak"
+	depends on BR2_PACKAGE_HAS_LIBOPENCL
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+	help
+	  clpeak is a tool that profiles OpenCL devices
+	  to find their peak capacities
+
+	  https://github.com/krrishnarraj/clpeak
+
+comment "clpeak needs an OpenCL provider, a toolchain w/ C++, gcc >= 4.8"
+	depends on !BR2_PACKAGE_HAS_LIBOPENCL \
+		|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
diff --git a/package/clpeak/clpeak.hash b/package/clpeak/clpeak.hash
new file mode 100644
index 0000000000..e0d2c1e92b
--- /dev/null
+++ b/package/clpeak/clpeak.hash
@@ -0,0 +1,3 @@ 
+# Locally computed
+sha256  1e9c3f959498253d6bb956dc786de7b3e4019264216a1781c06ae49a1d6600e5  clpeak-0777205be1d5681d5a76d46ec94588544e8462a5.tar.gz
+sha256  88d9b4eb60579c191ec391ca04c16130572d7eedc4a86daa58bf28c6e14c9bcd  LICENSE
diff --git a/package/clpeak/clpeak.mk b/package/clpeak/clpeak.mk
new file mode 100644
index 0000000000..e36170d8aa
--- /dev/null
+++ b/package/clpeak/clpeak.mk
@@ -0,0 +1,13 @@ 
+################################################################################
+#
+# clpeak
+#
+################################################################################
+
+CLPEAK_VERSION = 0777205be1d5681d5a76d46ec94588544e8462a5
+CLPEAK_SITE = $(call github,krrishnarraj,clpeak,$(CLPEAK_VERSION))
+CLPEAK_LICENSE = Unlicense
+CLPEAK_LICENSE_FILES = LICENSE
+CLPEAK_DEPENDENCIES = libopencl
+
+$(eval $(cmake-package))