1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 04:22:20 +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(void*) sFreeFunc;
static function void(char8) sPutChar;
static this()
{
var lib = Windows.LoadLibraryA("msvcrt.dll");
sMallocFunc = (.)Windows.GetProcAddress(lib, "malloc");
sFreeFunc = (.)Windows.GetProcAddress(lib, "free");
sPutChar = (.)Windows.GetProcAddress(lib, "putchar");
}
/*[LinkName(.C), AlwaysInclude]
@ -672,6 +674,12 @@ namespace System
sFreeFunc(ptr);
}
[LinkName(.C), AlwaysInclude]
static void putchar(char8 c)
{
sPutChar(c);
}
[LinkName(.C), AlwaysInclude]
static void memset(void* dest, uint8 val, int size)
{
@ -735,10 +743,15 @@ namespace System
[LinkName(.C), AlwaysInclude]
static void mainCRTStartup()
{
//WinMain(null, null, "hi", 1);
main(0, null);
}
/*[LinkName(.C), AlwaysInclude]
static void WinMainCRTStartup()
{
//WinMain(null, null, "hi", 1);
}*/
[LinkName(.C), Export]
static int32 _tls_index;

View file

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

View file

@ -24,3 +24,17 @@ ReflectKind = "Minimal"
[Configs.Release.Win64]
RuntimeKind = "Reduced"
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
)
@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
bin\RunAndWait IDE\dist\BeefPerf.exe -cmd="Nop()"
@IF %ERRORLEVEL% NEQ 0 GOTO FAILPERF_START