| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
false.
--
MOS_MIGRATED_REVID=134452391
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The link action feature configuration command line options aren't needed
in the LTO Backend compile command line. This additionally causes a failure
when trying to compile ThinLTO and FDO, as the build variables for
the FDO link options in the feature configuration are not set.
Confirmed that this is a no-op for non-FDO builds (there are no c++-link* features),
which is probably why I didn't notice this and remove it earlier. We add the
lto-backend features later in LTOBackendArtifacts.scheduleLTOBackendAction()
--
MOS_MIGRATED_REVID=134076174
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
We *still* have case discrepancies in objc code, which appears to be a hard blocker to .d pruning. This change will not work until we've found some way to enforce case-consistency.
*** Original change description ***
Implement input pruning using .d files in objc.
--
MOS_MIGRATED_REVID=134069949
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=133944059
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--experimental_dynamic_configs=off - don't use dynamic configs
--experimental_dynamic_configs=on - use dynamic configs with trimmed fragments
--experimental_dynamic_configs=notrim - use dynamic configs with all fragments
This lets us decouple two independent dimensions of dynamic configurations: 1) being able to trigger new configurations and transitions anywhere and 2) only including the fragments needed by a target's transitive closure.
2) is likely to take much more time and effort to properly finesse (three notable challenges: late-bound attributes, aspects, and dynamic shedding of output path names). But 1) by itself already yields significant benefits. So in the name of starting to shift the config work from backend theory to stuff real builds actually use, this change lets us focus on productionizing 1) without blocking on getting all of 2) working first.
tl;dr: iterable deployment and all that.
--
MOS_MIGRATED_REVID=133874661
|
|
|
|
|
|
|
| |
C++/Python.
--
MOS_MIGRATED_REVID=133863929
|
|
|
|
|
|
|
|
|
| |
#getShellExecutable() method.
That's all it was used for anyway.
--
MOS_MIGRATED_REVID=133824769
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks TensorFlow and other Bazel jobs on ci.bazel.io
*** Original change description ***
Change execution root for external repositories to be ../repo
Some of the important aspect of this change:
* Remote repos in the execution root are under output_base/execroot/repo_name, so the prefix is ../repo_name (to escape the local workspace name).
* Package roots for external repos were previously "output_base/", they are now output_base/external/repo_name (which means source artifacts always have a relative path from their repository).
* Outputs are under bazel-bin/external/repo_name/ (or similarly under genfiles). Note that this is a bit of a change from how this was implemented in the previous cl.
Fixes #1262.
RELNOTES[INC]: Previously, an external repository would be symlinked into the
execution root at execroot/local_repo/external/remote_repo. This changes it to
be at execroot/remote_repo. This may break genrules/Skylark actions that
hardcode execution root paths. If this causes breakages for you, ensure that
genrules are using $(location :target) to access files and Skylark rules are
using http://bazel.io/docs/skylark/lib/File.html's path, dirname, etc.
functions.
Roll forward of bdfd58a.
--
MOS_MIGRATED_REVID=133709658
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=133609638
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some of the important aspect of this change:
* Remote repos in the execution root are under output_base/execroot/repo_name, so the prefix is ../repo_name (to escape the local workspace name).
* Package roots for external repos were previously "output_base/", they are now output_base/external/repo_name (which means source artifacts always have a relative path from their repository).
* Outputs are under bazel-bin/external/repo_name/ (or similarly under genfiles). Note that this is a bit of a change from how this was implemented in the previous cl.
Fixes #1262.
RELNOTES[INC]: Previously, an external repository would be symlinked into the
execution root at execroot/local_repo/external/remote_repo. This changes it to
be at execroot/remote_repo. This may break genrules/Skylark actions that
hardcode execution root paths. If this causes breakages for you, ensure that
genrules are using $(location :target) to access files and Skylark rules are
using http://bazel.io/docs/skylark/lib/File.html's path, dirname, etc.
functions.
Roll forward of bdfd58a.
--
MOS_MIGRATED_REVID=133606309
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=133442221
|
|
|
|
|
|
|
|
|
|
|
|
| |
by class.
TransitiveInfoProviderMap enforces that the provider implements the interface it's keyed by
and provides accessors the reduce the amount of casting. This in general reduces boilerplate throughout wherever TransitiveInfoProviders are mapped by their class.
Also add shorthand for adding a provider where it only implements TransitiveInfoProvider once, reducing the redundant specification of the TransitiveInfoProvider class. Infer the class as the exclusive direct implementor of TransitiveInfoProvider to account for special cases like AutoValue and LicenseProvider.
--
MOS_MIGRATED_REVID=133386336
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks Bigtop incremental build
*** Original change description ***
Implement input pruning using .d files in objc.
--
MOS_MIGRATED_REVID=133271059
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
others in opt compiles.
A while back, we added a HIDDEN_TOP_LEVEL output group to CcBinary targets to
ensure that --process_headers_in_dependencies works as expected for them.
However, adding all HIDDEN_TOP_LEVEL files is actually too much and e.g. also
contains .pic.o files which are expensive to build but not actually needed for
the compile. The fundamental difference between CcLibrary and CcBinary targets
here is that a CcBinary already declares most of its inputs as it needs all of
them to link the binary. In contrast, CcLibraries wouldn't need any of they
dependent .o files and thus wouldn't even try to build them.
This changes splits out the header token files which are required to make
--process_headers_in_dependencies work correctly and only adds those to
HIDDEN_TOP_LEVEL outputs of binaries files.
Also removing some unused code that was producing warnings.
--
MOS_MIGRATED_REVID=132883722
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In some cases, Bazel has already been doing this.
In other cases, Bazel tried to infer the default cpu from the CROSSTOOL, but it
did not do so consistently across different configuration fragments. I.e.,
Bazel ended up with an inconsistent set of toolchains for e.g., Python, C++,
and Java.
After this change, Bazel ignores any default_cpu setting in the CROSSTOOL.
Note that the Jvm is still inconsistent with all others, as it uses "default"
as the cpu value and ignores both command-line-specified and CROSSTOOL-specified
values.
--
MOS_MIGRATED_REVID=132879102
|
|
|
|
|
|
|
| |
necessary for objc compiles, for which include scanning can be incorrect.
--
MOS_MIGRATED_REVID=132876916
|
|
|
|
|
|
|
|
|
|
| |
a85bf4b19c680a6db11f21758847dc88ec0aa658.
The bad merge undid part of the behavior around pruning header modules and also
passed in "shouldPruneModules" as "usePic".
--
MOS_MIGRATED_REVID=132846871
|
|
|
|
|
|
|
| |
mentioned in the dynamic_runtime_libs attribute.
--
MOS_MIGRATED_REVID=132676097
|
|
|
|
|
|
|
|
|
|
|
| |
Chipping away at making the big CL for #1262 smaller. Only runfiles paths
are different right now, so this makes getPathUnderExecRoot and getSourceRoot
return the same thing. Also corrected a couple places where
Label.EXTERNAL_PATH_PREFIX and Label.EXTERNAL_PACKAGE_NAME were being used
incorrectly.
--
MOS_MIGRATED_REVID=132671081
|
|
|
|
|
|
|
| |
Needed for #1262. Doesn't do anything, yet, other than make the CL smaller.
--
MOS_MIGRATED_REVID=132671036
|
|
|
|
|
|
|
| |
This is part of prepping for #1262.
--
MOS_MIGRATED_REVID=132553178
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=132550233
|
|
|
|
|
|
|
| |
It was an ugly oversight.
--
MOS_MIGRATED_REVID=132549653
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=132547161
|
|
|
|
|
|
|
|
| |
build first before discovering their inputs and this build doesn't properly
declare its inputs if we do pruning.
--
MOS_MIGRATED_REVID=132414200
|
|
|
|
|
|
|
| |
RELNOTES[INC]: filegroup-based C++ toolchains are not supported anymore. --*_crosstool_top options must always point to a cc_toolchain_suite rule (or an alias of one).
--
MOS_MIGRATED_REVID=132410829
|
|
|
|
|
|
|
| |
include paths.
--
MOS_MIGRATED_REVID=132345416
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=132261111
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Prunes .modulemap files incorrectly. See [].
*** Original change description ***
Implement input pruning using .d files in objc.
--
MOS_MIGRATED_REVID=132246906
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=132061988
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pruning here can lead to a insufficient rebuilds which in turn cause
module-out-of-date errors. The problem surfaces if a module A depends on a
module B, but the headers of module A don't actually use any of B's headers.
Then we would currently not need to rebuild A when B changes although we are
storing a dependency in it. If B changes and we then build something that uses
A (a header of it), we mark A as well as all of its transitive dependencies as
inputs. We still don't need to rebuild A, as none of its inputs have changed,
but we do rebuild B now and then the two modules are out of sync.
For now, just disable pruning of header modules while building the modules. In
the long run, it would be even better to not embed a dependency on B into A,
but that requires signficantly larger changes.
--
MOS_MIGRATED_REVID=132039754
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=131990160
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=131965224
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=131951535
|
|
|
|
|
|
|
| |
off in the objc case.
--
MOS_MIGRATED_REVID=131943500
|
|
|
|
|
|
|
|
|
|
|
| |
warning from Bazel.
This behavior doesn't really make sense except within Google.
Fixes #1286.
--
MOS_MIGRATED_REVID=131813322
|
|
|
|
|
|
|
| |
This makes the sanity check dependent on the configuration fragments returning proper roots, but it's not that bad because it already depends on them returning the proper set of implicit labels and #getImplicitLabels() will go away soon anyway.
--
MOS_MIGRATED_REVID=131705535
|
|
|
|
|
|
|
|
|
|
|
| |
This makes the C++ rules standalone, and the CcCommonTest ensures that (at
least) analysis of C++ targets works even if no Apple / Xcode rules are
present.
We can also compile them separately, in a future change.
--
MOS_MIGRATED_REVID=131583691
|
|
|
|
|
|
|
| |
Collection<Artifact>
--
MOS_MIGRATED_REVID=131285541
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
can't say that I fully know what I am
doing, but this basically reinstantiates the old behavior. Before commit b6fd4ed25b6201eaaabb14c389c02819184ad4a6,
transitive modules were added in getAdditionalInputs() (by adding both
topLevelHeaderModules and impliedHeaderModules). I removed that, but we still
need to create the corresponding symlinks, so adding transitiveModules outside
of getAdditionalInputs now.
--
MOS_MIGRATED_REVID=131139735
|
|
|
|
|
|
|
|
|
| |
This change adds a new --experimental_use_llvm_covmap flag which may
be used in conjunction with the --collect_code_coverage flag to
generate LLVM style coverage symbols instead of gcov.
--
MOS_MIGRATED_REVID=131065609
|
|
|
|
|
|
|
| |
Basically, take the set of headers found by #include scanning and check what modules they are coming from. If a module provides at least one of the required headers, it is required as are all of its dependent modules (because of the way modules are implemented). Only use the actually required modules as compilation inputs and as flags handed in on the command line. Also move the logic to calculate top-level modules from the analysis phase into the execution phase. In the long run, we might be able to completely remove this logic now, but for now, we want to be able to quickly switch between the old and the new behavior. Thus, pruning of modules is now guarded on a feature prune_module_headers.
--
MOS_MIGRATED_REVID=131058820
|
|
|
|
|
|
|
|
|
| |
shows that they aren't actually used anymore. If they were, they wouldn't work
as expected as the nested sets that are used in the comparison don't implement
hashCode or equals.
--
MOS_MIGRATED_REVID=130945911
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=130938527
|
|
|
|
|
|
|
|
|
| |
assert that solib symlinks always point to dynamic libraries.
Note that this makes it possible to crash Bazel with a malicious CROSSTOOL file, but since we are migrating to cc_toolchain_suite which raises a user-friendly error earlier, this is okay.
--
MOS_MIGRATED_REVID=130915262
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=130914217
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=130547971
|
|
|
|
|
|
|
|
|
|
| |
Otherwise we fail the Precondition check added at the start of CppLinkAction
build() for a shared library target's indexing action.
Added a test which reproduces the issue without the fix.
--
MOS_MIGRATED_REVID=130513291
|
|
|
|
|
|
|
| |
line option to determine if it should be a whole archive one and use the artifact category in LinkerInput to make that decision instead.
--
MOS_MIGRATED_REVID=130508699
|
|
|
|
|
|
|
| |
LinkerInput#getArtifactCategory() and use this information to remove one use of LINK_LIBRARY_FILETYPES.
--
MOS_MIGRATED_REVID=130400793
|