Automatically remove --wamr-exceptions flag for C builds

This commit is contained in:
2026-07-26 18:07:17 +02:00
parent 2d624c725c
commit 47e0cf129e
+8 -3
View File
@@ -202,7 +202,6 @@ local $ENV{WAMR_USE_LINEAR_POOL_IN_TEXT} =
# ========================================================================================= # # ========================================================================================= #
# NOTE: The runner will prefix "-Wf," to each flag # NOTE: The runner will prefix "-Wf," to each flag
# TODO: Exclude --wamr-exceptions from C builds automatically
my %catch_flag_map = ( my %catch_flag_map = (
"--catch-outer" => "--catch-outerspace", "--catch-outer" => "--catch-outerspace",
"--catch-text" => "--catch-write-textsegment", "--catch-text" => "--catch-write-textsegment",
@@ -224,6 +223,12 @@ foreach my $experiment (@selected_experiments) {
foreach my $target (@selected_targets) { foreach my $target (@selected_targets) {
foreach my $mode (@selected_modes) { foreach my $mode (@selected_modes) {
# Remove --wamr-exceptions for C builds, it is WAMR-specific
my @build_catch_flags =
$mode eq "c"
? grep { $_ ne "--wamr-exceptions" } @selected_catch_flags
: @selected_catch_flags;
my $allocator_info = ""; my $allocator_info = "";
if ( $mode eq "aot" || $mode eq "interp" ) { if ( $mode eq "aot" || $mode eq "interp" ) {
$allocator_info = $allocator_info =
@@ -267,7 +272,7 @@ foreach my $experiment (@selected_experiments) {
&& $selected_linear_pool_variant eq $linear_pool_variants[0] ) && $selected_linear_pool_variant eq $linear_pool_variants[0] )
? "wamr_linear_pool" ? "wamr_linear_pool"
: ""; : "";
my $flags_info = join " ", @selected_catch_flags; my $flags_info = join " ", @build_catch_flags;
my $info_str = join " ", my $info_str = join " ",
grep { length } ( grep { length } (
@@ -288,7 +293,7 @@ foreach my $experiment (@selected_experiments) {
"$local_root/build-$experiment/runner_flags"; "$local_root/build-$experiment/runner_flags";
open( my $fhandle, '>', $runner_flags_path ) open( my $fhandle, '>', $runner_flags_path )
or die "Cannot write $runner_flags_path: $!"; or die "Cannot write $runner_flags_path: $!";
print $fhandle "$catch_flag_map{$_}\n" for @selected_catch_flags; print $fhandle "$catch_flag_map{$_}\n" for @build_catch_flags;
close($fhandle); close($fhandle);
system( "mv", "$local_root/build.log", system( "mv", "$local_root/build.log",