qatlib's and qatzip's autogen.sh have the license comment before the shebang line. As a result, the kernel returns ENOEXEC when these scripts are executed directly. glibc's execvp() handles ENOEXEC by falling back to /bin/sh, while musl's execvp() does not. Consequently, CMake's execute_process() fails with an "Exec format error" on musl: CMake Error at .../qatlib_ext-stamp/qatlib_ext-configure-RelWithDebInfo-impl.cmake:9 (message): Command failed (exec format error): './autogen.sh' Move the shebang to the beginning of both scripts so they can be executed directly regardless of the libc implementation. See also: https://www.openwall.com/lists/musl/2020/02/12/9 --- a/src/qatlib/autogen.sh 2026-10-22 10:33:17.310734773 +0000 +++ b/src/qatlib/autogen.sh 2026-10-22 10:33:19.846777880 +0000 @@ -1,3 +1,5 @@ +#!/bin/sh + ################################################################# # # BSD LICENSE @@ -33,6 +35,4 @@ # # ################################################################# -#!/bin/sh - autoreconf -if --- a/src/qatzip/autogen.sh +++ b/src/qatzip/autogen.sh @@ -1,3 +1,5 @@ +#!/bin/sh + ################################################################ # BSD LICENSE # @@ -31,6 +33,5 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # ################################################################ -#!/bin/sh mkdir -p m4 autoreconf -vif