[R-pkg-devel] long user + system time with CRAN special checks clang 19
Tomas Kalibera
tom@@@k@||ber@ @end|ng |rom gm@||@com
Fri Dec 20 13:45:14 CET 2024
On 12/20/24 10:04, Ivan Krylov via R-package-devel wrote:
> В Fri, 20 Dec 2024 11:30:04 +0300
> Ivan Krylov via R-package-devel <r-package-devel using r-project.org> пишет:
>
>> Unfortunately, it's still a puzzle why the function
>> tesseract::TessBaseAPI::GetVariableAsString(char const*, std::string*)
>> const fails to load from libtesseract.
> That's because libtesseract.so is linked to a different C++ standard
> library. Compare:
>
>> undefined symbol:
>> _ZNK9tesseract11TessBaseAPI19GetVariableAsStringEPKcPNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE
> c++filt says it's:
>
> tesseract::TessBaseAPI::GetVariableAsString(char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) const
>
> The symbol actually exported by libtesseract.so is named differently:
>
> $ nm -gDP /usr/lib/x86_64-linux-gnu/libtesseract.so.5 | grep GetVariableAsString
> _ZNK9tesseract11TessBaseAPI19GetVariableAsStringEPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T a4f40 16
>
> c++filt says:
>
> tesseract::TessBaseAPI::GetVariableAsString(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const
>
> What should a package do when it's compiled by clang++ with the libc++
> headers and library, but all system dependencies had been compiled with
> g++ and linked with libstdc++? How to check packages using the clang
> compiler without compiling the rest of the system from source using
> clang? How do other C++ packages solve this problem?
It would say it is the responsibility of the check system/machine that
the toolchain and the libraries used to build R packages are compatible,
so also use the same C++ library. There is nothing R packages should do
about this. R packages only need to make sure their code is portable and
that they do not download any pre-compiled code.
Tomas
>
More information about the R-package-devel
mailing list