Title: [290199] trunk/Tools
- Revision
- 290199
- Author
- ddkil...@apple.com
- Date
- 2022-02-18 23:19:34 -0800 (Fri, 18 Feb 2022)
Log Message
[Tools] Sanitizer builds should obey `set-webkit-configuration --force-optimization-level`
<https://webkit.org/b/236859>
<rdar://problem/89161649>
Reviewed by Brent Fulgham.
* Scripts/webkitdirs.pm:
(XcodeOptions):
- Pass WK_FORCE_OPTIMIZATION_LEVEL instead of
GCC_OPTIMIZATION_LEVEL if sanitizers are enabled so the
optimization level can be overridden in sanitizer.xcconfig.
* sanitizer/asan.xcconfig:
(WK_NOT_): Remove.
(WK_NOT_YES): Remove.
- Move variables to sanitizer.xcconfig.
* sanitizer/sanitizer.xcconfig:
(WK_EMPTY_): Add.
(WK_NOT_): Add.
(WK_NOT_YES): Add.
- Add utility variables originally from SDKVariant.xcconfig.
(WK_OVERRIDE_OPTIMIZATION_LEVEL): Add.
- Set to YES/NO depending on whether WK_FORCE_OPTIMIZATION_LEVEL
is set.
(GCC_OPTIMIZATION_LEVEL):
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_YES): Add.
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO): Add.
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Debug): Rename from GCC_OPTIMIZATION_LEVEL_Debug.
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Production): Rename from GCC_OPTIMIZATION_LEVEL_Production.
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Release): Rename from GCC_OPTIMIZATION_LEVEL_Release.
- Make use of WK_OVERRIDE_OPTIMIZATION_LEVEL and
WK_FORCE_OPTIMIZATION_LEVEL to allow overriding the default
optimization level for sanitizer builds.
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (290198 => 290199)
--- trunk/Tools/ChangeLog 2022-02-19 05:26:41 UTC (rev 290198)
+++ trunk/Tools/ChangeLog 2022-02-19 07:19:34 UTC (rev 290199)
@@ -1,3 +1,40 @@
+2022-02-18 David Kilzer <ddkil...@apple.com>
+
+ [Tools] Sanitizer builds should obey `set-webkit-configuration --force-optimization-level`
+ <https://webkit.org/b/236859>
+ <rdar://problem/89161649>
+
+ Reviewed by Brent Fulgham.
+
+ * Scripts/webkitdirs.pm:
+ (XcodeOptions):
+ - Pass WK_FORCE_OPTIMIZATION_LEVEL instead of
+ GCC_OPTIMIZATION_LEVEL if sanitizers are enabled so the
+ optimization level can be overridden in sanitizer.xcconfig.
+
+ * sanitizer/asan.xcconfig:
+ (WK_NOT_): Remove.
+ (WK_NOT_YES): Remove.
+ - Move variables to sanitizer.xcconfig.
+
+ * sanitizer/sanitizer.xcconfig:
+ (WK_EMPTY_): Add.
+ (WK_NOT_): Add.
+ (WK_NOT_YES): Add.
+ - Add utility variables originally from SDKVariant.xcconfig.
+ (WK_OVERRIDE_OPTIMIZATION_LEVEL): Add.
+ - Set to YES/NO depending on whether WK_FORCE_OPTIMIZATION_LEVEL
+ is set.
+ (GCC_OPTIMIZATION_LEVEL):
+ (GCC_OPTIMIZATION_LEVEL_OVERRIDE_YES): Add.
+ (GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO): Add.
+ (GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Debug): Rename from GCC_OPTIMIZATION_LEVEL_Debug.
+ (GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Production): Rename from GCC_OPTIMIZATION_LEVEL_Production.
+ (GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Release): Rename from GCC_OPTIMIZATION_LEVEL_Release.
+ - Make use of WK_OVERRIDE_OPTIMIZATION_LEVEL and
+ WK_FORCE_OPTIMIZATION_LEVEL to allow overriding the default
+ optimization level for sanitizer builds.
+
2022-02-18 Ben Nham <n...@apple.com>
Hook up PushManager to permission state
Modified: trunk/Tools/Scripts/webkitdirs.pm (290198 => 290199)
--- trunk/Tools/Scripts/webkitdirs.pm 2022-02-19 05:26:41 UTC (rev 290198)
+++ trunk/Tools/Scripts/webkitdirs.pm 2022-02-19 07:19:34 UTC (rev 290199)
@@ -1032,7 +1032,14 @@
push @options, ("-xcconfig", File::Spec->catfile(sourceDir(), "Tools", "sanitizer", "ubsan.xcconfig"));
}
push @options, XcodeCoverageSupportOptions() if $coverageIsEnabled;
- push @options, ("GCC_OPTIMIZATION_LEVEL=$forceOptimizationLevel") if $forceOptimizationLevel;
+ if ($forceOptimizationLevel) {
+ if ($asanIsEnabled || $tsanIsEnabled || $ubsanIsEnabled) {
+ # Command-line Xcode variable won't override that same varible set in a command-line xcconfig file.
+ push @options, "WK_FORCE_OPTIMIZATION_LEVEL=$forceOptimizationLevel";
+ } else {
+ push @options, "GCC_OPTIMIZATION_LEVEL=$forceOptimizationLevel";
+ }
+ }
push @options, "WK_LTO_MODE=$ltoMode" if $ltoMode;
push @options, @baseProductDirOption;
push @options, "ARCHS=$architecture" if $architecture;
Modified: trunk/Tools/sanitizer/asan.xcconfig (290198 => 290199)
--- trunk/Tools/sanitizer/asan.xcconfig 2022-02-19 05:26:41 UTC (rev 290198)
+++ trunk/Tools/sanitizer/asan.xcconfig 2022-02-19 07:19:34 UTC (rev 290199)
@@ -13,9 +13,6 @@
// Update after <rdar://87613908> is fixed.
WK_NEEDS_ASAN_USE_AFTER_SCOPE_WORKAROUND_FOR_bmalloc_YES = -DWK_WORKAROUND_RDAR_87613908_ASAN_STACK_USE_AFTER_SCOPE;
-WK_NOT_ = YES;
-WK_NOT_YES = NO;
-
WK_NEEDS_ASAN_USE_AFTER_SCOPE_WORKAROUND = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_13_3_$(XCODE_VERSION_MAJOR)));
WK_XCODE_VERSION_BEFORE_13_3_0800 = YES;
Modified: trunk/Tools/sanitizer/sanitizer.xcconfig (290198 => 290199)
--- trunk/Tools/sanitizer/sanitizer.xcconfig 2022-02-19 05:26:41 UTC (rev 290198)
+++ trunk/Tools/sanitizer/sanitizer.xcconfig 2022-02-19 07:19:34 UTC (rev 290199)
@@ -1,8 +1,16 @@
-GCC_OPTIMIZATION_LEVEL = $(GCC_OPTIMIZATION_LEVEL_$(CONFIGURATION));
-GCC_OPTIMIZATION_LEVEL_Debug = 0;
-GCC_OPTIMIZATION_LEVEL_Production = 1;
-GCC_OPTIMIZATION_LEVEL_Release = 1;
+WK_EMPTY_ = YES;
+WK_NOT_ = YES;
+WK_NOT_YES = NO;
+WK_OVERRIDE_OPTIMIZATION_LEVEL = $(WK_NOT_$(WK_EMPTY_$(WK_FORCE_OPTIMIZATION_LEVEL)));
+
+GCC_OPTIMIZATION_LEVEL = $(GCC_OPTIMIZATION_LEVEL_OVERRIDE_$(WK_OVERRIDE_OPTIMIZATION_LEVEL));
+GCC_OPTIMIZATION_LEVEL_OVERRIDE_YES = $(WK_FORCE_OPTIMIZATION_LEVEL);
+GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO = $(GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_$(CONFIGURATION));
+GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Debug = 0;
+GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Production = 1;
+GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Release = 1;
+
OTHER_CFLAGS = $(inherited) -fno-omit-frame-pointer -g $(WK_ADDRESS_SANITIZER_OTHER_CFLAGS_$(WK_ENABLE_ADDRESS_SANITIZER)) $(WK_UNDEFINED_BEHAVIOR_SANITIZER_OTHER_CFLAGS_$(WK_ENABLE_UNDEFINED_BEHAVIOR_SANITIZER));
OTHER_CPLUSPLUSFLAGS = $(inherited) $(WK_ADDRESS_SANITIZER_OTHER_CPLUSPLUSFLAGS_$(WK_ENABLE_ADDRESS_SANITIZER));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes