Commit 89b8c7c
committed
fix the shared tbb link on rtools42 and aarch64 windows
Two failures from the first CI run, both only reachable now that TBB is linked
as a shared library on Windows -- a static build has no link step.
Rtools42 (gcc 10): the TBB link failed with undefined references to
__stack_chk_fail, __strncpy_chk and __strncat_chk. TBB compiles with
-fstack-protector-strong and _FORTIFY_SOURCE, and on mingw those helpers live
in libssp rather than libgcc; newer toolchains pull it in implicitly, Rtools42
does not. Pass -lssp via CMAKE_SHARED_LINKER_FLAGS, mirroring the -lssp that
configure.R already adds for RcppParallel's own link.
aarch64 Windows: 'lld: error: unknown argument: -z'. Rtools45-aarch64 drives
clang with lld, and Clang.cmake adds -Wl,-z,relro,-z,now for any non-Apple
target. GNU.cmake already guards this with NOT MINGW; give Clang.cmake the
equivalent guard.
windows-latest (release) passed on the first run, so the shared mingw build,
the PREFIX "" naming and the reordered load in .onLoad() all work.1 parent 514d22f commit 89b8c7c
3 files changed
Lines changed: 29 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
315 | 315 | | |
316 | 316 | | |
317 | 317 | | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
318 | 324 | | |
319 | 325 | | |
320 | 326 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
68 | | - | |
69 | | - | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
70 | 74 | | |
71 | 75 | | |
72 | 76 | | |
| |||
0 commit comments