mirror of
https://github.com/ForLoopCodes/legacy-notepad.git
synced 2026-04-26 20:35:53 +03:00
[GH-ISSUE #12] Too many warnings and werrors when we cross compile windows-msvc targets. -werror is also painful. #8
Labels
No labels
bug
bug
documentation
enhancement
good first issue
good first issue
help wanted
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/legacy-notepad#8
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @trcrsired on GitHub (Feb 1, 2026).
Original GitHub issue: https://github.com/ForLoopCodes/legacy-notepad/issues/12
You do not provide windows on arm build either.
This compiles but please remove -werror, plus -static-libstdc++ and -static-libgcc are also very bad. There is no gcc support for windows on arm yet.
Please just use this windows-msvc-sysroot with clang to build this with clang instead of gcc so that it will get rid of gcc libraries completely.
https://github.com/trcrsired/llvm-releases/releases
https://github.com/trcrsired/windows-msvc-sysroot
$ cmake -GNinja .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_ASM_COMPILER=clang -DCMAKE_RC_COMPILER=llvm-rc -DCMAKE_INSTALL_PREFIX=$HOME/softwares/aarch64-windows-msvc -DCMAKE_C_COMPILER_TARGET=aarch64-windows-msvc -DCMAKE_CXX_COMPILER_TARGET=aarch64-windows-msvc -DCMAKE_ASM_COMPILER_TARGET=aarch64-windows-msvc -DCMAKE_LINKER_TYPE=LLD -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=On -DCMAKE_C_FLAGS="-D_DLL=1 -fuse-ld=lld -lmsvcrt" -DCMAKE_CXX_FLAGS="-D_DLL=1 -fuse-ld=lld -lmsvcrt" -DCMAKE_SYSROOT=$HOME/toolchains/windows-msvc-sysroot -DCMAKE_SYSTEM_PROCESSOR=aarch64
-- The CXX compiler identification is Clang 23.0.0 with GNU-like command-line
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Users//toolchains/llvm/aarch64-apple-darwin24/llvm/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (3.1s)
-- Generating done (0.0s)
CMake Warning:
Manually-specified variables were not used by the project:
-- Build files have been written to: /Users//toolchains_build/legacy-notepad/.build
$ ninja
[2/11] Building CXX object CMakeFiles/...cy-notepad.dir/src/core/globals.cpp.ob
clang++: warning: -lmsvcrt: 'linker' input unused [-Wunused-command-line-argument]
/Users//toolchains_build/legacy-notepad/src/core/globals.cpp:33:49: warning: missing field 'hwndOwner' initializer [-Wmissing-field-initializers]
33 | PAGESETUPDLGW g_pageSetup = {sizeof(g_pageSetup)};
| ^
1 warning generated.
[3/11] Building CXX object CMakeFiles/legacy-notepad.dir/src/main.cpp.obj
clang++: warning: -lmsvcrt: 'linker' input unused [-Wunused-command-line-argument]
[4/11] Building CXX object CMakeFiles/...y-notepad.dir/src/modules/theme.cpp.ob
clang++: warning: -lmsvcrt: 'linker' input unused [-Wunused-command-line-argument]
/Users//toolchains_build/legacy-notepad/src/modules/theme.cpp:78:49: warning: missing field 'iBorderWidth' initializer [-Wmissing-field-initializers]
78 | NONCLIENTMETRICSW ncm = {sizeof(ncm)};
| ^
1 warning generated.
[5/11] Building CXX object CMakeFiles/...-notepad.dir/src/modules/editor.cpp.ob
clang++: warning: -lmsvcrt: 'linker' input unused [-Wunused-command-line-argument]
[6/11] Building CXX object CMakeFiles/legacy-notepad.dir/src/modules/ui.cpp.obj
clang++: warning: -lmsvcrt: 'linker' input unused [-Wunused-command-line-argument]
[7/11] Building CXX object CMakeFiles/...epad.dir/src/modules/background.cpp.ob
clang++: warning: -lmsvcrt: 'linker' input unused [-Wunused-command-line-argument]
/Users//toolchains_build/legacy-notepad/src/modules/background.cpp:54:9: warning: suggest braces around initialization of subobject [-Wmissing-braces]
54 | 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| { }
/Users//toolchains_build/legacy-notepad/src/modules/background.cpp:55:9: warning: suggest braces around initialization of subobject [-Wmissing-braces]
55 | 0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| { }
/Users//toolchains_build/legacy-notepad/src/modules/background.cpp:56:9: warning: suggest braces around initialization of subobject [-Wmissing-braces]
56 | 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| { }
/Users//toolchains_build/legacy-notepad/src/modules/background.cpp:57:9: warning: suggest braces around initialization of subobject [-Wmissing-braces]
57 | 0.0f, 0.0f, 0.0f, opacity, 0.0f,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| { }
/Users//toolchains_build/legacy-notepad/src/modules/background.cpp:58:9: warning: suggest braces around initialization of subobject [-Wmissing-braces]
58 | 0.0f, 0.0f, 0.0f, 0.0f, 1.0f};
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| { }
/Users//toolchains_build/legacy-notepad/src/modules/background.cpp:224:37: warning: missing field 'hwndOwner' initializer [-Wmissing-field-initializers]
224 | OPENFILENAMEW ofn = {sizeof(ofn)};
| ^
6 warnings generated.
[8/11] Building CXX object CMakeFiles/...otepad.dir/src/modules/commands.cpp.ob
clang++: warning: -lmsvcrt: 'linker' input unused [-Wunused-command-line-argument]
/Users//toolchains_build/legacy-notepad/src/modules/commands.cpp:59:37: warning: missing field 'hwndOwner' initializer [-Wmissing-field-initializers]
59 | OPENFILENAMEW ofn = {sizeof(ofn)};
| ^
/Users//toolchains_build/legacy-notepad/src/modules/commands.cpp:80:37: warning: missing field 'hwndOwner' initializer [-Wmissing-field-initializers]
80 | OPENFILENAMEW ofn = {sizeof(ofn)};
| ^
/Users//toolchains_build/legacy-notepad/src/modules/commands.cpp:94:31: warning: missing field 'hwndOwner' initializer [-Wmissing-field-initializers]
94 | PRINTDLGW pd = {sizeof(pd)};
| ^
/Users//toolchains_build/legacy-notepad/src/modules/commands.cpp💯30: warning: missing field 'lpszDocName' initializer [-Wmissing-field-initializers]
100 | DOCINFOW di = {sizeof(di)};
| ^
4 warnings generated.
[9/11] Building CXX object CMakeFiles/...-notepad.dir/src/modules/dialog.cpp.ob
clang++: warning: -lmsvcrt: 'linker' input unused [-Wunused-command-line-argument]
[10/11] Building CXX object CMakeFiles...cy-notepad.dir/src/modules/file.cpp.ob
clang++: warning: -lmsvcrt: 'linker' input unused [-Wunused-command-line-argument]
[11/11] Linking CXX executable legacy-notepad.exe
clang++: warning: argument unused during compilation: '-static-libgcc' [-Wunused-command-line-argument]
clang++: warning: argument unused during compilation: '-static-libstdc++' [-Wunused-command-line-argument]
clang++: warning: argument unused during compilation: '-static-libgcc' [-Wunused-command-line-argument]
clang++: warning: argument unused during compilation: '-static-libstdc++' [-Wunused-command-line-argument]
@trcrsired commented on GitHub (Feb 1, 2026):
The binary size is also smaller than your current ones.
-rwxr-xr-x 1 staff 101376 Feb 1 19:01 legacy-notepad.exe
$ file ./legacy-notepad.exe
./legacy-notepad.exe: PE32+ executable (GUI) x86-64, for MS Windows
99kb vs 192 KB
Windows on ARM one is even smaller
-rwxr-xr-x 1 staff 82944 Feb 1 18:59 legacy-notepad.exe
$ file ./legacy-notepad.exe
./legacy-notepad.exe: PE32+ executable (GUI) Aarch64, for MS Windows
81kb
@trcrsired commented on GitHub (Feb 1, 2026):
This also contains windows on arm one.
legacy-notepad.zip
@ForLoopCodes commented on GitHub (Feb 3, 2026):
awesome!!! are being able to open a PR? would love to merge it
@trcrsired commented on GitHub (Feb 3, 2026):
I mean you should at least first try the toolchain to compile the code by yourself to see whether it works best for you.
https://github.com/trcrsired/windows-msvc-sysroot
https://github.com/trcrsired/llvm-releases/releases Download x86_64-windows-gnu.tar.xz
Try to use this toolchain by set --target=, --sysroot=
@ForLoopCodes commented on GitHub (Feb 4, 2026):
i will see the updated code soon when im on my computer, thanks for the files
@ForLoopCodes commented on GitHub (Feb 4, 2026):
will add arm support in v1.2.0 release