-
Notifications
You must be signed in to change notification settings - Fork 0
Modernize legacy build system #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: arm64_build_enable
Are you sure you want to change the base?
Modernize legacy build system #1
Conversation
… and CI/CD Co-authored-by: czaplejewicz <[email protected]>
|
bugbot run |
Co-authored-by: czaplejewicz <[email protected]>
Co-authored-by: czaplejewicz <[email protected]>
Co-authored-by: czaplejewicz <[email protected]>
|
bugbot run |
Co-authored-by: czaplejewicz <[email protected]>
Co-authored-by: czaplejewicz <[email protected]>
Co-authored-by: czaplejewicz <[email protected]>
|
bugbot run |
…aration Co-authored-by: czaplejewicz <[email protected]>
…ands Co-authored-by: czaplejewicz <[email protected]>
|
bugbot run |
The previous commit 9d9401b removed special case handling for _mm_malloc, but this introduced a critical bug where: - CMake's string(TOUPPER '_mm_malloc') produces '_MM_MALLOC' - But code expects 'HAVE_DECL__MM_MALLOC' (with double underscore) - Result: _mm_malloc defines never get set, causing memory allocation issues This restores the special case handling to correctly generate: - HAVE_DECL___MM_MALLOC (with double underscore) - HAVE___MM_MALLOC (with double underscore) Tested with comprehensive CMake logic verification and memory allocation tests.
|
bugbot run |
The previous commit incorrectly added special case handling that created variables with 3 underscores (HAVE_DECL___MM_MALLOC) when CMake generates variables with 2 underscores (HAVE_DECL__MM_MALLOC). This removes the incorrect special case handling and lets CMake's natural string(TOUPPER) behavior work correctly: - string(TOUPPER '_mm_malloc') = '_MM_MALLOC' (1 underscore) - Creates HAVE_DECL__MM_MALLOC (2 underscores total) ✓ matches CMake - Creates HAVE__MM_MALLOC (2 underscores total) ✓ matches source code The source code only uses HAVE__MM_MALLOC anyway, so this fix ensures _mm_malloc definitions are properly set when available. Fixes the bug reported where _mm_malloc compile definitions were never added.
|
bugbot run |
Co-authored-by: czaplejewicz <[email protected]>
|
bugbot run |
Co-authored-by: czaplejewicz <[email protected]>
|
bugbot run |
Co-authored-by: czaplejewicz <[email protected]>
|
bugbot run |
Co-authored-by: czaplejewicz <[email protected]>
|
bugbot run |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: CMake Cross-Compile Processor Setting Error
The cross-compile job incorrectly sets CMAKE_SYSTEM_PROCESSOR to the full target triplet (e.g., arm-linux-gnueabihf) instead of just the processor architecture (e.g., arm), which will cause CMake cross-compilation configuration to fail or behave incorrectly.
.github/workflows/build.yml#L198-L199
ffts/.github/workflows/build.yml
Lines 198 to 199 in 2397d6d
| -DCMAKE_SYSTEM_NAME=Linux \ | |
| -DCMAKE_SYSTEM_PROCESSOR=${{ matrix.target }} \ |
Was this report helpful? Give feedback by reacting with 👍 or 👎
Modernize the FFTS build system to 2024/2025 standards to improve cross-platform compatibility, developer experience, and maintainability.
This PR refactors the outdated build architecture by upgrading to CMake 3.25+, introducing a unified
build.pyinterface, implementing modern GitHub Actions for CI/CD, and providing comprehensive documentation and migration guides. This replaces the fragmented autotools and old CMake setup with a robust, future-proof system.