Commit 3138398
committed
don't redeclare the legacy observer classes in the tbb stub
The bundled oneTBB carries a local 'provided for backwards compatibility'
block declaring tbb::internal::task_scheduler_observer_v3 and
tbb::interface6::task_scheduler_observer (added in c276b03; not upstream).
tbb-compat.cpp declares them too, which was fine while the stub was only
ever built against the pristine headers Rtools ships -- but building the
bundled oneTBB on Windows makes the two collide:
tbb-compat.cpp:25:7: error: redefinition of
'class tbb::internal::task_scheduler_observer_v3'
Have the bundled header advertise what it provides, and skip the stub's own
declarations when it does. Either way the stub still exports the out-of-line
observe(), which is the whole reason it exists.
Also spell that definition __TBB_EXPORTED_METHOD, matching its declaration
here and in the old TBB ABI; the two attributes are both no-ops on the
Windows targets we build for, so this is consistency rather than a fix.1 parent 00076d9 commit 3138398
2 files changed
Lines changed: 17 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
17 | 24 | | |
18 | 25 | | |
19 | 26 | | |
| |||
130 | 137 | | |
131 | 138 | | |
132 | 139 | | |
| 140 | + | |
| 141 | + | |
133 | 142 | | |
134 | 143 | | |
135 | 144 | | |
136 | 145 | | |
137 | | - | |
| 146 | + | |
138 | 147 | | |
139 | 148 | | |
140 | 149 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
119 | | - | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
120 | 126 | | |
121 | 127 | | |
122 | 128 | | |
| |||
0 commit comments