Skip to content

build: x86 afl++ ASan build broken "error: inline assembly requires more registers than available" #31913

Description

@dergoegge

Dockerfile to reproduce: https://gist.github.com/dergoegge/fc97743028f60719759b5498f5f022bf

Building with clang-19 and -fsantize=address fails with:

7.574 /bitcoin/src/secp256k1/src/scalar_4x64_impl.h:356:5: error: inline assembly requires more registers than available
7.574   356 |     "movq 32(%%rsi), %%r11\n"
7.574       |     ^
7.575 /bitcoin/src/secp256k1/src/scalar_4x64_impl.h:356:5: error: inline assembly requires more registers than available
7.575 /bitcoin/src/secp256k1/src/scalar_4x64_impl.h:356:5: error: inline assembly requires more registers than available
7.643 [ 24%] Building CXX object src/CMakeFiles/bitcoin_consensus.dir/uint256.cpp.o
7.722 3 errors generated.
7.738 gmake[3]: *** [src/secp256k1/src/CMakeFiles/secp256k1.dir/build.make:76: src/secp256k1/src/CMakeFiles/secp256k1.dir/secp256k1.c.o] Error 1
7.738 gmake[2]: *** [CMakeFiles/Makefile2:1020: src/secp256k1/src/CMakeFiles/secp256k1.dir/all] Error 2

Since this looks secp256k1 related I tried reproducing on a separate secp build but couldn't. This could very well be a compiler/linker bug.

I am surprised that I'm the only one running into this, we don't have a x86 ASan job anywhere? I think I first observed this sometime mid last year.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions