Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[infra] Enable linux-x64 Mono fullAOT mini job on extra platforms #96332

Merged
merged 118 commits into from
Mar 28, 2024
Merged
Show file tree
Hide file tree
Changes from 114 commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
fd56ecb
Use llvm toolchain instead of binutils on linux
kotlarmilos Sep 14, 2023
870e2d4
Increase job timeouts
kotlarmilos Sep 15, 2023
96c3dd5
Pass docker option to increase memory limit
kotlarmilos Sep 15, 2023
fa12bb3
Pass docker option to increase memory limit
kotlarmilos Sep 15, 2023
133f3a8
Pass docker option to increase memory limit
kotlarmilos Sep 16, 2023
ba0c40e
Test 64g memory limit
kotlarmilos Sep 18, 2023
82bfa05
Add msbuild parallelism limit
kotlarmilos Sep 19, 2023
8eb0cab
Set maxcpucount to 1
kotlarmilos Sep 20, 2023
24628ff
Increase job timeout
kotlarmilos Sep 20, 2023
93ec6c8
Enable aggressive trimming
kotlarmilos Sep 21, 2023
ade75a2
Try using memory swap
kotlarmilos Sep 22, 2023
0345bff
Disable JIT testing group
kotlarmilos Sep 23, 2023
451c85f
Test a subset of runtime tests
kotlarmilos Sep 23, 2023
ec2fe19
Merge branch 'dotnet:main' into bugfix/linux-x64-fullaot-job
kotlarmilos Sep 25, 2023
8f41239
Run only linux-x64 job
kotlarmilos Sep 26, 2023
c188cfa
Try enabling swap from docker container
kotlarmilos Sep 26, 2023
1ef87f2
Enable baseservices tests only
kotlarmilos Sep 27, 2023
b574489
Test baseservices/mono
kotlarmilos Sep 29, 2023
06febc6
Set maxcpucount to 1
kotlarmilos Sep 29, 2023
fbc914c
Test baseservices subset
kotlarmilos Sep 29, 2023
a62f417
Merge branch 'main' into bugfix/linux-x64-fullaot-job
kotlarmilos Oct 2, 2023
0af7018
Disable failing tests
kotlarmilos Oct 2, 2023
a2fe74a
Revert timeout
kotlarmilos Oct 2, 2023
fe59c5a
Fix RuntimeVariant property
kotlarmilos Oct 2, 2023
a7d7d2c
Disable failing tests
kotlarmilos Oct 3, 2023
1d956f0
Add toolchain parameters to the AOT compiler
kotlarmilos Oct 5, 2023
72f1414
Test baseservices/mono tree
kotlarmilos Oct 6, 2023
a4bac46
Revert changes to test the CI
kotlarmilos Oct 7, 2023
e98235d
Merge branch 'dotnet:main' into bugfix/linux-x64-fullaot-job
kotlarmilos Oct 9, 2023
6fc3476
Merge branch 'dotnet:main' into bugfix/linux-x64-fullaot-job
kotlarmilos Oct 19, 2023
9913498
Include System.Private.CoreLib assembly only
kotlarmilos Oct 19, 2023
b61f8ef
Testing only - move the job to the runtime.yml to run on each PR
kotlarmilos Oct 19, 2023
a67303e
Testing only - move the job to the runtime.yml to run on each PR
kotlarmilos Oct 19, 2023
66f0481
Exclude coreroot libs
kotlarmilos Oct 20, 2023
bc13a90
Include System.Private.CoreLib assembly only
kotlarmilos Oct 20, 2023
5af9f34
Merge branch 'dotnet:main' into bugfix/linux-x64-fullaot-job
kotlarmilos Oct 23, 2023
7a1365d
Add swap space to the docker container
kotlarmilos Oct 23, 2023
358ba2a
Pass options to docker container
kotlarmilos Oct 24, 2023
da25b50
Merge branch 'main' of github.com:kotlarmilos/runtime into bugfix/lin…
kotlarmilos Dec 7, 2023
0691089
Merge branch 'dotnet:main' into bugfix/linux-x64-fullaot-job
kotlarmilos Dec 7, 2023
7775dd5
[infra] Utilize linux x64 XL queue
kotlarmilos Dec 7, 2023
5bf0643
[infra] Utilize linux x64 XL queue
kotlarmilos Dec 7, 2023
612fc81
[test] Disable runtime tests
kotlarmilos Dec 7, 2023
c69b705
[test] Disable CI jobs
kotlarmilos Dec 7, 2023
ed8f002
[test] Disable CI jobs
kotlarmilos Dec 7, 2023
bc9c906
[test] Disable CI jobs
kotlarmilos Dec 7, 2023
b43f611
[test] Disable CI jobs
kotlarmilos Dec 7, 2023
936a59a
[test] Test the CI job
kotlarmilos Dec 7, 2023
c20b843
[test] Test the CI job
kotlarmilos Dec 7, 2023
f771c02
[test] Test the CI job
kotlarmilos Dec 7, 2023
fd637c2
[test] Test the CI job
kotlarmilos Dec 7, 2023
2e53492
[test] Test the CI job
kotlarmilos Dec 7, 2023
2f46c1b
[test] Test the CI job
kotlarmilos Dec 7, 2023
db8ca13
[test] Test the CI job
kotlarmilos Dec 7, 2023
31e1c2a
[test] Test the new ubuntu xl queue
kotlarmilos Dec 8, 2023
2405b09
[tests] Try running mini runtime tests
kotlarmilos Dec 11, 2023
0c301ba
[tests] Try running mini runtime tests
kotlarmilos Dec 11, 2023
af288cb
[tests] Try running mini runtime tests
kotlarmilos Dec 11, 2023
c51cdc7
[tests] Try running mini runtime tests
kotlarmilos Dec 11, 2023
d03314f
[tests] Try running mini runtime tests
kotlarmilos Dec 11, 2023
d1be24d
[tests] Try running mini runtime tests
kotlarmilos Dec 11, 2023
abefc4b
[tests] Try running mini runtime tests
kotlarmilos Dec 13, 2023
b4fe13c
[tests] Try running mini runtime tests
kotlarmilos Dec 13, 2023
ca5ea14
[tests] Try running mini runtime tests
kotlarmilos Dec 13, 2023
3b45c90
[tests] Try running mini runtime tests
kotlarmilos Dec 14, 2023
9109cde
[tests] Try running mini runtime tests
kotlarmilos Dec 14, 2023
babcfde
Merge branch 'dotnet:main' into bugfix/linux-x64-fullaot-job
kotlarmilos Dec 27, 2023
2fa3366
[tests] Disable failing test
kotlarmilos Dec 27, 2023
fa052e6
[tests] Enable all testing groups
kotlarmilos Dec 27, 2023
a980751
[tests] Disable failing tests
kotlarmilos Dec 27, 2023
b2db3eb
[tests] Disable failing tests
kotlarmilos Dec 28, 2023
d382193
[tests] Disable failing tests
kotlarmilos Dec 28, 2023
73b2fcf
[tests] Disable failing tests
kotlarmilos Dec 28, 2023
9fbf7d3
[tests] Disable failing tests
kotlarmilos Dec 29, 2023
37a6345
[tests] Disable failing tests
kotlarmilos Jan 5, 2024
68449b8
[infra] Add minifullaot runtime flavor to the runtime pipeline
kotlarmilos Jan 9, 2024
8ac4b1b
[infra] Fix condition
kotlarmilos Jan 9, 2024
b382cfa
[infra] Fix condition
kotlarmilos Jan 9, 2024
cde358c
[infra] Add monoAotBuildshCommand variable
kotlarmilos Jan 9, 2024
c5a3efe
[infra] Fix ident
kotlarmilos Jan 9, 2024
6ac404f
[infra] Fix ident
kotlarmilos Jan 9, 2024
11a9813
[infra] Fix ident
kotlarmilos Jan 9, 2024
b570e07
[infra] Add mono_aot/mono_fullaot scripts
kotlarmilos Jan 9, 2024
7775a2f
[infra] Fix ident
kotlarmilos Jan 9, 2024
282c3d8
[infra] Fix ident
kotlarmilos Jan 9, 2024
cc036a5
[tests] Disable failing runtime tests
kotlarmilos Jan 26, 2024
45a56a0
[tests] Enable runtime.yml tests
kotlarmilos Jan 26, 2024
7d10b31
Merge branch 'dotnet:main' into feature/mini-fullaot-job
kotlarmilos Jan 26, 2024
66bae98
[tests] Disable other runtime.yml tests
kotlarmilos Jan 26, 2024
66026cf
[tests] Move MonoAotIncompatible to PropertyGroup
kotlarmilos Jan 29, 2024
a62be0e
Fix typo
kotlarmilos Jan 29, 2024
a97d738
[tests] Disable failing tests
kotlarmilos Jan 29, 2024
af7530b
[tests] Disable failing tests
kotlarmilos Jan 30, 2024
93415e8
[tests] Disable failing merged test wrappers
kotlarmilos Feb 2, 2024
d083e9b
Enable runtime.yml jobs
kotlarmilos Feb 2, 2024
a7c4e56
Merge branch 'dotnet:main' into feature/mini-fullaot-job
kotlarmilos Feb 2, 2024
22d1f24
Disable runtime.yml tests
kotlarmilos Feb 2, 2024
ac3234c
[tests] Disable failing tests
kotlarmilos Feb 2, 2024
be78293
[tests] Disable failing tests
kotlarmilos Feb 7, 2024
bd5780c
[tests] Disable failing tests
kotlarmilos Feb 8, 2024
4dd76cc
[tests] Disable failing tests
kotlarmilos Feb 8, 2024
3924860
[tests] Disable failing tests
kotlarmilos Feb 9, 2024
1ed23b5
[infra] Test linux-arm64 platform
kotlarmilos Feb 9, 2024
4d03f40
Revert temporary changes
kotlarmilos Feb 9, 2024
16286b3
Fix formatting
kotlarmilos Feb 9, 2024
2cae292
Merge branch 'dotnet:main' into feature/mini-fullaot-job
kotlarmilos Feb 9, 2024
9337786
Fix formatting
kotlarmilos Feb 9, 2024
f6f4d3a
Merge branch 'feature/mini-fullaot-job' of github.com:kotlarmilos/run…
kotlarmilos Feb 9, 2024
7a235eb
Merge branch 'dotnet:main' into feature/mini-fullaot-job
kotlarmilos Feb 23, 2024
698d5ea
Merge branch 'main' into feature/mini-fullaot-job
kotlarmilos Mar 7, 2024
a644946
Fix InvalidCSharpInlineArray test
kotlarmilos Mar 7, 2024
04d8127
Add tracking issue for disabled tests
kotlarmilos Mar 8, 2024
eeb36fb
Add tracking issue for disabled tests
kotlarmilos Mar 8, 2024
8f94c62
Update comment
kotlarmilos Mar 11, 2024
f02bd65
Merge branch 'dotnet:main' into feature/mini-fullaot-job
kotlarmilos Mar 20, 2024
62ffe69
Disable failing test
kotlarmilos Mar 21, 2024
e6dde0a
Merge branch 'feature/mini-fullaot-job' of github.com:kotlarmilos/run…
kotlarmilos Mar 21, 2024
0f74711
Merge branch 'main' into feature/mini-fullaot-job
kotlarmilos Mar 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,39 +38,48 @@ steps:
archType: ${{ parameters.archType }}
buildConfig: ${{ parameters.buildConfig }}
testBuildArgs: ${{ parameters.testBuildArgs }}

# Build a Mono LLVM AOT cross-compiler for non-amd64 targets (in this case, just arm64)
- ${{ if and(eq(parameters.runtimeFlavor, 'mono'), or(eq(parameters.runtimeVariant, 'llvmaot'), eq(parameters.runtimeVariant, 'llvmfullaot'))) }}:
# Build a Mono AOT cross-compiler for non-amd64 targets (in this case, just arm64)
- ${{ if and(eq(parameters.runtimeFlavor, 'mono'), in(parameters.runtimeVariant, 'llvmaot', 'llvmfullaot', 'minifullaot')) }}:
- ${{ if eq(parameters.archType, 'arm64') }}:
- script: ./build.sh
-subset mono
-c ${{ parameters.buildConfig }}
-arch ${{ parameters.archType }}
/p:BuildMonoAotCrossCompiler=true
/p:BuildMonoAotCrossCompilerOnly=true
/p:MonoLibClang="/usr/local/lib/libclang.so.16"
/p:MonoAOTEnableLLVM=true
/p:CrossBuild=true
displayName: "Build Mono LLVM AOT cross compiler"
- ${{ if eq(parameters.runtimeVariant, 'minifullaot') }}:
- script: ./build.sh
-subset mono
-c ${{ parameters.buildConfig }}
-arch ${{ parameters.archType }}
/p:BuildMonoAotCrossCompiler=true
/p:BuildMonoAotCrossCompilerOnly=true
/p:CrossBuild=true
displayName: "Build Mono Mini AOT cross compiler"
- ${{ else }}:
- script: ./build.sh
-subset mono
-c ${{ parameters.buildConfig }}
-arch ${{ parameters.archType }}
/p:BuildMonoAotCrossCompiler=true
/p:BuildMonoAotCrossCompilerOnly=true
/p:MonoLibClang="/usr/local/lib/libclang.so.16"
/p:MonoAOTEnableLLVM=true
Copy link
Member

@matouskozak matouskozak Mar 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not relevant since this PR is addressing mini full AOT, but I'm not sure if we shouldn't also pass /p:MonoEnableLLVM=true. For Perf AOT-llvm runs we use /p:MonoAOTEnableLLVM=true /p:MonoEnableLLVM=true /p:BuildMonoAOTCrossCompiler=true ... for both x64 and arm64.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. Based on the source code, the output directory should be different for the LLVM optimizer and the linker when MonoAOTEnableLLVM vs MonoEnableLLVM is used. I suggest to address it in the LLVM-related PR.

/p:CrossBuild=true
displayName: "Build Mono LLVM AOT cross compiler"

- ${{ if eq(parameters.archType, 'x64') }}:
- ${{ if eq(parameters.runtimeVariant, 'llvmaot') }}:
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_aot ${{ parameters.buildConfig }} ${{ parameters.archType }}
displayName: "LLVM AOT compile CoreCLR tests"
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_aot ${{ parameters.buildConfig }} ${{ parameters.archType }} /p:RuntimeVariant=${{ parameters.runtimeVariant }}
displayName: "AOT compile CoreCLR tests"
target: ${{ coalesce(parameters.llvmAotStepContainer, parameters.container) }}
- ${{ if eq(parameters.runtimeVariant, 'llvmfullaot') }}:
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_fullaot ${{ parameters.buildConfig }} ${{ parameters.archType }}
displayName: "LLVM AOT compile CoreCLR tests"
- ${{ if in(parameters.runtimeVariant, 'llvmfullaot', 'minifullaot') }}:
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_fullaot ${{ parameters.buildConfig }} ${{ parameters.archType }} /p:RuntimeVariant=${{ parameters.runtimeVariant }}
displayName: "AOT compile CoreCLR tests"
target: ${{ coalesce(parameters.llvmAotStepContainer, parameters.container) }}
- ${{ if eq(parameters.archType, 'arm64') }}:
- ${{ if eq(parameters.runtimeVariant, 'llvmaot') }}:
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_aot ${{ parameters.buildConfig }} ${{ parameters.archType }} cross /p:RuntimeVariant=llvmfullaot -maxcpucount:2
displayName: "LLVM AOT cross-compile CoreCLR tests"
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_aot ${{ parameters.buildConfig }} ${{ parameters.archType }} cross /p:RuntimeVariant=${{ parameters.runtimeVariant }} -maxcpucount:2
displayName: "AOT cross-compile CoreCLR tests"
env:
__MonoToolPrefix: aarch64-linux-gnu-
- ${{ if eq(parameters.runtimeVariant, 'llvmfullaot') }}:
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_fullaot ${{ parameters.buildConfig }} ${{ parameters.archType }} cross /p:RuntimeVariant=llvmfullaot -maxcpucount:2
displayName: "LLVM AOT cross-compile CoreCLR tests"
- ${{ if in(parameters.runtimeVariant, 'llvmfullaot', 'minifullaot') }}:
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_fullaot ${{ parameters.buildConfig }} ${{ parameters.archType }} cross /p:RuntimeVariant=${{ parameters.runtimeVariant }} -maxcpucount:2
displayName: "AOT cross-compile CoreCLR tests"
env:
__MonoToolPrefix: aarch64-linux-gnu-

Expand Down
32 changes: 32 additions & 0 deletions eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,38 @@ jobs:
extraVariablesTemplates:
- template: /eng/pipelines/common/templates/runtimes/test-variables.yml

#
# Mono CoreCLR runtime test executions using live libraries and mini Full AOT
fanyang-mono marked this conversation as resolved.
Show resolved Hide resolved
# Only when Mono is changed
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/global-build-job.yml
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
buildConfig: Release
runtimeFlavor: mono
platforms:
- linux_x64
variables:
- name: timeoutPerTestInMinutes
value: 60
- name: timeoutPerTestCollectionInMinutes
value: 180
jobParameters:
testGroup: innerloop
nameSuffix: AllSubsets_Mono_MiniFullAot_RuntimeTests
runtimeVariant: minifullaot
buildArgs: -s mono+libs+clr.hosts -c Release
timeoutInMinutes: 300
postBuildSteps:
- template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
parameters:
creator: dotnet-bot
llvmAotStepContainer: linux_x64
testRunNamePrefixSuffix: Mono_Release
extraVariablesTemplates:
- template: /eng/pipelines/common/templates/runtimes/test-variables.yml

#
# Mono CoreCLR runtime Test executions using live libraries in interpreter mode
# Only when Mono is changed
Expand Down
13 changes: 12 additions & 1 deletion src/mono/mono/metadata/marshal.c
Original file line number Diff line number Diff line change
Expand Up @@ -5834,8 +5834,19 @@ mono_marshal_load_type_info (MonoClass* klass)
if (m_class_is_inlinearray (klass)) {
// Limit the max size of array instance to 1MiB
const int struct_max_size = 1024 * 1024;
guint32 initial_size = size;
size *= m_class_inlinearray_value (klass);
g_assert ((size > 0) && (size <= struct_max_size));
if(size == 0 || size > struct_max_size) {
if (mono_get_runtime_callbacks ()->mono_class_set_deferred_type_load_failure_callback) {
if (mono_get_runtime_callbacks ()->mono_class_set_deferred_type_load_failure_callback (klass, "Inline array struct size out of bounds, abnormally large."))
break;
else
size = initial_size; // failure occured during AOT compilation, continue execution
} else {
mono_class_set_type_load_failure (klass, "Inline array struct size out of bounds, abnormally large.");
break;
}
}
}

switch (layout) {
Expand Down
35 changes: 30 additions & 5 deletions src/mono/mono/mini/aot-compiler.c
Original file line number Diff line number Diff line change
Expand Up @@ -242,8 +242,11 @@ typedef struct MonoAotOptions {
gboolean child;
char *tool_prefix;
char *as_prefix;
char *as_name;
char *as_options;
char *ld_flags;
char *ld_name;
char *ld_options;
char *mtriple;
char *llvm_path;
char *temp_path;
Expand Down Expand Up @@ -8933,10 +8936,16 @@ mono_aot_parse_options (const char *aot_options, MonoAotOptions *opts)
opts->tool_prefix = g_strdup (arg + strlen ("tool-prefix="));
} else if (str_begins_with (arg, "as-prefix=")) {
opts->as_prefix = g_strdup (arg + strlen ("as-prefix="));
} else if (str_begins_with (arg, "as-name=")) {
opts->as_name = g_strdup (arg + strlen ("as-name="));
} else if (str_begins_with (arg, "as-options=")) {
opts->as_options = g_strdup (arg + strlen ("as-options="));
} else if (str_begins_with (arg, "ld-flags=")) {
opts->ld_flags = g_strdup (arg + strlen ("ld-flags="));
} else if (str_begins_with (arg, "ld-name=")) {
opts->ld_name = g_strdup (arg + strlen ("ld-name="));
} else if (str_begins_with (arg, "ld-options=")) {
opts->ld_options = g_strdup (arg + strlen ("ld-options="));
} else if (str_begins_with (arg, "soft-debug")) {
opts->soft_debug = TRUE;
// Intentionally undocumented x2-- deprecated
Expand Down Expand Up @@ -13212,8 +13221,16 @@ compile_asm (MonoAotCompile *acfg)
#ifdef TARGET_OSX
g_string_append (acfg->as_args, "-c -x assembler ");
#endif
const char *as_binary_name = acfg->aot_opts.as_name;
if (as_binary_name == NULL) {
as_binary_name = AS_NAME;
}
const char *as_options = acfg->aot_opts.as_options;
if (as_options == NULL) {
as_options = AS_OPTIONS;
}

command = g_strdup_printf ("\"%s%s\" %s %s -o %s %s", as_prefix, AS_NAME, AS_OPTIONS,
command = g_strdup_printf ("\"%s%s\" %s %s -o %s %s", as_prefix, as_binary_name, as_options,
acfg->as_args ? acfg->as_args->str : "",
wrap_path (objfile), wrap_path (acfg->asm_fname));
aot_printf (acfg, "Executing the native assembler: %s\n", command);
Expand All @@ -13224,7 +13241,7 @@ compile_asm (MonoAotCompile *acfg)
}

if (acfg->llvm && !acfg->llvm_owriter) {
command = g_strdup_printf ("\"%s%s\" %s %s -o %s %s", as_prefix, AS_NAME, AS_OPTIONS,
command = g_strdup_printf ("\"%s%s\" %s %s -o %s %s", as_prefix, as_binary_name, as_options,
acfg->as_args ? acfg->as_args->str : "",
wrap_path (acfg->llvm_ofile), wrap_path (acfg->llvm_sfile));
aot_printf (acfg, "Executing the native assembler: %s\n", command);
Expand Down Expand Up @@ -13273,16 +13290,21 @@ compile_asm (MonoAotCompile *acfg)

str = g_string_new ("");
const char *ld_binary_name = acfg->aot_opts.ld_name;

const char *ld_options = acfg->aot_opts.ld_options;
if (ld_options == NULL) {
ld_options = LD_OPTIONS;
}
#if defined(LD_NAME)
if (ld_binary_name == NULL) {
ld_binary_name = LD_NAME;
}
if (acfg->aot_opts.tool_prefix)
g_string_append_printf (str, "\"%s%s\" %s", tool_prefix, ld_binary_name, LD_OPTIONS);
g_string_append_printf (str, "\"%s%s\" %s", tool_prefix, ld_binary_name, ld_options);
else if (acfg->aot_opts.llvm_only)
g_string_append_printf (str, "%s", acfg->aot_opts.clangxx);
else
g_string_append_printf (str, "\"%s%s\" %s", tool_prefix, ld_binary_name, LD_OPTIONS);
g_string_append_printf (str, "\"%s%s\" %s", tool_prefix, ld_binary_name, ld_options);
#else
if (ld_binary_name == NULL) {
ld_binary_name = "ld";
Expand All @@ -13291,7 +13313,7 @@ compile_asm (MonoAotCompile *acfg)
// Default (linux)
if (acfg->aot_opts.tool_prefix)
/* Cross compiling */
g_string_append_printf (str, "\"%s%s\" %s", tool_prefix, ld_binary_name, LD_OPTIONS);
g_string_append_printf (str, "\"%s%s\" %s", tool_prefix, ld_binary_name, ld_options);
else if (acfg->aot_opts.llvm_only)
g_string_append_printf (str, "%s", acfg->aot_opts.clangxx);
else
Expand Down Expand Up @@ -14222,8 +14244,11 @@ aot_opts_free (MonoAotOptions *aot_opts)
g_free (aot_opts->dedup_include);
g_free (aot_opts->tool_prefix);
g_free (aot_opts->as_prefix);
g_free (aot_opts->as_name);
g_free (aot_opts->as_options);
g_free (aot_opts->ld_flags);
g_free (aot_opts->ld_name);
g_free (aot_opts->ld_options);
g_free (aot_opts->mtriple);
g_free (aot_opts->llvm_path);
g_free (aot_opts->temp_path);
Expand Down
2 changes: 2 additions & 0 deletions src/tests/Common/CoreCLRTestLibrary/PlatformDetection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ public static bool IsNonZeroLowerBoundArraySupported

public static bool IsMonoLLVMAOT => _variant == "llvmaot";
public static bool IsMonoLLVMFULLAOT => _variant == "llvmfullaot";
public static bool IsMonoMINIFULLAOT => _variant == "minifullaot";
public static bool IsMonoFULLAOT => IsMonoLLVMFULLAOT || IsMonoMINIFULLAOT;
public static bool IsMonoInterpreter => _variant == "monointerpreter";

// These platforms have not had their infrastructure updated to support native test assets.
Expand Down
4 changes: 2 additions & 2 deletions src/tests/Common/helixpublishwitharcade.proj
Original file line number Diff line number Diff line change
Expand Up @@ -413,8 +413,8 @@
<HelixCommandLines Include="$(_WorkaroundForNuGetMigrations)" />

<!-- Force assemblies to lazy-load for LLVM AOT test runs to enable using tests that fail at AOT time (and as a result can't be AOTd) -->
<HelixCommandLines Condition="'$(RuntimeVariant)' == 'llvmfullaot'" Include="$(_MergedWrapperRunScriptPrefix)$(_MergedWrapperRunScriptRelative) -usewatcher --aot-lazy-assembly-load" />
<HelixCommandLines Condition="'$(RuntimeVariant)' != 'llvmfullaot'" Include="$(_MergedWrapperRunScriptPrefix)$(_MergedWrapperRunScriptRelative) -usewatcher" />
<HelixCommandLines Condition="'$(RuntimeVariant)' == 'llvmfullaot' or '$(RuntimeVariant)' == 'minifullaot'" Include="$(_MergedWrapperRunScriptPrefix)$(_MergedWrapperRunScriptRelative) -usewatcher --aot-lazy-assembly-load" />
<HelixCommandLines Condition="'$(RuntimeVariant)' != 'llvmfullaot' and '$(RuntimeVariant)' != 'minifullaot'" Include="$(_MergedWrapperRunScriptPrefix)$(_MergedWrapperRunScriptRelative) -usewatcher" />

<!--
Bug Fix: GH Issue #85056 - Helix takes the exit code of the last ran executable. Since that spot has now been
Expand Down
2 changes: 1 addition & 1 deletion src/tests/Common/testenvironment.proj
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@
<_TestEnvFileLine Condition="'false' == 'true' and '$(RuntimeVariant)' == 'llvmaot'" Include="export MONO_ENV_OPTIONS=--llvm" />

<!-- Use Mono in Full AOT mode when running the full-AOT-compiled runtime tests -->
<_TestEnvFileLine Condition="'$(RuntimeVariant)' == 'llvmfullaot'" Include="export MONO_ENV_OPTIONS=--full-aot" />
<_TestEnvFileLine Condition="'$(RuntimeVariant)' == 'llvmfullaot' or '$(RuntimeVariant)' == 'minifullaot'" Include="export MONO_ENV_OPTIONS=--full-aot" />

<_TestEnvFileLine Condition="'$(RuntimeVariant)' != ''" Include="export DOTNET_RUNTIME_VARIANT=$(RuntimeVariant)" />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public static void AssemblyDirectory_NotFound()

public static bool CanLoadAssemblyInSubdirectory =>
!TestLibrary.Utilities.IsNativeAot &&
!TestLibrary.PlatformDetection.IsMonoLLVMFULLAOT &&
!TestLibrary.PlatformDetection.IsMonoFULLAOT &&
!OperatingSystem.IsAndroid() &&
!OperatingSystem.IsIOS() &&
!OperatingSystem.IsTvOS() &&
Expand Down
2 changes: 2 additions & 0 deletions src/tests/Interop/Interop.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Configurations>Debug;Release;Checked</Configurations>
<!-- Tracking issue: https://github.com/dotnet/runtime/issues/90427 -->
<CLRTestTargetUnsupported Condition="'$(RuntimeFlavor)' == 'mono' and '$(RuntimeVariant)' == 'minifullaot'">true</CLRTestTargetUnsupported>
</PropertyGroup>
<ItemGroup>
<SupportProject Include="$(TestLibraryProjectPath)" />
Expand Down
2 changes: 1 addition & 1 deletion src/tests/Interop/NativeLibrary/API/NativeLibraryTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ public void LoadLibrary_AssemblyDirectory()

string subdirectory = Path.Combine(testBinDir, "subdirectory");

if (!TestLibrary.Utilities.IsNativeAot && !TestLibrary.PlatformDetection.IsMonoLLVMFULLAOT)
if (!TestLibrary.Utilities.IsNativeAot && !TestLibrary.PlatformDetection.IsMonoFULLAOT)
{
// Library should be found in the assembly directory
Assembly assemblyInSubdirectory = Assembly.LoadFile(Path.Combine(subdirectory, $"{assembly.GetName().Name}{suffix}.dll"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DefineConstants>$(DefineConstants);ANSIBSTR</DefineConstants>
<!-- Tracking issue: https://github.com/dotnet/runtime/issues/90427 -->
<CLRTestTargetUnsupported Condition="'$(RuntimeFlavor)' == 'mono' and '$(RuntimeVariant)' == 'minifullaot'">true</CLRTestTargetUnsupported>
</PropertyGroup>
<ItemGroup>
<Compile Include="*.cs" />
Expand Down
2 changes: 2 additions & 0 deletions src/tests/Interop/StringMarshalling/BSTR/BSTRTest.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DefineConstants>$(DefineConstants);BSTR</DefineConstants>
<!-- Tracking issue: https://github.com/dotnet/runtime/issues/90427 -->
<CLRTestTargetUnsupported Condition="'$(RuntimeFlavor)' == 'mono' and '$(RuntimeVariant)' == 'minifullaot'">true</CLRTestTargetUnsupported>
</PropertyGroup>
<ItemGroup>
<Compile Include="*.cs" />
Expand Down
2 changes: 2 additions & 0 deletions src/tests/Interop/StringMarshalling/LPTSTR/LPTSTRTest.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DefineConstants>$(DefineConstants);LPTSTR</DefineConstants>
<!-- Tracking issue: https://github.com/dotnet/runtime/issues/90427 -->
<CLRTestTargetUnsupported Condition="'$(RuntimeFlavor)' == 'mono' and '$(RuntimeVariant)' == 'minifullaot'">true</CLRTestTargetUnsupported>
</PropertyGroup>
<ItemGroup>
<Compile Include="*.cs" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<!-- Tracking issue: https://github.com/dotnet/runtime/issues/90427 -->
<CLRTestTargetUnsupported Condition="'$(RuntimeFlavor)' == 'mono' and '$(RuntimeVariant)' == 'minifullaot'">true</CLRTestTargetUnsupported>
</PropertyGroup>
<ItemGroup>
<Compile Include="*.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
using System.Collections.Generic;

[assembly:Xunit.ActiveIssue("https://github.com/dotnet/runtime/issues/75767", typeof(TestLibrary.PlatformDetection), nameof(TestLibrary.PlatformDetection.IsMonoLLVMAOT))]
[assembly:Xunit.ActiveIssue("https://github.com/dotnet/runtime/issues/75767", typeof(TestLibrary.PlatformDetection), nameof(TestLibrary.PlatformDetection.IsMonoLLVMFULLAOT))]
[assembly:Xunit.ActiveIssue("https://github.com/dotnet/runtime/issues/75767", typeof(TestLibrary.PlatformDetection), nameof(TestLibrary.PlatformDetection.IsMonoFULLAOT))]
namespace JIT.HardwareIntrinsics.X86._X86Base.X64
{
public static partial class Program
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
using System.Collections.Generic;

[assembly:Xunit.ActiveIssue("https://github.com/dotnet/runtime/issues/75767", typeof(TestLibrary.PlatformDetection), nameof(TestLibrary.PlatformDetection.IsMonoLLVMAOT))]
[assembly:Xunit.ActiveIssue("https://github.com/dotnet/runtime/issues/75767", typeof(TestLibrary.PlatformDetection), nameof(TestLibrary.PlatformDetection.IsMonoLLVMFULLAOT))]
[assembly:Xunit.ActiveIssue("https://github.com/dotnet/runtime/issues/75767", typeof(TestLibrary.PlatformDetection), nameof(TestLibrary.PlatformDetection.IsMonoFULLAOT))]
namespace JIT.HardwareIntrinsics.X86._X86Base
{
public static partial class Program
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
<!-- Tracking issue: https://github.com/dotnet/runtime/issues/90427 -->
<CLRTestTargetUnsupported Condition="'$(RuntimeFlavor)' == 'mono' and '$(RuntimeVariant)' == 'minifullaot'">true</CLRTestTargetUnsupported>
</PropertyGroup>
<ItemGroup>
<Compile Include="$(MSBuildProjectName).cs" />
Expand Down
4 changes: 4 additions & 0 deletions src/tests/JIT/Methodical/Methodical_others.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Tracking issue: https://github.com/dotnet/runtime/issues/90427 -->
<CLRTestTargetUnsupported Condition="'$(RuntimeFlavor)' == 'mono' and '$(RuntimeVariant)' == 'minifullaot'">true</CLRTestTargetUnsupported>
</PropertyGroup>
<ItemGroup>
<MergedWrapperProjectReference Include="*/**/*.??proj" />
<MergedWrapperProjectReference Remove="*/**/*_d.??proj" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<!-- Tracking issue: https://github.com/dotnet/runtime/issues/90427 -->
<CLRTestTargetUnsupported Condition="'$(RuntimeFlavor)' == 'mono' and '$(RuntimeVariant)' == 'minifullaot'">true</CLRTestTargetUnsupported>
</PropertyGroup>
<ItemGroup>
<Compile Include="GitHub_26491.il" />
</ItemGroup>
Expand Down
4 changes: 4 additions & 0 deletions src/tests/JIT/Regression/Regression_3.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Tracking issue: https://github.com/dotnet/runtime/issues/90427 -->
<CLRTestTargetUnsupported Condition="'$(RuntimeFlavor)' == 'mono' and '$(RuntimeVariant)' == 'minifullaot'">true</CLRTestTargetUnsupported>
</PropertyGroup>
<ItemGroup>
<MergedWrapperProjectReference Include="JitBlue/**/*.??proj" />
<MergedWrapperProjectReference Remove="JitBlue/Runtime_*/**/*.??proj" />
Expand Down
Loading