aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
Commit message (Collapse)AuthorAge
* uid related fixes in docker sandboxGravatar Siddhartha Bagaria2018-05-17
| | | | | | | | uid and gid of -1 (set when not linux) can not really be used anywhere. Closes #5165. PiperOrigin-RevId: 196974660
* Remove AbruptException(ExitCode exitCode) constructor.Gravatar lpino2018-05-17
| | | | | | | | | This constructor was creating an Exception with a null message leading to possible NullPointerExceptions in a few places in our codebase. The call sites have been replaced with calls to AbruptException(String message, ExitCode exitCode) with a meaningful message. PiperOrigin-RevId: 196973540
* Fix Cpp{Compile,Link}Action environment and cache key computationGravatar ulfjack2018-05-17
| | | | | | | | | | These were previously ignoring the inhertied environment, i.e., --action_env=PATH did _not_ result in the PATH variable being forwarded from the client environment. Fixes #5142. PiperOrigin-RevId: 196966822
* Fix modules returning command optionsGravatar ulfjack2018-05-17
| | | | | | | Nobody reads the documentation, apparently. It also clearly states that getCommonCommandOptions should be used to add options to all commands. PiperOrigin-RevId: 196965665
* Automated rollback of commit 4ba134f008719a52c1f74dc070121017d0b08f44.Gravatar hlopko2018-05-17
| | | | | RELNOTES: None. PiperOrigin-RevId: 196953169
* Split user_link_flags from legacy_link_flagsGravatar hlopko2018-05-16
| | | | | | | | The difference between them is that user_link_flags will stay after we remove legacy fields from the crosstool. RELNOTES: None. PiperOrigin-RevId: 196940832
* Build support for passing a software cache prefetching hints file.Gravatar Googler2018-05-16
| | | | | | | | | This flag assumes llvm supports an experimental 'prefetch-hints-flag' flag. The Bazel support simply plumbs the provided file through to the compiler. The flag is independent from the other fdo_ flags, and may be applied in any combination with them. RELNOTES: Introduce build support for providing cache prefetch hints. PiperOrigin-RevId: 196916547
* Internal changeGravatar cpeyser2018-05-16
| | | | PiperOrigin-RevId: 196881464
* remote/exec: always mark files executable.Gravatar Jakob Buchgraber2018-05-16
| | | | | | | | | | | | The main motivation for this change is to act as a workaround for #4751. Additionally, this reduces the number of stat() system calls significantly e.g. by 50% when building Bazel (600K vs 1.2M). cc: @werkt @ola-rozenfeld Closes #5204. PiperOrigin-RevId: 196878093
* Replace use of output_object_file with output_file in CROSSTOOLS.Gravatar hlopko2018-05-16
| | | | | RELNOTES: None. PiperOrigin-RevId: 196870840
* Include broken packages in rbuildfiles responseGravatar mschaller2018-05-16
| | | | | | | | | | Also allow overrides for SkyQuery's getBuildFileTargetsForPackageKeysAndProcessViaCallback. Lastly, some cleanup in ParallelSkyQueryUtils. RELNOTES: SkyQuery's rbuildfiles now returns targets corresponding to broken packages. PiperOrigin-RevId: 196868692
* Remove glob list from native rulesGravatar laurentlb2018-05-16
| | | | | | | | Since the glob() function now returns a standard list, some code can be simplified. RELNOTES: None. PiperOrigin-RevId: 196867957
* Make ImportDepsCheckingLevel.ERROR essentially the same as STRICT_ERROR, ↵Gravatar cnsun2018-05-16
| | | | | | | checking direct dependencies. RELNOTES: None. PiperOrigin-RevId: 196860008
* Passes the runfile manifest artifact into RunfilesSupplierImpl so that it canGravatar shahan2018-05-16
| | | | | | | | be filtered by spawn inputs downstream. Documents why the manifest is passed to the RunfilesSupplierImpl constructor. PiperOrigin-RevId: 196858753
* Remove --incompatible_disable_glob_tracking flag.Gravatar laurentlb2018-05-16
| | | | | | RELNOTES: Flag `--incompatible_disable_glob_tracking` is removed. PiperOrigin-RevId: 196852718
* Enable manual trimming of config_feature_flags.Gravatar mstaib2018-05-16
| | | | | | | This enables users of config_feature_flags to specify the flags used by the transitive closure of a particular target in the transitive_configs attribute of all targets. It also adds a flag - --enforce_transitive_configs_for_config_feature_flag - which enforces this specification and uses it to trim the set of flags available to that target. RELNOTES: None. PiperOrigin-RevId: 196846092
* Create {Un}ManagedBuildEventServiceGrpcClient to allow customization of the ↵Gravatar lpino2018-05-16
| | | | | | | channel used to connect with BES. RELNOTES: none. PiperOrigin-RevId: 196845127
* Fix embedded JDK LICENSE handling for JDK 9Gravatar cushon2018-05-16
| | | | PiperOrigin-RevId: 196840344
* Add libc_top attribute to cc_toolchain in preparation for moving config data ↵Gravatar jcater2018-05-16
| | | | | | out of CppConfiguration. PiperOrigin-RevId: 196838680
* Port bazelrc flags into their own module.Gravatar ccalvarin2018-05-16
| | | | | | | | | This way the documentation logs them correctly as named "bazel," and describes the correct behavior. Needed for #4502. RELNOTES: None. PiperOrigin-RevId: 196837021
* remote: recursively delete incomplete downloaded output directory.Gravatar Jakob Buchgraber2018-05-16
| | | | | | | | Fixes #5047 Closes #5209. PiperOrigin-RevId: 196832678
* Properly quote $(location ) expansion for the shellGravatar Klaus Aehlig2018-05-16
| | | | | | | | | | | ...by using the ShellEscaper rather than the ad-hoc "escaping" in LocationExpander. Fixes #5190. At least to the extend that a context-independent quoting can work. Change-Id: I858662861a2504139c19d773690aef2befc23948 PiperOrigin-RevId: 196832574
* In TestsInSuiteValue, replace Target member with Label. This makesGravatar cpeyser2018-05-16
| | | | | | TestsInSuiteValue serializable. PiperOrigin-RevId: 196831698
* Support .afdo profiles in fdo_profileGravatar rosica2018-05-16
| | | | | RELNOTES: None. PiperOrigin-RevId: 196825564
* Expose local_proguard_specs to Skylark.Gravatar Googler2018-05-16
| | | | | RELNOTES: none PiperOrigin-RevId: 196824775
* Make inclusion of the zipper executable in CcToolchain depend solely on ↵Gravatar rosica2018-05-16
| | | | | | | | | | whether FDO optimization is used (--fdo_optimize or --fdo_profile) As part of the work of removing usage of c++ toolchain from CppConfiguration, CppConfiguration#isLLVMCompiler method needs to be removed. Currently, CppConfiguration#shouldIncludeZipperInToolchain (former CppConfiguration#isLLVMOptimizedFdo) method uses the CppConfiguration#isLLVMCompiler method to determine whether the compiler is LLVM and conditionally includes the zipper if the compiler is LLVM and FDO optimization is in place. Instead of rerouting the information on the compiler and FDO profile through FeatureFlagInfo, we make the inclusion of the zipper executable depend only on usage of FDO optimization. PiperOrigin-RevId: 196819907
* Filtering the legacy important_outputs field in the BEP by source, middlemanGravatar ulfjack2018-05-16
| | | | | | | | This change makes the field match the semantics of the legacy mechanism that is not open source. This is intended for migration only and the field should not be used otherwise (that is why the field is deprecated). PiperOrigin-RevId: 196817282
* test failure: print stacktrace on I/O errorGravatar Laszlo Csomor2018-05-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Print the stacktrace of unexpected I/O errors in StandaloneTestStrategy, to ease diagnosing the root cause of the exception. See https://github.com/bazelbuild/bazel/issues/4924 Without the stacktrace, all we see in BuildKite is, for example: ``` ERROR: Caught I/O exception: java.io.IOException: C:/users/b/_bazel_b/bnp8s_vg/execroot/io_bazel/_tmp/b6bda2f0385d1152d3a7f550c6cc1938/_bazel_b/install/23a47abea50baae4d7e032437c1cecc9/_embedded_binaries/embedded_tools/jdk/bin/java.exe (Permission denied) ERROR: C:/build/buildkite-worker-windows-java8-lfl8-1/bazel/google-bazel-presubmit/src/test/py/bazel/BUILD:71:1: Couldn't build file src/test/py/bazel/bazel_windows_test/test.log: failed: unexpected I/O exception: C:/users/b/_bazel_b/bnp8s_vg/execroot/io_bazel/_tmp/b6bda2f0385d1152d3a7f550c6cc1938/_bazel_b/install/23a47abea50baae4d7e032437c1cecc9/_embedded_binaries/embedded_tools/jdk/bin/java.exe (Permission denied) ``` The above log contains no information on what exactly tried accessing java.exe and how, and why it failed. With a stacktrace I'm hoping to shed light on the culprit. Change-Id: I4f3851cd1bc1b2b348217de5b41069591a8f4446 Closes #5207. Change-Id: I792f4a36c1e31ca6332db2dc2d37bd8e597050b3 PiperOrigin-RevId: 196815410
* Expose cc_common.create_compile_build_variablesGravatar hlopko2018-05-16
| | | | | | | | | | | | | | | This cl enabled skylark rules to create build variables used for C++ compile actions (in a limited form, e.g. build variables for modules are not exposed etc). Working towards #4571. This is an encore of https://github.com/bazelbuild/bazel/commit/c4fc6201fdfa71993e2e9e295a946150e6990c75 after fixing memory regression (CompileBuildVariables.getSafePathStrings fixed to return ImmutableList, which has smaller memory footprint). RELNOTES: None PiperOrigin-RevId: 196797581
* C++: Renames CcExecutionDynamicLibrariesInfo to CcExecutionDynamicLibrariesGravatar plf2018-05-16
| | | | | | | Since it's not a provider, it doesn't need the Info suffix anymore. RELNOTES:none PiperOrigin-RevId: 196793557
* Add --ignore_all_rc_files startup options.Gravatar ccalvarin2018-05-15
| | | | | | | | | | | | | This overrides --bazelrc and --[no]master_bazelrc regardless of order. Like --bazelrc and --[no]master_bazelrc, it cannot be mentioned in an rc file, this would be a contradiction. This flag is useful for testing, and for having a version-agnostic way to turn off all rc files, such as in the canonical command line reporting. Now that blazerc and bazelrc are separate, this is necessary. If explicit values for --bazelrc or --master_bazelrc are provided which are now ignored, Bazel will warn the user. #4502 Alternatives considered - We could avoid this flag but would need to have some well-documented, reusable list of the startup flags that effectively come to the same effect. This would be necessary in our integration tests and in the CommandLineEvent and other places where rc files need to be completely disabled for correctness. We decided that this startup option was more straightforward and usable for both users and Bazel devs: it shouldn't be used when more fine-grained control is needed, but provides warnings if users are likely to be confused by the outcome. RELNOTES: None. PiperOrigin-RevId: 196750704
* Optimizes performance of ActionFS staging and eliminates ActionFS updates.Gravatar shahan2018-05-15
| | | | | | | | | Extracts a class, InputArtifactData to hold the input data instead of using a raw map. This provides the flexibility needed to support both ActionFS and existing code so ActionFS does not need to rekey the input data. Uses the smaller, getDeclaredIncludeSrcs instead of getAllowedDerivedInputs when possible for staging optional inputs in ActionFS. PiperOrigin-RevId: 196736703
* Migrate Aspect to skylarkbuildapiGravatar cparsons2018-05-15
| | | | | RELNOTES: None. PiperOrigin-RevId: 196726540
* Migrate several compilation-related cpp definitions to skylarkbuildapiGravatar cparsons2018-05-15
| | | | | RELNOTES: None. PiperOrigin-RevId: 196722758
* Remove redundant @SkylarkModule annotation on SkylarkActionFactory.ArgsGravatar cparsons2018-05-15
| | | | | RELNOTES: None. PiperOrigin-RevId: 196722413
* Change TestSuiteExpansionValue to contain Labels instead of Targets.Gravatar cpeyser2018-05-15
| | | | PiperOrigin-RevId: 196719433
* Potentially allow children of a dirty node to be missing from the graph. ↵Gravatar janakr2018-05-15
| | | | | | Also pass the GraphInconsistencyReciever into SkyframeExecutor as a parameter. PiperOrigin-RevId: 196716642
* Remove vestigial java_plugin.data attributeGravatar cushon2018-05-15
| | | | | RELNOTES: Remove vestigial java_plugin.data attribute PiperOrigin-RevId: 196707434
* Move --track_incremental_state and --keep_state_after_build to ↵Gravatar felly2018-05-15
| | | | | | CommonCommandOptions to better facilitate certain kinds of benchmarking. PiperOrigin-RevId: 196695342
* Implement a limit for named_set_of_file eventsGravatar ulfjack2018-05-15
| | | | | | | | | | | This adds a command-line option which can be used to force Bazel to split up very large events, e.g., events with hundreds of thousands of entries. This is rare, but happens occasionally. It would be better to control the maximum event size directly, but that is significantly more difficult to do here. PiperOrigin-RevId: 196690600
* Replace --experimental_android_enforce_strict_deps_for_binaries_under_test ↵Gravatar cushon2018-05-15
| | | | | | with a package whitelist PiperOrigin-RevId: 196688645
* Add option --experimental_discard_actions_after_execution in order to turn ↵Gravatar janakr2018-05-15
| | | | | | | | it off after a release. Discarding actions hasn't been shown to have a significant positive effect on heap memory usage, after careful research by mschaller@. It's holding back other projects (threading Fileset metadata through) and adding complexity, so it's time to kill it. Out of an abundance of caution, I'll keep actions in memory via a flag flip, then, if it sticks, I'll change the default, and then I'll unwire everything. PiperOrigin-RevId: 196682768
* Adds a ?null check and return false? code block in equals() method ↵Gravatar Googler2018-05-15
| | | | | | overridden by classes which would?ve otherwise thrown an NPE. PiperOrigin-RevId: 196680390
* C++: Deletes CcLinkParamsInfoGravatar plf2018-05-15
| | | | | | | | This class is not necessary anymore. We can use CcLinkParamsStoreImpl directly which has been renamed to CcLinkParamsStore. RELNOTES:none PiperOrigin-RevId: 196656488
* Allow more characters in labels.Gravatar twerth2018-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Partly addresses #374. Specifically allow !%^`"'&;<>?[]{|} in target and package names. It's actually simpler now to declare what we don't allow. In target names: 0-31 (control characters) 58 ':' (colon) 92 '\' (backslash) 127 (delete) In package names: 0-31 (control characters) 58 ':' (colon) 64 '@' (at-sign) 92 '\' (backslash) 127 (delete) - '\' is a path segment separator on Windows, and allowing it can lead to silent output file conflicts and - therefore - data corruption. We may be able to allow it in the future, but I didn't want to make that call. - ':' is a special character that Bazel interprets as the package name / target name separator. - '@' in package names can probably be allowed; at the beginning of a label it indicates a workspace name, but not within a segment. We actually have some tests that disallow it specifically, but those can probably just be deleted; however, it does require a bit of investigation, so I decided to delay that change. It is possible that we don't correctly escape filenames in all cases. Also note that the shell may require escaping for specific characters, and that Bazel treats a single '*' (star) target name specially when given on the command line. RELNOTES: Bazel now allows almost all 7-bit ASCII characters in labels. PiperOrigin-RevId: 196650651
* Slightly refactor SpawnAction to improve env handlingGravatar ulfjack2018-05-15
| | | | | | | This is in preparation for fixing env handling as well as cache key (to use env) computations in subclasses of SpawnAction. PiperOrigin-RevId: 196626495
* DynamicCodec tweaks to make it into a super fast String serializer.Gravatar shahan2018-05-14
| | | | | | (3-8x faster than StringCodec). PiperOrigin-RevId: 196615858
* Ease the configuration-related restrictions of several more tests.Gravatar mstaib2018-05-14
| | | | | | | | | Use update() and other methods which properly respect the trimming transition over those which don't. Avoid using the target configuration if the configuration actually used by a target is available. RELNOTES: None. PiperOrigin-RevId: 196588405
* Automated rollback of commit c4fc6201fdfa71993e2e9e295a946150e6990c75.Gravatar mstaib2018-05-14
| | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Caused a memory regression *** Original change description *** Expose cc_common.create_compile_build_variables This cl enabled skylark rules to create build variables used for C++ compile actions (in a limited form, e.g. build variables for modules are not exposed etc). Working towards #4571. RELNOTES: None PiperOrigin-RevId: 196566686
* Fix some code font issuesGravatar ronshapiro2018-05-14
| | | | | RELNOTES: None. PiperOrigin-RevId: 196561473