-
Notifications
You must be signed in to change notification settings - Fork 177
Closed
Labels
Type: bugSomething isn't workingSomething isn't working
Description
What happened?
As per email from CRAN, there's a missing symbol in the M1Mac check machine compile. I wonder if this is related to a C++ standard.
dlopen(/Users/ripley/R/packages/tests-devel/adbcdrivermanager.Rcheck/00LOCK-adbcdrivermanager/00new/adbcdrivermanager/libs/adbcdrivermanager.so, 0x0006): Symbol not found: __ZNSt3__113__hash_memoryEPKvm
From the email:
The M1mac issue is from Apple clang 21, part of CLT 26.4
Details
https://www.stats.ox.ac.uk/pub/bdr/M1mac/adbcdrivermanager.log
* installing *source* package ‘adbcdrivermanager’ ...
** this is package ‘adbcdrivermanager’ version ‘0.22.0’
** package ‘adbcdrivermanager’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
specified C++17
using C compiler: ‘Apple clang version 21.0.0 (clang-2100.0.121.2)’
using C++ compiler: ‘Apple clang version 21.0.0 (clang-2100.0.121.2)’
using C++17
using SDK: ‘MacOSX26.4.sdk’
clang++ -mmacos-version-min=26 -std=gnu++17 -I"/Users/ripley/R/R-devel/include" -DNDEBUG -I../src/c/include -I../src/c -I../src/c/vendor -DADBC_EXPORT="" -D_LIBCPP_DISABLE_AVAILABILITY -DADBC_CONDA_BUILD="0" -isystem /opt/R/arm64/include -fPIC -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -c driver_test.cc -o driver_test.o
clang++ -mmacos-version-min=26 -std=gnu++17 -I"/Users/ripley/R/R-devel/include" -DNDEBUG -I../src/c/include -I../src/c -I../src/c/vendor -DADBC_EXPORT="" -D_LIBCPP_DISABLE_AVAILABILITY -DADBC_CONDA_BUILD="0" -isystem /opt/R/arm64/include -fPIC -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -c error.cc -o error.o
In file included from error.cc:26:
./radbc.h:177:16: warning: implicit conversion turns floating-point number into integer: 'double' to 'int' [-Wfloat-conversion]
177 | return value;
| ~~~~~~ ^~~~~
./radbc.h:234:16: warning: implicit conversion turns floating-point number into integer: 'double' to 'int64_t' (aka 'long long') [-Wfloat-conversion]
234 | return value;
| ~~~~~~ ^~~~~
./radbc.h:322:21: warning: implicit conversion turns floating-point number into integer: 'double' to 'int' [-Wfloat-conversion]
322 | result[i] = item;
| ~ ^~~~
./radbc.h:339:47: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
339 | SEXP status_sexp = PROTECT(adbc_wrap_status(code));
| ~~~~~~~~~~~~~~~~ ^~~~
error.cc:128:43: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
128 | const char* msg = AdbcStatusCodeMessage(status);
| ~~~~~~~~~~~~~~~~~~~~~ ^~~~~~
5 warnings generated.
clang -mmacos-version-min=26 -std=gnu23 -I"/Users/ripley/R/R-devel/include" -DNDEBUG -I../src/c/include -I../src/c -I../src/c/vendor -DADBC_EXPORT="" -D_LIBCPP_DISABLE_AVAILABILITY -DADBC_CONDA_BUILD="0" -isystem /opt/R/arm64/include -fPIC -falign-functions=8 -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -Wstrict-prototypes -c init.c -o init.o
clang++ -mmacos-version-min=26 -std=gnu++17 -I"/Users/ripley/R/R-devel/include" -DNDEBUG -I../src/c/include -I../src/c -I../src/c/vendor -DADBC_EXPORT="" -D_LIBCPP_DISABLE_AVAILABILITY -DADBC_CONDA_BUILD="0" -isystem /opt/R/arm64/include -fPIC -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -c options.cc -o options.o
In file included from options.cc:24:
./radbc.h:177:16: warning: implicit conversion turns floating-point number into integer: 'double' to 'int' [-Wfloat-conversion]
177 | return value;
| ~~~~~~ ^~~~~
./radbc.h:234:16: warning: implicit conversion turns floating-point number into integer: 'double' to 'int64_t' (aka 'long long') [-Wfloat-conversion]
234 | return value;
| ~~~~~~ ^~~~~
./radbc.h:322:21: warning: implicit conversion turns floating-point number into integer: 'double' to 'int' [-Wfloat-conversion]
322 | result[i] = item;
| ~ ^~~~
./radbc.h:339:47: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
339 | SEXP status_sexp = PROTECT(adbc_wrap_status(code));
| ~~~~~~~~~~~~~~~~ ^~~~
options.cc:65:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
65 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
options.cc:170:26: warning: implicit conversion from 'int64_t' (aka 'long long') to 'double' may lose precision [-Wimplicit-int-float-conversion]
170 | return Rf_ScalarReal(value);
| ~~~~~~~~~~~~~ ^~~~~
options.cc:172:29: warning: implicit conversion loses integer precision: 'int64_t' (aka 'long long') to 'int' [-Wshorten-64-to-32]
172 | return Rf_ScalarInteger(value);
| ~~~~~~~~~~~~~~~~ ^~~~~
options.cc:65:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
65 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
options.cc:75:14: note: in instantiation of function template specialization 'adbc_set_option_bytes<AdbcDatabase>' requested here
75 | return adbc_set_option_bytes<AdbcDatabase>(database_xptr, key_sexp, value_sexp,
| ^
options.cc:65:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
65 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
options.cc:95:14: note: in instantiation of function template specialization 'adbc_set_option_bytes<AdbcConnection>' requested here
95 | return adbc_set_option_bytes<AdbcConnection>(connection_xptr, key_sexp, value_sexp,
| ^
options.cc:65:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
65 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
options.cc:117:14: note: in instantiation of function template specialization 'adbc_set_option_bytes<AdbcStatement>' requested here
117 | return adbc_set_option_bytes<AdbcStatement>(
| ^
10 warnings generated.
clang++ -mmacos-version-min=26 -std=gnu++17 -I"/Users/ripley/R/R-devel/include" -DNDEBUG -I../src/c/include -I../src/c -I../src/c/vendor -DADBC_EXPORT="" -D_LIBCPP_DISABLE_AVAILABILITY -DADBC_CONDA_BUILD="0" -isystem /opt/R/arm64/include -fPIC -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -c radbc.cc -o radbc.o
In file included from radbc.cc:29:
./radbc.h:177:16: warning: implicit conversion turns floating-point number into integer: 'double' to 'int' [-Wfloat-conversion]
177 | return value;
| ~~~~~~ ^~~~~
./radbc.h:234:16: warning: implicit conversion turns floating-point number into integer: 'double' to 'int64_t' (aka 'long long') [-Wfloat-conversion]
234 | return value;
| ~~~~~~ ^~~~~
./radbc.h:322:21: warning: implicit conversion turns floating-point number into integer: 'double' to 'int' [-Wfloat-conversion]
322 | result[i] = item;
| ~ ^~~~
./radbc.h:339:47: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
339 | SEXP status_sexp = PROTECT(adbc_wrap_status(code));
| ~~~~~~~~~~~~~~~~ ^~~~
radbc.cc:237:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
237 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:306:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
306 | return adbc_wrap_status(result);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:317:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
317 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:332:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
332 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:356:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
356 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:371:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
371 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:381:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
381 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:395:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
395 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:389:32: warning: implicit conversion loses integer precision: 'R_xlen_t' (aka 'long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
389 | uint32_t serialized_length = Rf_xlength(serialized_partition_sexp);
| ~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
radbc.cc:402:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
402 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:409:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
409 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:416:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
416 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:426:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
426 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:443:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
443 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:510:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
510 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:520:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
520 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:531:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
531 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:538:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
538 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:548:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
548 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:559:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
559 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:569:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
569 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:590:47: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
590 | SEXP status_sexp = PROTECT(adbc_wrap_status(status));
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:594:51: warning: implicit conversion from 'int64_t' (aka 'long long') to 'double' may lose precision [-Wimplicit-int-float-conversion]
594 | SEXP rows_affected_sexp = PROTECT(Rf_ScalarReal(rows_affected));
| ~~~~~~~~~~~~~ ^~~~~~~~~~~~~
radbc.cc:607:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
607 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
radbc.cc:619:27: warning: implicit conversion loses integer precision: 'int' to 'AdbcStatusCode' (aka 'unsigned char') [-Wimplicit-int-conversion]
619 | return adbc_wrap_status(status);
| ~~~~~~~~~~~~~~~~ ^~~~~~
29 warnings generated.
clang -mmacos-version-min=26 -std=gnu23 -I"/Users/ripley/R/R-devel/include" -DNDEBUG -I../src/c/include -I../src/c -I../src/c/vendor -DADBC_EXPORT="" -D_LIBCPP_DISABLE_AVAILABILITY -DADBC_CONDA_BUILD="0" -isystem /opt/R/arm64/include -fPIC -falign-functions=8 -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -Wstrict-prototypes -c utils.c -o utils.o
clang++ -mmacos-version-min=26 -std=gnu++17 -I"/Users/ripley/R/R-devel/include" -DNDEBUG -I../src/c/include -I../src/c -I../src/c/vendor -DADBC_EXPORT="" -D_LIBCPP_DISABLE_AVAILABILITY -DADBC_CONDA_BUILD="0" -isystem /opt/R/arm64/include -fPIC -g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion -c c/driver_manager/adbc_driver_manager.cc -o c/driver_manager/adbc_driver_manager.o
clang++ -mmacos-version-min=26 -std=gnu++17 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -L/Users/ripley/R/R-devel/lib -L/opt/R/arm64/lib -o adbcdrivermanager.so driver_test.o error.o init.o options.o radbc.o utils.o c/driver_manager/adbc_driver_manager.o -L/Users/ripley/R/R-devel/lib -lR
installing to /Users/ripley/R/packages/tests-devel/adbcdrivermanager.Rcheck/00LOCK-adbcdrivermanager/00new/adbcdrivermanager/libs
** R
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
Error: package or namespace load failed for ‘adbcdrivermanager’ in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/Users/ripley/R/packages/tests-devel/adbcdrivermanager.Rcheck/00LOCK-adbcdrivermanager/00new/adbcdrivermanager/libs/adbcdrivermanager.so':
dlopen(/Users/ripley/R/packages/tests-devel/adbcdrivermanager.Rcheck/00LOCK-adbcdrivermanager/00new/adbcdrivermanager/libs/adbcdrivermanager.so, 0x0006): Symbol not found: __ZNSt3__113__hash_memoryEPKvm
Referenced from: <8AAC7FF3-D69F-3F6C-B577-795A294EAD83> /Users/ripley/R/packages/tests-devel/adbcdrivermanager.Rcheck/00LOCK-adbcdrivermanager/00new/adbcdrivermanager/libs/adbcdrivermanager.so
Expected in: <2DCB82A8-F83C-3656-B99E-B22415EA2AAA> /usr/lib/libc++.1.dylib
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/Users/ripley/R/packages/tests-devel/adbcdrivermanager.Rcheck/adbcdrivermanager’
Stack Trace
No response
How can we reproduce the bug?
No response
Environment/Setup
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type: bugSomething isn't workingSomething isn't working