diff options
author | Rich Felker <dalias@aerifal.cx> | 2020-01-01 00:15:04 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2020-01-01 00:15:04 -0500 |
commit | d6bbea2acf3e69afe0ac87105d6e443a19c43d14 (patch) | |
tree | 322962eaeab38bd8b801ee766643e60d46f7db7b /crt/mipsn32 | |
parent | b82cd6c78d812d38c31febba5a9e57dbaa7919c4 (diff) | |
download | musl-d6bbea2acf3e69afe0ac87105d6e443a19c43d14.tar.gz musl-d6bbea2acf3e69afe0ac87105d6e443a19c43d14.tar.xz musl-d6bbea2acf3e69afe0ac87105d6e443a19c43d14.zip |
fix fdpic regression in dynamic linker with overly smart compilers
at least gcc 9 broke execution of DT_INIT/DT_FINI for fdpic archs (presently only sh) by recognizing that the stores to the compound-literal function descriptor constructed to call them were dead stores. there's no way to make a "may_alias function", so instead launder the descriptor through an asm-statement barrier. in practice just making the compound literal volatile seemed to have worked too, but this should be less of a hack and more accurately convey the semantics of what transformations are not valid.
Diffstat (limited to 'crt/mipsn32')
0 files changed, 0 insertions, 0 deletions