Index: build/config/BUILDCONFIG.gn |
diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn |
index 2036b3451904718854386ad7b6c6013ebf768033..be1cb35979a498e132a7bacda87fa165f148289d 100644 |
--- a/build/config/BUILDCONFIG.gn |
+++ b/build/config/BUILDCONFIG.gn |
@@ -643,10 +643,20 @@ template("component") { |
# When there are no sources defined, use a source set to avoid creating |
# an empty static library (which generally don't work). |
# |
- # TODO(brettw) remove the Android condition or comment why it needs to be |
- # kept after some analysis. Source sets vs. static libraries seem to be |
- # causing some performance differences. As part of the analysis for |
- # http://crbug.com/619593 we're testing source sets for components again. |
+ # When we changed components to default from source sets to static |
+ # libraries, an Android benchmark regressed slightly |
+ # (https://crbug.com/619593). We don't have a good theory on why this might |
+ # be since theoretically it should be the same. It could be something as |
+ # silly as random code locality luck. |
+ # |
+ # There seems to be no build-time performance hit to using source sets on |
+ # Android (the normal reason for defaulting to static libraries), so we |
+ # make the default on Android to be source set. |
+ # |
+ # If it's been a long time since this was added and you're skeptical, |
+ # please feel free to remove the Android exception and see if any |
+ # benchmarks obviously regress. If not, it would be great to standardize |
+ # with the rest of the platforms. |
_component_mode = "source_set" |
} else { |
_component_mode = "static_library" |