Luke Street
94b44fd697
Everything needed to run simple Rust programs ( #40 )
...
* Everything needed to run simple Rust programs
* Add IsDBCSLeadByte implementation
* Address PR comments
2023-09-10 12:07:23 +09:00
ConorB
6e18120410
Add armcc support ( #39 )
...
* armcc 5.04, ignore seh longjmps
* Update CI link
* Stub RtlUnwind entirely
---------
Co-authored-by: ConorBobbleHat <c.github@firstpartners.net>
2023-09-08 08:17:35 +09:00
ConorB
3e2d84fa69
Force VirtualAlloc allocations to fall below the 2GB mark ( #36 )
...
Co-authored-by: ConorBobbleHat <c.github@firstpartners.net>
2023-06-02 21:30:45 +02:00
Parker
e83af50b10
Properly implement GetCurrentProcessID, GetCurrentThreadId ( #35 )
2023-04-01 11:13:21 +02:00
Luke Street
7d08a2bdca
Various fixes for mwcc/mwld ( #32 )
...
* Override GetFileAttributesA for MWCC license.dat
* Add WIN_FUNC to FileTimeToLocalFileTime
* Use callee_pop_aggregate_return(0)
* Lexically normalize paths
2023-01-23 21:22:50 +01:00
Luke Street
6b6a462ea1
Use __attribute__((force_align_arg_pointer)) ( #30 )
2023-01-23 16:36:14 +01:00
Luke Street
9837ce0bf4
Pass absolute path to exe in argv[0] ( #31 )
2023-01-23 16:35:50 +01:00
Luke Street
67f99ba1b2
Build static binary ( #29 )
2023-01-23 10:20:30 +09:00
jdflyer
aec6f0dbe9
Implement GetShortPathNameA ( #28 )
2022-12-30 01:37:21 +01:00
Ryan Burns
635de4fa93
Handle GetCurrentDirectory required buffer size return value ( #27 )
...
When the output buffer size is too small, GetCurrentDirectory does
nothing and simply returns the larger required size.
https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getcurrentdirectory#return-value
Needed to run Code Warrior 4 mwcc.exe with no arguments, displaying usage/help message.
(Still unable to compile/preprocess with CW4 mwcc.exe)
2022-12-02 10:46:38 +01:00
Ethan Roseman
681137902b
don't try to mmap 0-sized things ( #26 )
2022-09-25 02:03:40 +09:00
Ethan Roseman
b65a585ee3
Move docker build back a bit ( #25 )
2022-09-25 02:02:49 +09:00
Ethan Roseman
d631bad6b2
Build it on focal ( #24 )
...
* Build it on bionic
* no sudo
* cmake
* don't use ninja
* try focal
* model after #15
* Whoops
* lower minimum CMakeLists
* focal
* Fix
* debug yaml
* whut
* now?
2022-09-25 01:04:29 +09:00
Ethan Roseman
6de4e9a163
3 funcs needed for some mwcc compilers ( #22 )
...
* 3 funcs needed for some mwcc compilers
* some PR feedback
* lots more via pair programming with Simon
* cleanup, add test dir as an include dir for tests
* bugfix
2022-09-24 23:59:30 +09:00
Simon Lindholm
ffe30a626b
Fix cmdline backslash escaping
2022-07-31 13:17:14 +02:00
Simon Lindholm
e54657b55f
Misc minor improvements
2022-07-29 23:39:42 +02:00
Simon Lindholm
93b99a4f24
Handle some more armcc versions
2022-07-29 17:44:27 +02:00
Mark Street
bd4c09e743
Add naive VirtualFree ( #20 )
2022-07-28 00:23:45 +02:00
Simon Lindholm
c47665f8ae
Improve TIB
2022-07-28 00:13:36 +02:00
Simon Lindholm
747f1895ef
More logging
2022-07-27 23:04:26 +02:00
Simon Lindholm
42f2e6935e
MessageBoxA
2022-07-27 21:27:27 +01:00
Simon Lindholm
ff947fb707
Fix Heap{Re,}Alloc
2022-07-27 21:27:27 +01:00
Mark Street
fa6c98406e
A handful more functions to get cpe2exe to start
2022-07-27 21:27:27 +01:00
Simon Lindholm
ced712df09
Clean up function resolution a little
2022-07-18 23:02:55 +02:00
Mark Street
11bdc5e8a2
move dlls into dll/ dir ( #16 )
2022-07-18 09:54:17 -04:00
Ryan Burns
b86a542fe2
Explicitly link std::filesystem as needed ( #14 )
...
* Fix cmake install command
PROGRAMS specifies executable files, while TARGETS specifies cmake
targets. This install command happened to work when doing an in-tree
build (build dir == source dir) but will otherwise fail.
* Explicitly link std::filesystem as needed
On some older compilers, std::filesystem is provided as a separate
library from the C++ standard library. For example, on GCC 8, one must
explicitly link with -lstdc++fs.
We can use a drop-in https://github.com/vector-of-bool/CMakeCM module to
automate detection of and linking against this auxiliary library when needed.
* Add missing include
std::min is in <algorithm> header
This is transitively included in libstdc++ (GCC)
but not in libc++ (Clang)
(Encountered when testing -lc++fs auxiliary library linking in Clang 7)
2022-07-08 02:02:27 +09:00
Mark Street
e997178c57
Fix double ghcr.io in docker tag ( #13 )
2022-07-07 03:51:32 +09:00
Ethan Roseman
fae4219d7f
Revert "Add -lstdc++fs to cmake for older GCC ( #11 )" ( #12 )
...
This reverts commit 583769d7c8
.
2022-07-07 03:26:16 +09:00
BR-
583769d7c8
Add -lstdc++fs to cmake for older GCC ( #11 )
2022-07-07 03:21:18 +09:00
Luke Street
4ae7bba638
Add CMakeLists.txt ( #8 )
...
* Add CMakeLists.txt
* Use CMake in CI
* Remove Makefile & update README.md
2022-07-06 20:03:19 +09:00
camthesaxman
97c946fd86
implement SetEndOfFile, CreateDirectoryA, RemoveDirectoryA, SetFileAttributesA ( #6 )
...
* implement SetEndOfFile, CreateDirectoryA, RemoveDirectoryA, SetFileAttributesA
* call fflush before ftruncate
2022-07-06 11:26:24 +09:00
Luke Street
a8b9452f33
kernel32: Use fstat in GetFileSize ( #10 )
...
Improves mwldeppc performance significantly.
Before:
real 0m30.322s
user 0m7.800s
sys 0m22.495s
After:
real 0m16.679s
user 0m4.693s
sys 0m11.965s
Wine (for comparison):
real 0m24.625s
user 0m0.048s
sys 0m0.034s
2022-07-06 00:13:20 +02:00
Luke Street
07af846d1c
files: Use drive letter Z: for root FS (matches wine)
2022-07-04 21:38:21 +02:00
Luke Street
d29a78e862
Makefile: Target C++17 instead of C++2a
2022-07-04 21:38:21 +02:00
Simon Lindholm
3b181ab40a
Remove invalid assert
2022-07-04 19:38:49 +02:00
Simon Lindholm
a47a2e5e8b
Allow building with older GCC
2022-07-04 19:27:23 +02:00
Simon Lindholm
228bf4663e
File handles
2022-07-04 00:42:47 +02:00
Mark Street
84cb52fe70
FileTimeToSystemTime, SetFileTime
2022-07-04 00:05:30 +02:00
Mark Street
b9f6c4c64e
Add support for SN compilers ( #4 )
...
* More kernel32 functions implemented poorly
* fix a smattering of issues to make cc1n64 work
* fix issues breaking psyq aspsx
* Return lowercase Windows paths if uppercase path doesnt exist
* Add SetStdHandle
* Add super naive FormatMessageA
* Case insensitive file matching
* PR comments
* Adding CompareString* + SetEnvironmentVariableA functions
Co-authored-by: Ash Wolf <ninji@wuffs.org>
Co-authored-by: Simon Lindholm <simon.lindholm10@gmail.com>
2022-07-03 23:27:48 +09:00
Ethan Roseman
5c1f8ca7c8
[ci] Release on any tag, and create a separate gh release for each
2022-07-03 23:15:45 +09:00
Ethan Roseman
b84567268c
Upload build / update release on updates to master
2022-07-02 02:18:03 +09:00
Mark Street
29f93f0d1c
Add Dockerfile + build action ( #3 )
...
* Add Dockerfile + build action
* Remove 'test' entry that didn't trigger action
2022-06-30 20:42:24 +01:00
Ethan Roseman
d92f0d1d08
Readme changes, github actions ci, test ( #1 )
...
* Readme changes, github actions ci, test
* Std flag change for older GCC versions"
* Install gcc multilib
* test fix and formatting
* Don't segfault on nonexistant file and show error instead
* Update ci.yml
* PR comments
* remove silly bit
2022-07-01 04:23:00 +09:00
Simon Lindholm
f11759cc71
mwcc 4.*
2022-06-29 17:34:38 +02:00
Simon Lindholm
916c10543d
ole32
2022-06-29 17:26:24 +02:00
Simon Lindholm
6281fa2da7
Support more mwcc versions
2022-06-29 16:57:11 +02:00
Simon Lindholm
121bfb3939
Better realloc zeroing
2022-06-29 16:57:11 +02:00
Simon Lindholm
81e85504de
Improve logging
2022-06-29 16:56:36 +02:00
Simon Lindholm
e0017ac105
fix realloc zeroing
2022-06-29 15:18:29 +02:00
Simon Lindholm
d565bd4231
files & times
2022-06-29 14:41:16 +02:00