Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@yazon
Copy link
Owner

@yazon yazon commented Jul 18, 2025

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.py interface, 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.

@yazon
Copy link
Owner Author

yazon commented Jul 19, 2025

bugbot run

cursor[bot]

This comment was marked as outdated.

@yazon
Copy link
Owner Author

yazon commented Jul 19, 2025

bugbot run

cursor[bot]

This comment was marked as outdated.

@yazon
Copy link
Owner Author

yazon commented Jul 19, 2025

bugbot run

cursor[bot]

This comment was marked as outdated.

@yazon
Copy link
Owner Author

yazon commented Jul 19, 2025

bugbot run

cursor[bot]

This comment was marked as outdated.

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.
@yazon
Copy link
Owner Author

yazon commented Jul 20, 2025

bugbot run

cursor[bot]

This comment was marked as outdated.

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.
@yazon
Copy link
Owner Author

yazon commented Jul 20, 2025

bugbot run

cursor[bot]

This comment was marked as outdated.

@yazon
Copy link
Owner Author

yazon commented Jul 20, 2025

bugbot run

cursor[bot]

This comment was marked as outdated.

@yazon
Copy link
Owner Author

yazon commented Jul 20, 2025

bugbot run

cursor[bot]

This comment was marked as outdated.

@yazon
Copy link
Owner Author

yazon commented Jul 20, 2025

bugbot run

cursor[bot]

This comment was marked as outdated.

@yazon
Copy link
Owner Author

yazon commented Jul 20, 2025

bugbot run

Copy link

@cursor cursor bot left a 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

-DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_SYSTEM_PROCESSOR=${{ matrix.target }} \

Fix in CursorFix in Web


Was this report helpful? Give feedback by reacting with 👍 or 👎

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