Commit de75c55
authored
resolve the tbb library path against the installed package on windows (#273)
tbbLibraryPath() returned NULL on Windows (#270).
The cause is the set of filenames it looks for: the static archives
'libtbb12.a' and 'libtbb.a'. Neither is ever installed with the package. TBB
is linked statically into RcppParallel.dll on Windows, and the only TBB
library installed alongside it is the tbb.dll stub, so look for that first.
The archives are kept as later candidates, for a TBB_LIB pointed at an Rtools
tree at runtime.
Note this is not the TBB_LIB problem the report proposed, though the report is
right that TBB_LIB is also wrong here. The archive lookup fails even when the
search directory is correct: a bundled-oneTBB build records no TBB_LIB, so
tbbRoot() already answered with the package's own lib directory, and
tbbLibraryPath("tbb") still returned NULL. The lookup only ever succeeded when
the package happened to run on the machine that built it against an Rtools TBB
-- and then answered with a path into Rtools, a build dependency, rather than
with anything the installed package uses.
Separately, tbbLibraryPath(NULL) and tbbRoot() return the search directory
itself, with no existence check, so there the configure-time TBB_LIB really
was the defect: for a pre-built binary it names a directory on the build
machine ('D:/rtools45/...' in the report). Answer with our own library
directory on Windows instead. This is already how tbbLdFlags() and
loadTbbLibrary() behave; tbbRoot() was the last place trusting TBB_LIB.
Scoped to Windows deliberately. Off Windows a configured TBB_LIB names where
the libraries genuinely are -- the package symlinks them into its own lib
directory rather than copying -- and tbbLdFlags() emits it as an -rpath.
tbbLibraryPath("tbbmalloc") now returns NULL on Windows, which is honest: no
separate tbbmalloc library is installed there.1 parent 69dac53 commit de75c55
4 files changed
Lines changed: 105 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
11 | 29 | | |
12 | 30 | | |
13 | 31 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
25 | 29 | | |
26 | 30 | | |
27 | | - | |
| 31 | + | |
28 | 32 | | |
29 | 33 | | |
30 | 34 | | |
| |||
146 | 150 | | |
147 | 151 | | |
148 | 152 | | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
149 | 162 | | |
150 | 163 | | |
151 | 164 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
25 | | - | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
| 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 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
0 commit comments