android_build_soong/scripts
Peter Collingbourne e7c71c344d Split Rust crate builds into compile and link phases.
Teach rustc to generate object files instead of a linked executable
for binary and shared library crates. This lets us skip the lengthy
Rust compilation phase when only the C++ dependencies of these crates
have changed.

This works using a Python script that replaces the linker invoked by
rustc and converts the linker command line into a rspfile that can be
used during the link phase. The script makes certain assumptions about
how rustc invokes the linker, but since we control the version of Rust
we use, we can update the script if those assumptions ever break. I've
asked the Rust developers about adding an official way to do this so
hopefully we won't need to rely on this hack in the future.

The rustc rule for Kythe has been altered to pass linker=true, somewhat
consistent with the main rustc rule, which now doesn't invoke the actual
linker either. `m xref_rust` still succeeds, but hopefully we can find
someone who knows more about the rest of the Kythe pipeline who can let
us know whether it should still work. Otherwise, let's use this CL as
an opportunity to find out whether the rest of the pipeline is happy
with linker=true, since otherwise we will find it hard to maintain the
Kythe rule in the future.

Change-Id: Ifb9c8689c1bd78c0afcf6fdfd111140d20377536
2023-04-12 15:51:41 -07:00
..
check_boot_jars Merge changes from topic "java17-record-support" 2023-03-03 15:12:28 +00:00
hiddenapi Allow obfuscated classes on bootclasspath 2023-01-18 12:59:23 +00:00
Android.bp Create a sh_binary target for jars-to-module-info 2023-03-17 14:58:08 +00:00
archive_repack.sh
build-apex-bundle.py Add a host tool to create an APEX bundle 2022-09-21 13:27:49 +09:00
build-ndk-prebuilts.sh build-ndk-prebuilts.sh: disable bazel. 2023-03-21 00:42:35 +00:00
build-rustdocs.sh rust: doc: Zip up docs when done 2021-08-20 13:08:16 -07:00
build_broken_logs.go Reformat build/soong for go 1.19 2022-08-17 10:43:13 -07:00
check_do_not_merge.sh Disallow using error-prone merge strategies 2021-02-19 13:05:54 +00:00
construct_context.py Apply pylint to scripts/construct_context*.py 2021-08-26 01:06:48 +00:00
construct_context_test.py Apply pylint to scripts/construct_context*.py 2021-08-26 01:06:48 +00:00
conv_linker_config.py Fix conv_linker_config with multiple input json files 2023-03-09 07:46:00 +00:00
conv_linker_config_test.py Add tests for conv_linker_config 2023-03-09 07:46:25 +00:00
diff_build_graphs.sh Fix location of host tools 2021-11-05 14:10:01 -07:00
freeze-sysprop-api-files.sh
gen-java-current-api-files.sh
gen-kotlin-build-file.py
gen-sysprop-api-files.sh
gen_java_usedby_apex.sh Java used-by API list generation 2021-12-14 14:52:58 -08:00
gen_ndk_backedby_apex.sh Save all the detected native shared library backing by mainline modules. 2021-10-19 14:33:57 -07:00
gen_ndk_usedby_apex.sh bazel apex: clean up gen_ndk_usedby_apex.sh to work in bazel sandbox. 2022-11-07 08:38:01 +00:00
get_clang_version.py [get_clang_version] Make the version regex permissive 2021-10-06 09:44:15 -07:00
get_clang_version_test.py [scripts] Add script to print clang prebuilts version 2021-06-25 11:57:16 -07:00
jar-args.sh
jar-wrapper.sh
jars-to-module-info-java.sh
jsonmodify.py Merge changes Ibcf908d9,I786ab152 2022-07-12 13:07:28 +00:00
jsonmodify_test.py Adding support to conditionally replace a value 2022-07-12 11:53:07 +01:00
lint_project_xml.py Fix minor issues in updatability lint CLs. 2021-04-22 13:40:41 -07:00
lint_project_xml_test.py Add lint_project_xml_test.py 2021-04-20 11:04:51 -07:00
list_image.sh Recursively list Android image contents. 2022-04-20 20:02:11 -07:00
manifest.py Convert soong scripts to python 3 2021-11-10 13:49:27 -08:00
manifest_check.py Revert "manifest_check.py: add uses-libraries propagaged via dex..." 2022-06-13 09:06:44 +00:00
manifest_check_test.py Apply pylint to scripts/manifest_check*.py 2021-09-08 03:59:40 +00:00
manifest_fixer.py Overriding placeholder version in updatable apks 2022-08-03 12:05:14 +01:00
manifest_fixer_test.py Overriding placeholder version in updatable apks 2022-08-03 12:05:14 +01:00
microfactory.bash Add prebuilts/ to microfactory includes 2022-10-19 11:11:45 -04:00
mkcratersp.py Split Rust crate builds into compile and link phases. 2023-04-12 15:51:41 -07:00
ninja_rsp.py
package-check.sh Fix script for package check to work on macOS 2021-10-04 15:29:06 +00:00
rbc-run Always build mk2rbc/rbcrun 2022-03-29 14:55:17 -07:00
reverse-deps.sh Account for "validations:" 2021-11-23 12:12:06 -08:00
run-ckati.sh Run ckati step of the Android build tracing given variables 2023-01-04 10:08:43 -08:00
rustfmt.toml Update rustfmt.toml to 2021 edition 2022-02-10 16:55:01 +11:00
setup-android-build.sh
setup_go_workspace_for_soong.sh Upgrade to golang protobuf api v2 2021-07-23 11:12:05 -07:00
strip.sh Use create_minidebuginfo tool instead of bash script. 2021-05-01 00:06:07 +01:00
system-clang-format
system-clang-format-2
test_config_fixer.py Allow android tests to specify a mainline package name 2023-02-08 12:38:50 -08:00
test_config_fixer_test.py Allow android tests to specify a mainline package name 2023-02-08 12:38:50 -08:00
toc.sh Fix toc.sh, llvm-nm does not recognise '-f P' option 2021-04-03 03:21:24 +08:00
transitive-deps.sh Account for "validations:" 2021-11-23 12:12:06 -08:00
unpack-prebuilt-apex.sh Fix deapexer usage in prebuilt_apex/apex_set 2022-12-12 17:40:26 +00:00
update_out A script to update the file contents with the command output. 2021-11-18 15:15:45 -08:00