aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorJia Tan <jiat0218@gmail.com>2023-10-20 19:17:46 +0800
committerJia Tan <jiat0218@gmail.com>2023-10-21 00:01:29 +0800
commit988e09f27b9b04a43d45d10f92782e0092ee27a9 (patch)
tree35149423b8a1da0a3c249ab44f2602ceb5365f3f /doc
parentBuild: Remove check for COND_CHECK_CRC32 in check/Makefile.inc. (diff)
downloadxz-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 'doc')
0 files changed, 0 insertions, 0 deletions