Commit 8638942
committed
plan: C1 is closed --- the only true unknown in the list
Both layers located and fixed, shipping in openkal-llvm-runtime 0.15.0. The
second layer: `__thread` is emutls under `-femulated-tls`, emutls keeps its
per-thread blocks behind a pthread key of its own, and that key's destructor
releases this thread's block before libc++abi's runs. Criterion: `&dtors`
differs three times in one thread.
It was closed by the criterion the finding document itself wrote down. And
the hypothesis that document recorded as refuted was correct --- the probe
created its own key before first touching a thread-local, and musl runs key
destructors in creation order, so emutls outlived it. The predicate was
right; the object's construction excluded the condition under test.1 parent 0e10e35 commit 8638942
1 file changed
Lines changed: 28 additions & 6 deletions
Lines changed: 28 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
273 | 273 | | |
274 | 274 | | |
275 | 275 | | |
276 | | - | |
277 | | - | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
278 | 293 | | |
279 | 294 | | |
280 | 295 | | |
281 | 296 | | |
282 | | - | |
283 | | - | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
284 | 307 | | |
285 | | - | |
286 | | - | |
| 308 | + | |
287 | 309 | | |
288 | 310 | | |
289 | 311 | | |
| |||
0 commit comments