1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 11:38:21 +02:00

Tiny ReleaseNoRT test

This commit is contained in:
Brian Fiete 2024-03-16 11:22:03 -04:00
parent dea665055e
commit 7656d94ff5
4 changed files with 43 additions and 2 deletions

View file

@ -646,12 +646,14 @@ namespace System
{ {
static function void*(int) sMallocFunc; static function void*(int) sMallocFunc;
static function void(void*) sFreeFunc; static function void(void*) sFreeFunc;
static function void(char8) sPutChar;
static this() static this()
{ {
var lib = Windows.LoadLibraryA("msvcrt.dll"); var lib = Windows.LoadLibraryA("msvcrt.dll");
sMallocFunc = (.)Windows.GetProcAddress(lib, "malloc"); sMallocFunc = (.)Windows.GetProcAddress(lib, "malloc");
sFreeFunc = (.)Windows.GetProcAddress(lib, "free"); sFreeFunc = (.)Windows.GetProcAddress(lib, "free");
sPutChar = (.)Windows.GetProcAddress(lib, "putchar");
} }
/*[LinkName(.C), AlwaysInclude] /*[LinkName(.C), AlwaysInclude]
@ -672,6 +674,12 @@ namespace System
sFreeFunc(ptr); sFreeFunc(ptr);
} }
[LinkName(.C), AlwaysInclude]
static void putchar(char8 c)
{
sPutChar(c);
}
[LinkName(.C), AlwaysInclude] [LinkName(.C), AlwaysInclude]
static void memset(void* dest, uint8 val, int size) static void memset(void* dest, uint8 val, int size)
{ {
@ -735,10 +743,15 @@ namespace System
[LinkName(.C), AlwaysInclude] [LinkName(.C), AlwaysInclude]
static void mainCRTStartup() static void mainCRTStartup()
{ {
//WinMain(null, null, "hi", 1);
main(0, null); main(0, null);
} }
/*[LinkName(.C), AlwaysInclude]
static void WinMainCRTStartup()
{
//WinMain(null, null, "hi", 1);
}*/
[LinkName(.C), Export] [LinkName(.C), Export]
static int32 _tls_index; static int32 _tls_index;

View file

@ -1829,7 +1829,7 @@ namespace System
[CLink, CallingConvention(.Stdcall)] [CLink, CallingConvention(.Stdcall)]
public static extern HInstance LoadLibraryW(char16* libFileName); public static extern HInstance LoadLibraryW(char16* libFileName);
[CLink, CallingConvention(.Stdcall)] [Import("kernel32.lib"), CLink, CallingConvention(.Stdcall)]
public static extern HInstance LoadLibraryA(char8* libFileName); public static extern HInstance LoadLibraryA(char8* libFileName);
[CLink, CallingConvention(.Stdcall)] [CLink, CallingConvention(.Stdcall)]

View file

@ -24,3 +24,17 @@ ReflectKind = "Minimal"
[Configs.Release.Win64] [Configs.Release.Win64]
RuntimeKind = "Reduced" RuntimeKind = "Reduced"
ReflectKind = "Minimal" ReflectKind = "Minimal"
[Configs.Release.Win32]
RuntimeKind = "Reduced"
ReflectKind = "Minimal"
[Configs.ReleaseNoRT.Win64]
RuntimeKind = "Disabled"
ReflectKind = "Minimal"
ConfigSelections = {Tiny = {Config = "Release"}}
[Configs.ReleaseNoRT.Win32]
RuntimeKind = "Disabled"
ReflectKind = "Minimal"
ConfigSelections = {Tiny = {Config = "Release"}}

View file

@ -46,6 +46,20 @@ if %size% GTR 16000 (
goto :HADERROR goto :HADERROR
) )
@ECHO Building Tiny NoRT
bin\RunWithStats IDE\dist\BeefBuild -proddir=IDE\Tests\Tiny -clean -config=ReleaseNoRT
set size=0
FOR /F "usebackq" %%A IN ('IDE\Tests\Tiny\build\ReleaseNoRT_Win64\Tiny\Tiny.exe') DO set size=%%~zA
echo Tiny executable size: %size% (expected 5120, max 7000)
if %size% LSS 1000 (
echo TINY executable not found?
goto :HADERROR
)
if %size% GTR 7000 (
echo TINY executable is too large!
goto :HADERROR
)
@ECHO Building BeefIDE_d with BeefBuild_d @ECHO Building BeefIDE_d with BeefBuild_d
bin\RunAndWait IDE\dist\BeefPerf.exe -cmd="Nop()" bin\RunAndWait IDE\dist\BeefPerf.exe -cmd="Nop()"
@IF %ERRORLEVEL% NEQ 0 GOTO FAILPERF_START @IF %ERRORLEVEL% NEQ 0 GOTO FAILPERF_START