R builds RSQLite
package succesfully, but unable to load during test stage.
Error: package or namespace load failed for ‘RSQLite’ in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/app/R/site-library/00LOCK-RSQLite/00new/RSQLite/libs/RSQLite.so':
/app/R/site-library/00LOCK-RSQLite/00new/RSQLite/libs/RSQLite.so: undefined symbol: stat64
Error: loading failed
Error is undefined symbol: stat64
which means RSQLite.so
is referencing a non-exported symbol, possibly from libc
.
Turn off package load test:
install.packages("RSQLite", INSTALL_opts=c("--no-test-load"))
git push heroku main
Build log excerpt:
...
remote:
remote: * installing *source* package ‘RSQLite’ ...
remote: ** package ‘RSQLite’ successfully unpacked and MD5 sums checked
remote: ** using staged installation
remote: ** libs
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c DbColumn.cpp -o DbColumn.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c DbColumnDataSource.cpp -o DbColumnDataSource.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c DbColumnDataSourceFactory.cpp -o DbColumnDataSourceFactory.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c DbColumnStorage.cpp -o DbColumnStorage.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c DbConnection.cpp -o DbConnection.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c DbDataFrame.cpp -o DbDataFrame.o
remote: In file included from DbDataFrame.cpp:7:0:
remote: vendor/boost/bind.hpp:41:1: note: #pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.
remote: )
remote: ^
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c DbResult.cpp -o DbResult.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c RcppExports.cpp -o RcppExports.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c SqliteColumnDataSource.cpp -o SqliteColumnDataSource.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c SqliteColumnDataSourceFactory.cpp -o SqliteColumnDataSourceFactory.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c SqliteDataFrame.cpp -o SqliteDataFrame.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c SqliteResult.cpp -o SqliteResult.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c SqliteResultImpl.cpp -o SqliteResultImpl.o
remote: gcc -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c affinity.c -o affinity.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c connection.cpp -o connection.o
remote: gcc -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c extension-functions.c -o extension-functions.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c extensions.cpp -o extensions.o
remote: gcc -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c import-file.c -o import-file.o
remote: gcc -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c regexp.c -o regexp.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c result.cpp -o result.o
remote: g++ -std=gnu++11 -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c rsqlite.cpp -o rsqlite.o
remote: gcc -I"/app/R/lib/R/include" -DNDEBUG -I. -Ivendor -DRSQLITE_USE_BUNDLED_SQLITE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_SOUNDEX -DRCPP_DEFAULT_INCLUDE_CALL=false -DRCPP_USING_UTF8_ERROR_STRING -DBOOST_NO_AUTO_PTR -DSQLITE_MAX_LENGTH=2147483647 -DHAVE_USLEEP=1 -I'/app/R/site-library/plogr/include' -I'/app/R/site-library/Rcpp/include' -I/usr/local/include -fvisibility=hidden -fpic -g -O2 -c vendor/sqlite3/sqlite3.c -o vendor/sqlite3/sqlite3.o
remote: g++ -std=gnu++11 -shared -L/app/R/lib/R/lib -L/usr/local/lib -o RSQLite.so DbColumn.o DbColumnDataSource.o DbColumnDataSourceFactory.o DbColumnStorage.o DbConnection.o DbDataFrame.o DbResult.o RcppExports.o SqliteColumnDataSource.o SqliteColumnDataSourceFactory.o SqliteDataFrame.o SqliteResult.o SqliteResultImpl.o affinity.o connection.o extension-functions.o extensions.o import-file.o regexp.o result.o rsqlite.o vendor/sqlite3/sqlite3.o -L/app/R/lib/R/lib -lR
remote: installing to /app/R/site-library/00LOCK-RSQLite/00new/RSQLite/libs
remote: ** R
remote: ** inst
remote: ** byte-compile and prepare package for lazy loading
remote: ** help
remote: *** installing help indices
remote: ** building package indices
remote: ** installing vignettes
remote: ** checking absolute paths in shared objects and dynamic libraries
remote: * DONE (RSQLite)
...
Now get a console to inspect the slug:
heroku run /bin/bash
Check package outputs:
ls -ahl R/site-library/RSQLite/libs
Inspect RSQLite.so
shared library:
ldd R/site-library/RSQLite/libs/RSQLite.so
linux-vdso.so.1 (0x00007ffdef853000)
libR.so => /app/R/lib/R/lib/libR.so (0x00007fc5fc095000)
libstdc++.so.6 => /app/R/lib/R/lib/libstdc++.so.6 (0x00007fc5fbd0c000)
libm.so.6 => /app/R/lib/R/lib/libm.so.6 (0x00007fc5fb96e000)
libgcc_s.so.1 => /app/R/lib/R/lib/libgcc_s.so.1 (0x00007fc5fb756000)
libc.so.6 => /app/R/lib/R/lib/libc.so.6 (0x00007fc5fb365000)
libblas.so.3 => /app/R/lib/R/lib/libblas.so.3 (0x00007fc5fb10a000)
libreadline.so.7 => /app/R/lib/R/lib/libreadline.so.7 (0x00007fc5faec1000)
libpcre2-8.so.0 => /app/R/lib/R/lib/libpcre2-8.so.0 (0x00007fc5fac3f000)
liblzma.so.5 => /app/R/lib/R/lib/liblzma.so.5 (0x00007fc5faa19000)
libbz2.so.1.0 => /app/R/lib/R/lib/libbz2.so.1.0 (0x00007fc5fa809000)
libz.so.1 => /app/R/lib/R/lib/libz.so.1 (0x00007fc5fa5ec000)
librt.so.1 => /app/R/lib/R/lib/librt.so.1 (0x00007fc5fa3e4000)
libdl.so.2 => /app/R/lib/R/lib/libdl.so.2 (0x00007fc5fa1e0000)
libicuuc.so.60 => /app/R/lib/R/lib/libicuuc.so.60 (0x00007fc5f9e28000)
libicui18n.so.60 => /app/R/lib/R/lib/libicui18n.so.60 (0x00007fc5f9987000)
libgomp.so.1 => /app/R/lib/R/lib/libgomp.so.1 (0x00007fc5f9758000)
libpthread.so.0 => /app/R/lib/R/lib/libpthread.so.0 (0x00007fc5f9539000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc5fcaa7000)
libopenblas.so.0 => /app/R/lib/R/lib/libopenblas.so.0 (0x00007fc5f7293000)
libtinfo.so.5 => /app/R/lib/R/lib/libtinfo.so.5 (0x00007fc5f7069000)
libicudata.so.60 => /app/R/lib/R/lib/libicudata.so.60 (0x00007fc5f54c0000)
libgfortran.so.4 => /app/R/lib/R/lib/libgfortran.so.4 (0x00007fc5f50e1000)
libquadmath.so.0 => /app/R/lib/R/lib/libquadmath.so.0 (0x00007fc5f4ea1000)
readelf -d R/site-library/RSQLite/libs/RSQLite.so
Dynamic section at offset 0x16ac68 contains 28 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libR.so]
0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
...
nm -D R/site-library/RSQLite/libs/RSQLite.so | grep stat
...
U _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode
U _ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate
U fstat64
U lstat64
U stat64
...
LD_DEBUG=symbols R --no-save -e "library(RSQLite)" 2> symbols.log
cat symbols.log | grep stat64
133: symbol=__xstat64; lookup in file=sh [0]
133: symbol=__xstat64; lookup in file=/app/R/lib/R/lib/libc.so.6 [0]
133: symbol=__fxstat64; lookup in file=sh [0]
133: symbol=__fxstat64; lookup in file=/app/R/lib/R/lib/libc.so.6 [0]
133: symbol=__lxstat64; lookup in file=sh [0]
133: symbol=__lxstat64; lookup in file=/app/R/lib/R/lib/libc.so.6 [0]
135: symbol=__xstat64; lookup in file=sh [0]
135: symbol=__xstat64; lookup in file=/app/R/lib/R/lib/libc.so.6 [0]
135: symbol=__fxstat64; lookup in file=sh [0]
135: symbol=__fxstat64; lookup in file=/app/R/lib/R/lib/libc.so.6 [0]
135: symbol=__lxstat64; lookup in file=sh [0]
135: symbol=__lxstat64; lookup in file=/app/R/lib/R/lib/libc.so.6 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/bin/exec/R [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libR.so [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libc.so.6 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libblas.so.3 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libm.so.6 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libreadline.so.7 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libpcre2-8.so.0 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/liblzma.so.5 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libbz2.so.1.0 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libz.so.1 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/librt.so.1 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libdl.so.2 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libicuuc.so.60 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libicui18n.so.60 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libgomp.so.1 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libpthread.so.0 [0]
117: symbol=stat64; lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libopenblas.so.0 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libtinfo.so.5 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libicudata.so.60 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libstdc++.so.6 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libgcc_s.so.1 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libgfortran.so.4 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libquadmath.so.0 [0]
117: symbol=stat64; lookup in file=/app/R/site-library/RSQLite/libs/RSQLite.so [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libR.so [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libstdc++.so.6 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libm.so.6 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libgcc_s.so.1 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libc.so.6 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libblas.so.3 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libreadline.so.7 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libpcre2-8.so.0 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/liblzma.so.5 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libbz2.so.1.0 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libz.so.1 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/librt.so.1 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libdl.so.2 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libicuuc.so.60 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libicui18n.so.60 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libgomp.so.1 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libpthread.so.0 [0]
117: symbol=stat64; lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libopenblas.so.0 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libtinfo.so.5 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libicudata.so.60 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libgfortran.so.4 [0]
117: symbol=stat64; lookup in file=/app/R/lib/R/lib/libquadmath.so.0 [0]
117: /app/R/site-library/RSQLite/libs/RSQLite.so: error: symbol lookup error: undefined symbol: stat64 (fatal)
/app/R/site-library/RSQLite/libs/RSQLite.so: undefined symbol: stat64
137: symbol=__xstat64; lookup in file=sh [0]
137: symbol=__xstat64; lookup in file=/app/R/lib/R/lib/libc.so.6 [0]
137: symbol=__fxstat64; lookup in file=sh [0]
137: symbol=__fxstat64; lookup in file=/app/R/lib/R/lib/libc.so.6 [0]
137: symbol=__lxstat64; lookup in file=sh [0]
137: symbol=__lxstat64; lookup in file=/app/R/lib/R/lib/libc.so.6 [0]
...
LD_DEBUG=bindings R --no-save -e "library(RSQLite)" 2> bindings.log
cat bindings.log | grep stat64
23: binding file sh [0] to /app/R/lib/R/lib/libc.so.6 [0]: normal symbol `__xstat64' [GLIBC_2.2.5]
23: binding file sh [0] to /app/R/lib/R/lib/libc.so.6 [0]: normal symbol `__fxstat64' [GLIBC_2.2.5]
23: binding file sh [0] to /app/R/lib/R/lib/libc.so.6 [0]: normal symbol `__lxstat64' [GLIBC_2.2.5]
25: binding file sh [0] to /app/R/lib/R/lib/libc.so.6 [0]: normal symbol `__xstat64' [GLIBC_2.2.5]
25: binding file sh [0] to /app/R/lib/R/lib/libc.so.6 [0]: normal symbol `__fxstat64' [GLIBC_2.2.5]
25: binding file sh [0] to /app/R/lib/R/lib/libc.so.6 [0]: normal symbol `__lxstat64' [GLIBC_2.2.5]
7: /app/R/site-library/RSQLite/libs/RSQLite.so: error: symbol lookup error: undefined symbol: stat64 (fatal)
/app/R/site-library/RSQLite/libs/RSQLite.so: undefined symbol: stat64
27: binding file sh [0] to /app/R/lib/R/lib/libc.so.6 [0]: normal symbol `__xstat64' [GLIBC_2.2.5]
27: binding file sh [0] to /app/R/lib/R/lib/libc.so.6 [0]: normal symbol `__fxstat64' [GLIBC_2.2.5]
27: binding file sh [0] to /app/R/lib/R/lib/libc.so.6 [0]: normal symbol `__lxstat64' [GLIBC_2.2.5]
Inspect libc.so.6
:
nm -D R/lib/R/lib/libc.so.6 | grep stat64
000000000010f8c0 T __fxstat64
000000000010f910 T __lxstat64
000000000010f870 T __xstat64
Inspecting RSQLite.so
on a working setup:
docker run -it r-base:4.0.0 /bin/bash
R --no-save -e 'install.packages("RSQLite")'
nm -D /usr/local/lib/R/site-library/RSQLite/libs/RSQLite.so | grep stat
U __fxstat64
U __lxstat64
U __xstat64
U _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode
U _ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate
Why isn't RSQLite.so
importing __xstat64
instead of stat64
?
stat64(2) - Linux man page vs xstat64 - Large file support
Need to debug the build process, when RSQLite.so
is created.