On 10/07/2024 15.58, Nilesh Patra wrote:
On Wed, Jul 10, 2024 at 12:14:05PM +0200, Michael R. Crusoe wrote:
I upgraded r-bioc-rhdf5lib from 1.24.2 to 1.26.0 in the "debian/experimental" 
branch on salsa.

https://salsa.debian.org/r-pkg-team/r-bioc-rhdf5lib/-/tree/debian/experimental?ref_type=heads

However when I try to build other packages using the resulting "r-bioc-rhd5lib" 
binary package, I get the following build errors:

# From r-bioc-alabaster.base 
https://salsa.debian.org/r-pkg-team/r-bioc-alabaster.base
g++ -std=gnu++17 -shared -L/usr/lib/R/lib -Wl,-z,relro -o alabaster.base.so 
RcppExports.o check_csv.o check_list.o choose_numeric_missing_placeholder.o 
is_rfc3339.o load_csv.o load_list.o validate.o 
/usr/lib/R/site-library/Rhdf5lib/libs/libhdf5_cpp.a 
/usr/lib/R/site-library/Rhdf5lib/libs/libhdf5.a -lcrypto -lcurl -lpthread -lsz 
-lz -ldl -lm -lz -L/usr/lib/R/lib -lR
/usr/bin/ld: cannot find /usr/lib/R/site-library/Rhdf5lib/libs/libhdf5_cpp.a: 
No such file or directory
/usr/bin/ld: cannot find /usr/lib/R/site-library/Rhdf5lib/libs/libhdf5.a: No 
such file or directory
collect2: error: ld returned 1 exit status

Can I get some help with this?

Please push any fixes directly to the "debian/experimental" branch on Salsa and 
let me know, thank you!

I don't have the time to write a patch/hack around this right now, but I
understood what the issue is and it should be relatively easy to fix.

alabaster.base used Rhdf5lib::pkgconfig("PKG_CXX_LIBS") to get the linker flags
for Rhdf5 lib as can be see here[1]

This has been set to an incorrect value as per the debian installed package[2].
It points to a path that does not exist since we are using hdf5 packaged in
debian instead of building and using embedded copies.

Patching the code to point to the correct path should fix the issue for you.

Thank you, Nilesh, that got me further!

With 
https://salsa.debian.org/r-pkg-team/r-bioc-rhdf5lib/-/commit/13333ce8837d34d244f60b4a26469ba378babcb0
I get

g++ -std=gnu++17 -shared -L/usr/lib/R/lib -Wl,-z,relro -o alabaster.base.so 
RcppExports.o check_csv.o check_list.o choose_numeric_missing_placeholder.o 
is_rfc3339.o load_csv.o load_list.o validate.o 
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_cpp.a 
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.a -lcrypto -lcurl -lpthread -lsz 
-lz -ldl -lm -lz -L/usr/lib/R/lib -lR
/usr/bin/ld: 
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_cpp.a(H5Exception.o): warning: 
relocation against `_ZTVN2H518DataTypeIExceptionE' in read-only section `.text'
/usr/bin/ld: 
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_cpp.a(H5Exception.o): relocation 
R_X86_64_PC32 against symbol `_ZTVN2H59ExceptionE' can not be used when making 
a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[1]: *** [/usr/share/R/share/make/shlib.mk:10: alabaster.base.so] Error 1


For building r-bioc-alabaster.base, feel free to use the bioc-3.19 test 
packages I've been making: https://people.debian.org/~crusoe/bioc/

--
Michael R. Crusoe

[1]: 
https://salsa.debian.org/r-pkg-team/r-bioc-alabaster.base/-/blob/master/src/Makevars?ref_type=heads#L1
[2]: 
https://salsa.debian.org/r-pkg-team/r-bioc-rhdf5lib/-/blob/debian/experimental/R/zzz.R?ref_type=heads#L73

Best,
Nilesh

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to