Added Win64/VS 2022 port for FileX#94
Merged
Merged
Conversation
- New port: ports/win64/vs_2022/inc/fx_port.h
- Based on the Win32 port; updated ALIGN_TYPE to ULONG64 for 64-bit
pointers, added FX_REGRESSION_TEST hooks from the Linux port, and
bumped the port name string to Win64/Visual.
- New CMake infrastructure: ports/win64/vs_2022/CMakeLists.txt
- Exposes only the inc/ directory (port is header-only).
- Updated test/cmake/CMakeLists.txt
- Added MSVC guards: skip -m32 / GCC coverage flags; locate VS 2022
toolchain; build ThreadX from source alongside FileX via
THREADX_SOURCE_DIR.
- Updated test/cmake/regression/CMakeLists.txt
- Added MSVC-compatible compile options (/W3 /Zi instead of -Wall
-fprofile-arcs); added win64_compat include path for standalone +
MSVC builds; added per-test TIMEOUT overrides for the two inherently
long-running fault-tolerant tests on Windows.
- Updated test/cmake/samples/CMakeLists.txt
- Added MSVC-compatible flag handling.
- New PowerShell scripts: scripts/build_fx.ps1, scripts/test_fx.ps1,
scripts/fx_windows_common.ps1
- Support all 9 build configurations; -Clean, -Config, -Verbose flags;
modelled on the ThreadX Win64 build/test scripts.
- New Windows compatibility shims for standalone builds:
test/regression_test/win64_compat/pthread.h
test/regression_test/win64_compat/unistd.h
- Minimal pthreads (CreateThread / WaitForSingleObject / TerminateThread)
and usleep (Sleep) shims so standalone test files compile on MSVC.
- Fixed test/regression_test/fx_ram_driver_test.c and .h
- RAM driver: added bounds check so out-of-range sector READs use a
safe scratch buffer instead of segfaulting.
- MSVC: large test buffers (ram_disk_memory_large, large_data_buffer,
and standalone-mode ram_disk_memory / ram_disk_memory1) moved from
BSS to calloc() via a .CRT\ constructor. This avoids the MSVC
PE image 2 GB hard limit (LNK1248) and eliminates demand-zero page-
fault overhead that would otherwise slow the test suite.
- Bulk-fixed 93 fault-tolerant test files
- [FAULT_TOLERANT_SIZE] -> [FAULT_TOLERANT_SIZE > 0 ? FAULT_TOLERANT_SIZE : 1]
so that MSVC C2466 (zero-length array) is not triggered when
FX_ENABLE_FAULT_TOLERANT is not defined.
- Fixed filextestcontrol.c: standalone test runner thread exit
- The Win64 pthread shim makes pthread_exit() a no-op so that
test_control_thread_entry() proceeds to exit(failed_tests),
giving ctest the correct process exit code.
- Fixed common/src/fx_utility_logical_sector_write.c
- Added missing bounds guard to prevent sector-write past end of
RAM disk during fault-tolerant interrupt simulation tests.
All 9 build configurations pass 136/136 regression tests on Win64/VS 2022.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
All 9 build configurations pass 136/136 regression tests on Win64/VS 2022.