diff options
author | Jia Tan <jiat0218@gmail.com> | 2023-10-20 19:17:46 +0800 |
---|---|---|
committer | Jia Tan <jiat0218@gmail.com> | 2023-10-21 00:01:29 +0800 |
commit | 988e09f27b9b04a43d45d10f92782e0092ee27a9 (patch) | |
tree | 35149423b8a1da0a3c249ab44f2602ceb5365f3f /src/liblzma/lzma | |
parent | Build: Remove check for COND_CHECK_CRC32 in check/Makefile.inc. (diff) | |
download | xz-988e09f27b9b04a43d45d10f92782e0092ee27a9.tar.xz |
liblzma: Move is_clmul_supported() back to crc_common.h.
This partially reverts creating crc_clmul.c
(8c0f9376f58c0696d5d6719705164d35542dd891) where is_clmul_supported()
was moved, extern'ed, and renamed to lzma_is_clmul_supported(). This
caused a problem when the function call to lzma_is_clmul_supported()
results in a call through the PLT. ifunc resolvers run very early in
the dynamic loading sequence, so the PLT may not be setup properly at
this point. Whether the PLT is used or not for
lzma_is_clmul_supported() depened upon the compiler-toolchain used and
flags.
In liblzma compiled with GCC, for instance, GCC will go through the PLT
for function calls internal to liblzma if the version scripts and
symbol visibility hiding are not used. If lazy-binding is disabled,
then it would have made any program linked with liblzma fail during
dynamic loading in the ifunc resolver.
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions