Skip to content

Conversation

@scikit-build-app-bot
Copy link
Contributor

@scikit-build-app-bot scikit-build-app-bot bot commented Nov 19, 2025

Created by update_cmake_version.py

PR generated by "Update CMake" workflow.

@henryiii
Copy link
Contributor

henryiii commented Nov 19, 2025

32-bit musl is failing with errors like error: always_inline function '_mm_setzero_pd' requires target feature 'sse2', but would be inlined into function 'sse2_mysqrt' that is compiled without support for 'sse2':

  CMake Error at /project/CMake-src/Tests/RunCMake/RunCMake.cmake:297 (message):
    Step7-build - FAILED:
  
    Result is [1], not [0].
  
    Command was:
  
     command> "/project/build/py3-none-linux_i686/CMakeProject-build/bin/cmake" "--build" "." "--config" "Release"
  
    Actual stdout:
  
     actual-stdout> [1/7] Building CXX object MathFunctions/MathExtensions/OpMul/CMakeFiles/OpMul.dir/OpMul.cxx.o
     actual-stdout> [2/7] Building CXX object MathFunctions/MathExtensions/OpAdd/CMakeFiles/OpAdd.dir/OpAdd.cxx.o
     actual-stdout> [3/7] Building CXX object MathFunctions/MathExtensions/OpSub/CMakeFiles/OpSub.dir/OpSub.cxx.o
     actual-stdout> [4/7] Building CXX object MathFunctions/CMakeFiles/MathFunctions.dir/MathFunctions.cxx.o
     actual-stdout> FAILED: [code=1] MathFunctions/CMakeFiles/MathFunctions.dir/MathFunctions.cxx.o 
     actual-stdout> /opt/clang/bin/clang++ -DTUTORIAL_USE_SSE2 -I/project/CMake-src/Help/guide/tutorial/Step7/MathFunctions -I/project/CMake-src/Help/guide/tutorial/Step7/MathFunctions/MathLogger -I/project/CMake-src/Help/guide/tutorial/Step7/MathFunctions/MathExtensions/OpAdd -I/project/CMake-src/Help/guide/tutorial/Step7/MathFunctions/MathExtensions/OpMul -I/project/CMake-src/Help/guide/tutorial/Step7/MathFunctions/MathExtensions/OpSub -O3 -DNDEBUG -std=gnu++20 -MD -MT MathFunctions/CMakeFiles/MathFunctions.dir/MathFunctions.cxx.o -MF MathFunctions/CMakeFiles/MathFunctions.dir/MathFunctions.cxx.o.d -o MathFunctions/CMakeFiles/MathFunctions.dir/MathFunctions.cxx.o -c /project/CMake-src/Help/guide/tutorial/Step7/MathFunctions/MathFunctions.cxx
     actual-stdout> /project/CMake-src/Help/guide/tutorial/Step7/MathFunctions/MathFunctions.cxx:28:30: error: always_inline function '_mm_setzero_pd' requires target feature 'sse2', but would be inlined into function 'sse2_mysqrt' that is compiled without support for 'sse2'
     actual-stdout>    28 |   __m128d root = _mm_sqrt_sd(_mm_setzero_pd(), _mm_set_sd(x));
     actual-stdout>       |                              ^
     actual-stdout> /project/CMake-src/Help/guide/tutorial/Step7/MathFunctions/MathFunctions.cxx:28:48: error: always_inline function '_mm_set_sd' requires target feature 'sse2', but would be inlined into function 'sse2_mysqrt' that is compiled without support for 'sse2'
     actual-stdout>    28 |   __m128d root = _mm_sqrt_sd(_mm_setzero_pd(), _mm_set_sd(x));
     actual-stdout>       |                                                ^
     actual-stdout> /project/CMake-src/Help/guide/tutorial/Step7/MathFunctions/MathFunctions.cxx:28:18: error: always_inline function '_mm_sqrt_sd' requires target feature 'sse2', but would be inlined into function 'sse2_mysqrt' that is compiled without support for 'sse2'
     actual-stdout>    28 |   __m128d root = _mm_sqrt_sd(_mm_setzero_pd(), _mm_set_sd(x));
     actual-stdout>       |                  ^
     actual-stdout> /project/CMake-src/Help/guide/tutorial/Step7/MathFunctions/MathFunctions.cxx:29:19: error: always_inline function '_mm_cvtsd_f64' requires target feature 'sse2', but would be inlined into function 'sse2_mysqrt' that is compiled without support for 'sse2'
     actual-stdout>    29 |   double result = _mm_cvtsd_f64(root);
     actual-stdout>       |                   ^
     actual-stdout> 4 errors generated.
     actual-stdout> [5/7] Building CXX object Tutorial/CMakeFiles/Tutorial.dir/Tutorial.cxx.o
     actual-stdout> ninja: build stopped: subcommand failed.

@mayeut, do you know what the problem might be?

@mayeut
Copy link
Contributor

mayeut commented Nov 20, 2025

The rework of the Tutorials in CMake 4.2.0 revealed that the default arch used by gcc are more recent than i686. i686 used by clang lacks the SSE2 instruction set (not sure why manylinux did not fail though).
The scripts/install-static-clang.sh now uses the same architectures as gcc rather than trying to enforce i686. Those new default architectures are more than 20 years old & no one ever complained of those defaults on manylinux/PyPI as far as I know (and i686 is decreasing rapidly).

@henryiii henryiii merged commit 68c75a9 into main Nov 20, 2025
55 checks passed
@henryiii henryiii deleted the update-cmake-pr branch November 20, 2025 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants