Merge bitcoin-core/secp256k1#1749: build: Fix warnings in x86_64 assembly check
ab560078aabuild: Fix warnings in x86_64 assembly check (Hennadii Stepanov) Pull request description: On the master branch @10dab907e7, the x86_64 assembly check in both the Autotools and CMake build systems can fail depending on externally provided flags. For example: ``` $ env CFLAGS="-Wall -Werror" ./configure --with-asm=x86_64 <snip> checking for x86_64 assembly availability... no configure: error: x86_64 assembly requested but not available ``` or ``` $ env CFLAGS="-Wall -Werror" cmake -B build -DSECP256K1_ASM=x86_64 <snip> -- Performing Test HAVE_X86_64_ASM -- Performing Test HAVE_X86_64_ASM - Failed CMake Error at CMakeLists.txt:111 (message): x86_64 assembly requested but not available. -- Configuring incomplete, errors occurred! ``` The same issue occurs in CI jobs that build on Windows using clang-cl. This PR fixes both build systems. ACKs for top commit: real-or-random: utACKab560078aafurszy: ACKab560078aaTree-SHA512: d556b642d58c601e7f027ac54975249e05a8b3927c5efd229be43d264b024d00eab9973193adb52f2f60075fca0571644662d61150a19098820091ced2d56fa0
This commit is contained in:
@@ -3,7 +3,7 @@ AC_DEFUN([SECP_X86_64_ASM_CHECK],[
|
||||
AC_MSG_CHECKING(for x86_64 assembly availability)
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <stdint.h>]],[[
|
||||
uint64_t a = 11, tmp;
|
||||
uint64_t a = 11, tmp = 0;
|
||||
__asm__ __volatile__("movq \@S|@0x100000000,%1; mulq %%rsi" : "+a"(a) : "S"(tmp) : "cc", "%rdx");
|
||||
]])], [has_x86_64_asm=yes], [has_x86_64_asm=no])
|
||||
AC_MSG_RESULT([$has_x86_64_asm])
|
||||
|
||||
@@ -4,10 +4,11 @@ function(check_x86_64_assembly)
|
||||
check_c_source_compiles("
|
||||
#include <stdint.h>
|
||||
|
||||
int main()
|
||||
int main(void)
|
||||
{
|
||||
uint64_t a = 11, tmp;
|
||||
uint64_t a = 11, tmp = 0;
|
||||
__asm__ __volatile__(\"movq $0x100000000,%1; mulq %%rsi\" : \"+a\"(a) : \"S\"(tmp) : \"cc\", \"%rdx\");
|
||||
return 0;
|
||||
}
|
||||
" HAVE_X86_64_ASM)
|
||||
set(HAVE_X86_64_ASM ${HAVE_X86_64_ASM} PARENT_SCOPE)
|
||||
|
||||
Reference in New Issue
Block a user