diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-04-14 23:26:42 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-04-15 09:14:48 -0700 |
| commit | 3e57c6c3ba0d7bfb6ad85915052406be1f218dbc (patch) | |
| tree | 6b11b96495725558224877abab7574337e4a02a9 /src/libsyntax/parse | |
| parent | 16e1fcead14628701e1b10b9d00c898d748db2ed (diff) | |
| download | rust-3e57c6c3ba0d7bfb6ad85915052406be1f218dbc.tar.gz rust-3e57c6c3ba0d7bfb6ad85915052406be1f218dbc.zip | |
std: Fix thread_local! in non-PIE binaries
One of the parameters to the magical "register a thread-local destructor" function is called `__dso_handle` and largely just passed along (this seems to be what other implementations do). Currently we pass the *value* of this symbol, but apparently the correct piece of information to pass is the *address* of the symbol. In a PIE binary the symbol actually contains an address to itself which is why we've gotten away with what we're doing as long as we have. In a non-PIE binary the symbol contains the address `NULL`, causing a segfault in the runtime library if it keeps going. Closes #24445
Diffstat (limited to 'src/libsyntax/parse')
0 files changed, 0 insertions, 0 deletions
