Thanks! It seems that the headers can be easily shipped without much 
effort inside the inst/include/CL/, working at least for both Debian and 
Windows for now. (Updates available on 
https://github.com/Quirinms/GeneralizedUmatrixGPU/tree/main)

However, there comes another problem afterwards with a dynamic 
library/shared object (Win/Debian).

After finding the headers, following message appeared:

D:\rtools45\x86_64-w64-mingw32.static.posix\bin/ld.exe: cannot find -lOpenCL: 
No such file or directory

similar in Debian:

Error: package or namespace load failed for ‘GeneralizedUmatrixGPU’ in 
library.dynam(lib, package, package.lib):
  shared object ‘GeneralizedUmatrixGPU.so’ not found


For Windows there is more output using -lOpenCL --verbose:

g++ -std=gnu++17 -shared -s -static-libgcc -o GeneralizedUmatrixGPU.dll tmp.def 
RcppExports.o trainSESOM.o -Ld:/RCompile/CRANpkg/extralibs/OpenCL/lib/x64/ 
-lOpenCL --verbose -Ld:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64 
-Ld:/rtools45/x86_64-w64-mingw32.static.posix/lib 
-LD:/RCompile/recent/R/bin/x64 -lR
Using built-in specs.
COLLECT_GCC=D:\rtools45\x86_64-w64-mingw32.static.posix\bin\g++.exe
COLLECT_LTO_WRAPPER=D:/rtools45/x86_64-w64-mingw32.static.posix/bin/../libexec/gcc/x86_64-w64-mingw32.static.posix/14.2.0/lto-wrapper.exe
Target: x86_64-w64-mingw32.static.posix
Configured with: 
/root/mxe/tmp-gcc-host-x86_64-w64-mingw32.static.posix/gcc-14.2.0/configure 
--host=x86_64-w64-mingw32.static.posix --target=x86_64-w64-mingw32.static.posix 
--build=x86_64-pc-linux-gnu 
--prefix=/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix 
--with-native-system-header-dir=/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix/include
 --enable-languages=c,c++,objc,fortran --enable-version-specific-runtime-libs 
--with-gcc --with-gnu-ld --with-gnu-as --disable-nls --without-libiconv-prefix 
--disable-shared --disable-multilib --without-x --disable-win32-registry 
--enable-threads=posix --enable-libgomp 
--with-gmp=/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix 
--with-isl=/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix 
--with-mpc=/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix 
--with-mpfr=/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix 
--enable-libstdcxx-time target_configargs=XCFLAGS=-Wno-format 
ac_cv_header_sys_mman_h=no
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 14.2.0 (GCC)
COMPILER_PATH=D:/rtools45/x86_64-w64-mingw32.static.posix/bin/../libexec/gcc/x86_64-w64-mingw32.static.posix/14.2.0/;D:/rtools45/x86_64-w64-mingw32.static.posix/bin/../libexec/gcc/
LIBRARY_PATH=D:/rtools45/x86_64-w64-mingw32.static.posix/bin/../lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/;D:/rtools45/x86_64-w64-mingw32.static.posix/bin/../lib/gcc/;D:/rtools45/x86_64-w64-mingw32.static.posix/bin/../lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/../../../../lib/;D:/rtools45/x86_64-w64-mingw32.static.posix/bin/../lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/../../../
COLLECT_GCC_OPTIONS='-std=gnu++17' '-shared' '-s' '-static-libgcc' '-o' 
'GeneralizedUmatrixGPU.dll' '-Ld:/RCompile/CRANpkg/extralibs/OpenCL/lib/x64/' 
'-v' '-Ld:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64' 
'-Ld:/rtools45/x86_64-w64-mingw32.static.posix/lib' 
'-LD:/RCompile/recent/R/bin/x64' '-mtune=generic' '-march=x86-64' '-dumpdir' 
'GeneralizedUmatrixGPU.dll.'
  
D:/rtools45/x86_64-w64-mingw32.static.posix/bin/../libexec/gcc/x86_64-w64-mingw32.static.posix/14.2.0/collect2.exe
 -plugin 
D:/rtools45/x86_64-w64-mingw32.static.posix/bin/../libexec/gcc/x86_64-w64-mingw32.static.posix/14.2.0/liblto_plugin.dll
 
-plugin-opt=D:/rtools45/x86_64-w64-mingw32.static.posix/bin/../libexec/gcc/x86_64-w64-mingw32.static.posix/14.2.0/lto-wrapper.exe
 -plugin-opt=-fresolution=D:\temp\2025_08_29_11_20_18_14976\cc2Dbamn.res 
-plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc 
-plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt 
-plugin-opt=-pass-through=-lkernel32 -plugin-opt=-pass-through=-lpthread 
-plugin-opt=-pass-through=-ladvapi32 -plugin-opt=-pass-through=-lshell32 
-plugin-opt=-pass-through=-luser32 -plugin-opt=-pass-through=-lkernel32 
-plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc 
-plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt 
-plugin-opt=-pass-through=-lkernel32 -m i386pep --shared -Bdynamic -e 
DllMainCRTStartup --enable-auto-image-base -o GeneralizedUmatrixGPU.dll -s 
D:/rtools45/x86_64-w64-mingw32.static.posix/bin/../lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/../../../../lib/dllcrt2.o
 
D:/rtools45/x86_64-w64-mingw32.static.posix/bin/../lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/crtbegin.o
 -Ld:/RCompile/CRANpkg/extralibs/OpenCL/lib/x64/ 
-Ld:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64 
-Ld:/rtools45/x86_64-w64-mingw32.static.posix/lib 
-LD:/RCompile/recent/R/bin/x64 
-LD:/rtools45/x86_64-w64-mingw32.static.posix/bin/../lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0
 -LD:/rtools45/x86_64-w64-mingw32.static.posix/bin/../lib/gcc 
-LD:/rtools45/x86_64-w64-mingw32.static.posix/bin/../lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/../../../../lib
 
-LD:/rtools45/x86_64-w64-mingw32.static.posix/bin/../lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/../../..
 tmp.def RcppExports.o trainSESOM.o -lOpenCL -lR -lstdc++ -lmingw32 -lgcc 
-lmingwex -lmsvcrt -lkernel32 -lpthread -ladvapi32 -lshell32 -luser32 
-lkernel32 -lmingw32 -lgcc -lmingwex -lmsvcrt -lkernel32 
D:/rtools45/x86_64-w64-mingw32.static.posix/bin/../lib/gcc/x86_64-w64-mingw32.static.posix/14.2.0/crtend.o
D:\rtools45\x86_64-w64-mingw32.static.posix\bin/ld.exe: cannot find -lOpenCL: 
No such file or directory
collect2.exe: error: ld returned 1 exit status
no DLL was created
ERROR: compilation failed for package 'GeneralizedUmatrixGPU'



Am 28.08.2025 um 15:31 schrieb Dirk Eddelbuettel:
> On 28 August 2025 at 13:25, quirin stier wrote:
> | 
> D:/RCompile/CRANincoming/R-devel/lib/RcppArmadillo/include/current/armadillo_bits/config.hpp:373:72:
>  note: '#pragma message: NOTE: option ARMA_CRIPPLED_LAPACK is not supported'
>
> That is a side effect from CRAN and me trying to figure out how to accomodate
> breaking changes in the new Armadillo upstream. Ignore this for now, this is
> a likely side-effect of a tested version being on the CRAN machine when this
> ran. The released RcppArmadillo will not trigger ut,
>
>
>
> | * installing *source* package ‘GeneralizedUmatrixGPU’ ...
> | ** this is package ‘GeneralizedUmatrixGPU’ version ‘0.0.1’
> | ** using staged installation
> | ** libs
> | using C++ compiler: ‘Debian clang version 19.1.7 (3+b2)’
> | clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R/include" -DNDEBUG  
> -I'/home/hornik/lib/R/Library/4.6/x86_64-linux-gnu/Rcpp/include' 
> -I'/home/hornik/lib/R/Library/4.6/x86_64-linux-gnu/RcppArmadillo/include' 
> -I'/home/hornik/lib/R/Library/4.6/x86_64-linux-gnu/RcppParallel/include' 
> -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3   -fpic  
> -g -O3 -Wall -pedantic -Wno-missing-template-arg-list-after-template-kw 
> -Wdeprecated-literal-operator  -c RcppExports.cpp -o RcppExports.o
> | clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R/include" -DNDEBUG  
> -I'/home/hornik/lib/R/Library/4.6/x86_64-linux-gnu/Rcpp/include' 
> -I'/home/hornik/lib/R/Library/4.6/x86_64-linux-gnu/RcppArmadillo/include' 
> -I'/home/hornik/lib/R/Library/4.6/x86_64-linux-gnu/RcppParallel/include' 
> -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3   -fpic  
> -g -O3 -Wall -pedantic -Wno-missing-template-arg-list-after-template-kw 
> -Wdeprecated-literal-operator  -c trainSESOM.cpp -o trainSESOM.o
> | In file included from trainSESOM.cpp:2:
> | ./ocl.h:9:10: fatal error: 'CL/cl.hpp' file not found
> |      9 | #include <CL/cl.hpp>
> |        |          ^~~~~~~~~~~
> | 1 error generated.
> | make: *** [/home/hornik/tmp/R/etc/Makeconf:209: trainSESOM.o] Error 1
> | ERROR: compilation failed for package ‘GeneralizedUmatrixGPU’
> | * removing 
> *‘/srv/hornik/tmp/CRAN_pretest/GeneralizedUmatrixGPU.Rcheck/GeneralizedUmatrixGPU’
>
> Do you ensure the CL headers are installed?  On Debian these come for example
> from package opencl-clhpp-headers [1] (but you have no general control over 
> what
> is installed).  At least package gpuR ships it for R, and you check how few
> other packages test for this via a search at github.org/cran (a mirror) [2].
>
> It looks to me like you need to take better care of the 'configure does not
> find cl.hpp' case (and you need to add logic to your package to have that 
> test).
>
> Dirk
>
> [1]https://packages.debian.org/search?searchon=contents&keywords=CL%2Fcl.hpp&mode=path&suite=unstable&arch=any
> [2]https://github.com/search?q=org%3Acran%20CL%2Fcl.hpp&type=code
>

        [[alternative HTML version deleted]]

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to