Commit Graph

1665 Commits

Author SHA1 Message Date
Dan Willemsen
38dc09d39a Use our prebuilt M4 for flex and bison
And ensure we've got all the proper dependencies.

Bug: 117561006
Test: treehugger
Change-Id: Ia9690b2c0d73a48744c8e33fe83196d02b1e904d
2020-01-08 22:31:12 -08:00
Dan Willemsen
b195e7ab04 Use symlinks in the build graph for jni libs
Now that ninja uses lstat and can support installing arbitrary symlinks,
switch jni lib symlinks from LOCAL_POST_INSTALL_CMDS to real rules.

Bug: 128577186
Test: List of files under PRODUCT_OUT is the same before/after this change
Test: out/target/product/generic/.installable_files now includes the symlinks
Test: m installclean; m NfcNci -> symlinks installed with correct dest
Test: m NfcNci; m NfcNci -> ninja: no work to do
Change-Id: I078dca53ab3d93f74c36fa66d5577e6e3e0640d6
2020-01-06 10:25:56 -08:00
Dan Willemsen
dec6e8e056 Export list of "installable" files to soong_ui
These are a (partial) list of files that we'd install with a default
build. The idea is that if something is removed from this list, soong_ui
can remove it from the installed location before running ninja.

It's okay if there are things missing from this list, it's not intended
to be a 100% solution replacing installclean / CleanSpec.mk, just
something that handles 80% of the cases without user involvement.

In particular, if something is removed from PRODUCT_PACKAGES, we'll
remove it from disk, but not necessarily rebuild the image files. That's
the same as most use cases of CleanSpec.mk today, and often some other
change will trigger the necessary images to be rebuilt.

We should be able to fix that by changing all of the image creation
rules to depend on the (partial) list of files they care about, or by
fixing ninja to rebuild things when their list of dependencies change.
(Other tools run into this same problem)

The list of test files is also included so that we can remove obsolete
tests from their "installed" locations within test suites and the
testcases folders.

Test: remove a module from PRODUCT_PACKAGES, see the print and file removed
Test: change the name of a cts test, see the old one removed from cts
Change-Id: I67f270a6713369099ca523aaf991ee3beb815c0a
2020-01-03 19:19:11 -08:00
Colin Cross
9d789145fa Merge "Set pools manually for rules that can run in RBE or goma" 2019-11-15 18:19:33 +00:00
Tom Cherry
3c697d59fb Merge "Check property type in host_init_verifier" 2019-11-13 18:41:17 +00:00
Colin Cross
23dcf76a36 Set pools manually for rules that can run in RBE or goma
Use .KATI_NINJA_POOL := none to mark rules that can run in RBE or
goma when they are enabled, which along with passing
--default_pool=local_pool will allow moving remoteable jobs into
the remote pool without relying on hacks in kati.

Fixes: 143938974
Test: inspect pools in build-${TARGET-PRODUCT}.ninja for m USE_RBE=true
Test: inspect pools in build-${TARGET-PRODUCT}.ninja for m USE_GOMA=true
Change-Id: I08615ae1f2eaef9ff0ba253b8aa3d83ab57ebb27
2019-11-12 13:59:49 -08:00
Tom Cherry
2e92cfb701 Check property type in host_init_verifier
We have all of the 'type' information for properties available during
build time, so let's check this when setting properties in init.

Test: setprop apexd.status bad results in:
host_init_verifier: Command 'setprop apexd.status bad'
(out/soong/.intermediates/system/core/rootdir/init.rc/android_x86_core/init.rc:927)
failed: Property type check failed, value doesn't match expected type
'enum starting ready'
host_init_verifier: Failed to parse init script
'out/soong/.intermediates/system/core/rootdir/init.rc/android_x86_core/init.rc'
with 1 errors
Test: CF builds without that error

Change-Id: Ia1b24ab42e2193e3298021bc86ee2309ca7a381f
2019-11-08 17:58:31 -08:00
Colin Cross
665ebbe471 Fix turbine classpath arguments in Make
We were passing "--classpath foo.jar --classpath bar.jar" to turbine,
it now wants (and may always have expected?)
"--classpath foo.jar bar.jar".

This is equivalent to Ib7e0ca64a34e236110f7b785d6a0fb51ed75567e in
Soong.

Test: m java
Change-Id: I061ebf302a215c66b1923056716b60bf0160d9bc
2019-11-01 13:35:17 -07:00
Colin Cross
f0add55066 Use system modules for turbine in Make
turbine supports taking system modules on the command line,
now that we target Java language level 1.9 and use system modules
by default switch turbine to match javac.

This is equivalent to Ieee07502151da0d5693bb8929213d495c039106b
in Soong.

Test: m java
Change-Id: Ib91c6f57b316f48f1ab819e4e1d2dc2e0ee42988
2019-11-01 13:34:46 -07:00
Steven Moreland
bbdb6cbb69 host_init_verifier: no HIDL_INTERFACE_HIERARCHY
Since this is built into host_init_verifier now.

Bug: 141567104
Test: build w/ and w/o host_init_verifier throwing a related error
Change-Id: I75a8c373fcfb054a5074039211134761596600c3
2019-10-16 16:35:17 +00:00
Colin Cross
bf086436b0 Remove stray ZIPALIGN_PAGE_ALIGN_FLAGS
Iae26e4676c29c68fa3f76187512c82786bfa0522 removed the definition
of ZIPALIGN_PAGE_ALIGN_FLAGS in favor of always using the -p flag,
but left accidentaly left one usage.  Replace it with -p.

Bug: 141212627
Test: m checkbuild
Change-Id: Ica69d9195426f8f30039da211ed1a0ad5dffe8e8
2019-10-10 12:52:13 -07:00
Mitch Phillips
39ef563294 Move definition of dist-for-goals before call.
New changes to Soong allow for dist-for-goals to be directly invoked
through the Soong-side of the build system.

This presents a problem, as the dist-for-goals propagation for Soong
lands in make_vars-$(target).mk, which is called before dist-for-goals
is defined.

We move the dist-for-goals definition (through moving where distdir.mk
is included) to be before any possible use of the call to
dist-for-goals.

Test: m checkbuild
Change-Id: Icef27a4d2239948b07354c87b58c9985a66a53bd
2019-09-26 14:57:33 -07:00
Dan Shi
d9bef81f7c Merge "Create a vts-core suite harness package" 2019-09-20 18:06:19 +00:00
Dan Shi
796ff4ffb5 Create a vts-core suite harness package
vts-core.zip will include all vts-core tests and suite harness
(vts-core-tradefed).

Bug: 141012181
Test: m -j vts-core

Change-Id: Ib13a2bffb4dc9619d2732d65729ecb0246a0b9a0
2019-09-19 13:13:44 -07:00
Jaewoong Jung
9f2e68009d Merge "Revert "Build: Fix test data no present in test suite zip files."" 2019-09-17 14:00:45 +00:00
Jaewoong Jung
5ea6971a1d Revert "Build: Fix test data no present in test suite zip files."
This reverts commit 068d101077.

Reason for revert: Caused a regression

Test: Added data to a sh_test and compared before vs after
Fixes: 140761783
Change-Id: Ied6427cb2dc3093fb88632eb8f337c2b76e86b95
2019-09-13 19:06:30 +00:00
Colin Cross
d30a949547 Merge "Use more variables from Soong" 2019-09-09 17:21:44 +00:00
Elliott Hughes
fdef43d69c Merge "Switch to toybox stat on macOS too." 2019-09-05 21:02:06 +00:00
Elliott Hughes
2e51a1553f Switch to toybox stat on macOS too.
Bug: http://b/139450866
Test: builds
Change-Id: I1a992a63fbf5181a48262901730b8b67661cc259
2019-09-05 10:02:41 -07:00
Ramy Medhat
eef0efadb3 Merge "Add labels to rewrapper cc compile action. Prevent ccwrapper from being used in links."
am: f51a70b009

Change-Id: I08921d50243c3984a2edd518750465b58896b4d9
2019-08-13 10:48:10 -07:00
Ramy Medhat
e5839f912b Add labels to rewrapper cc compile action. Prevent ccwrapper from being
used in links.

Test: Built aosp-arm64_eng with and without USE_RBE=1

Change-Id: I8d04069219a9467c3de9a028eb68e3115173f1e2
2019-08-12 14:13:31 -04:00
Colin Cross
f272adb168 Use more variables from Soong
Remove more copies of variables that are computed by Soong.

Test: m checkbuild
Change-Id: If78d4650438cc91d00c691db2fc97c5b790d5648
2019-08-09 08:40:30 -07:00
Dan Willemsen
0c5a068d02 Merge "Remove import_includes/export_includes"
am: 6240872250

Change-Id: Idf487156730321d4172a057697ac3585497de13f
2019-08-05 10:44:05 -07:00
Dan Willemsen
18ffd5891e Remove import_includes/export_includes
Now that ONE_SHOT_MAKEFILE no longer exists, we don't have to rely on
the filesystem to store this informtion.

This removes ~16.7k files from our build graph
(aosp-master/aosp_arm64-eng), though only about 600 of them were being
used in a normal build.

Test: treehugger
Change-Id: I3ac12f5ea7f11d25064109a0599bc5be1976fba5
2019-08-01 14:56:45 -07:00
Dan Willemsen
6e41454ab0 Merge "Add missing aapt2 dep in appcompat-files"
am: f915d9d586

Change-Id: Ib006e27f634945fec6ae73f5e9682dbf43593990
2019-08-01 12:09:12 -07:00
Luca Stefani
a239c67ed3 Add missing aapt2 dep in appcompat-files
* When soong_app_prebuilt calls appcompat-header
  with appcompat enabled aapt2 was missing

Test: m SystemUI
Change-Id: I26bcb507f68902ff95a1045dfeb22dd8d4913a92
2019-08-01 16:29:06 +02:00
Tom Cherry
6cf1b11ead Generate /etc/{passwd,group} for all partitions
Bug: 73062966
Test: can load AIDs from partitions other than vendor
Test: bionic-unit-tests
Merged-In: Ia85abbeefe5a945369970f2aef42692e07ab8c09
Change-Id: Ia85abbeefe5a945369970f2aef42692e07ab8c09
(cherry picked from commit 8a54ec8482)
2019-07-23 17:07:11 +00:00
Tom Cherry
6722de1277 Merge "Generate /etc/{passwd,group} for all partitions" 2019-07-23 16:40:01 +00:00
Tom Cherry
fb303a5903 Generate /etc/{passwd,group} for all partitions
Bug: 73062966
Test: can load AIDs from partitions other than vendor
Test: bionic-unit-tests
Merged-In: Ia85abbeefe5a945369970f2aef42692e07ab8c09
Change-Id: Ia85abbeefe5a945369970f2aef42692e07ab8c09
2019-07-22 21:41:17 +00:00
Jeff Vander Stoep
c9de6f9de7 Renderscript: change extension .rs to .rscript
Reserve .rs extension for Rust.

Bug: 137365032
Test: make checkbuild
Test: cd frameworks/compile/slang/tests
    ./slang_tests.py
Test: atest CtsRenderscriptTestCases
Test: CtsRsCppTestCases

Exempt-From-Owner-Approval: Clean CP
Change-Id: Ibfccb4f52b74f9ac95c373f48d775254ba77288d
Merged-In: Ibfccb4f52b74f9ac95c373f48d775254ba77288d
(cherry picked from commit 480864f1b0)
(cherry picked from commit f9b4f4b3e4)
2019-07-18 04:00:45 +00:00
Jeffrey Vander Stoep
972695d81d Merge "Renderscript: change extension .rs to .rscript" 2019-07-18 02:02:00 +00:00
Jeff Vander Stoep
c44aa3be41 Renderscript: change extension .rs to .rscript
Reserve .rs extension for Rust.

Bug: 137365032
Test: make checkbuild
Test: cd frameworks/compile/slang/tests
    ./slang_tests.py
Test: atest CtsRenderscriptTestCases
Test: CtsRsCppTestCases

Change-Id: Ibfccb4f52b74f9ac95c373f48d775254ba77288d
Merged-In: Ibfccb4f52b74f9ac95c373f48d775254ba77288d
2019-07-17 18:57:49 +00:00
Daniel Norman
0d1b2ddaad Merge "Changes host_init_verifier to use hidl interface inheritance hierarchy."
am: 858fa08427

Change-Id: I4257caefab23a66d34f3160e922bff5e140e002d
2019-07-12 11:32:38 -07:00
Daniel Norman
858fa08427 Merge "Changes host_init_verifier to use hidl interface inheritance hierarchy." 2019-07-12 18:01:46 +00:00
Paul Duffin
533733d1e8 Merge "Remove direct dependency on art/tools/veridex/appcompat.sh"
am: 831197ee31

Change-Id: I581234249a75c3fa2eca56976a271e122c834582
2019-07-11 08:08:56 -07:00
Paul Duffin
c319fdb65a Remove direct dependency on art/tools/veridex/appcompat.sh
The dependency causes a build breakage when unbundling the runtime
module, i.e. when the art repository is not present in the local build
tree.

Bug: 134379140
Test: m droid
Change-Id: Ia3f9b60dbe3e9cf00ea13ae7bdc74bdd386b4362
2019-07-11 12:24:54 +01:00
Daniel Norman
bfdf765f97 Changes host_init_verifier to use hidl interface inheritance hierarchy.
Bug: 118016875
Test: Added 'interface' lines to an init_rc file and observed errors
when misspelled or missing entire inheritance hierarchy.
Change-Id: I71d515e0c12ed74800b9536f07da9fc7bb69597e
2019-07-09 20:18:49 +00:00
nelsonli
4cb85b5865 Merge "Build: Fix test data no present in test suite zip files."
am: 98b9c5dded

Change-Id: Ifd655c5d413e8db73d0220b454a28aacc5a5173a
2019-07-08 17:57:40 -07:00
nelsonli
068d101077 Build: Fix test data no present in test suite zip files.
my_installed_test_data (LOCAL_TEST_DATA) no present in test
 suite zip files for device tests

Bug: 135957483
Test: 1. Remove the patch aosp/1008195
      2. m general-tests
      3. unzip general-tests.zip
      4. data files should exist in target/testcases/toybox-tests

Change-Id: I3f0a4d87e284c809625843d55dc5d35ef77e79bb
2019-07-05 23:52:45 +08:00
TreeHugger Robot
218adad125 Merge "DO NOT MERGE - Merge qt-dev-plus-aosp-without-vendor (5699924) into stage-aosp-master" into stage-aosp-master 2019-07-02 07:40:58 +00:00
Tom Cherry
61ca76dc12 Merge "Switch host_init_verifier to getopt()" am: fdbd55d259
am: e7561bc59e

Change-Id: Idc5b4914b4b8e56deecda93a5fbadb629b301be6
2019-06-27 16:04:09 -07:00
Daniel Norman
ce664b0a37 Uses the KNOWN_HIDL_INTERFACES file in host_init_verifier.
This file is used to check that each interface in an init_rc file is a
known hidl_interface.

Test: Adding a misspelling to an init_rc's interface line and observing
build failure.
Bug: 77646540
Change-Id: I30c2dff29679b95085b5c76f6d68e4d794f965e9
2019-06-27 15:54:43 -07:00
Tom Cherry
f0bc919754 Switch host_init_verifier to getopt()
Test: build, including init script verification, works
Change-Id: Ia786cdf14eb9449ad2d5a6ac9b571c6be709f1e5
2019-06-27 09:21:53 -07:00
Colin Cross
670cc43966 Merge "Don't pass --legacy by default to aapt2 compile" am: 1aa3ff6fea
am: 9e0a0d7a2a

Change-Id: I45db8a6ff924cf691071bb8c6de067bc3b791655
2019-06-26 11:35:47 -07:00
Colin Cross
fd5fa34775 Don't pass --legacy by default to aapt2 compile
Don't pass --legacy by default, it is rarely necessary and converts
some errors into warnings that crash at runtime.  The modules that
need it have had --legacy added to LOCAL_AAPT_FLAGS.

Bug: 135597368
Test: m java
Change-Id: I0cb213599d6612746d988b8966cbd529b5328db0
2019-06-22 13:04:51 -07:00
Dan Willemsen
6b61e81a6e Merge changes I2183ac9f,I2c76701c,Ibbe4e11a,I0706faa2,Ic5b7c4fb, ... am: 491ae5b2d1
am: fea54c0231

Change-Id: Ib485a13372709505f98643e6f69947d4c8f75a2f
2019-06-13 10:38:47 -07:00
Treehugger Robot
491ae5b2d1 Merge changes I2183ac9f,I2c76701c,Ibbe4e11a,I0706faa2,Ic5b7c4fb, ...
* changes:
  Fix dependency on BOARD_AVB_SYSTEM_KEY_PATH
  Fix some java library dependencies
  Depend on NDK libraries
  Call clean-path in more places
  Add missing dependecy on SOONG_ZIP
  Add dependencies on the toolchain (clang, etc)
2019-06-13 17:13:22 +00:00
Dan Willemsen
bbe4e11a76 Call clean-path in more places
When an Android.mk specifies a local path that is outside the current
directory, it uses '..', since we prepend $(LOCAL_PATH)/ to the given
path.

This path ('a/b/../c') gets inserted into command lines and
dependencies. For dependencies, when it gets to Ninja, Ninja calls
CanonicalizePath and removes those references ('a/c'), but the command
line is preserved.

So we've got a command line that references 'a/b', but no dependency on
it. Usually that's not a big problem, but it's an issue if we're trying
to only expose dependencies to the rule, like with RBE only sending the
dependencies to the remote workers. So use our 'clean-path' macro to
collapse the '..' references in Kati so that they don't show up in the
command line either.

Test: treehugger
Test: build a system image with RBE
Change-Id: I0706faa2ac15e9c12c720f43c7bb8171c5efd97c
2019-06-12 21:35:33 +00:00
Dan Willemsen
c5b7c4fbef Add dependencies on the toolchain (clang, etc)
Historically, we've relied on the path to the clang compiler changing in
order to trigger rebuilds instead of direct dependencies on the compiler
itself. That's somewhat more reliable, since the actual $(CLANG) file is
often a script that doesn't actually change during every update.

In Soong, we've added the dependency anyway, so do it here as well. This
makes it easier for my RBE experiments to identify when we intend to use
clang and to send the entire compiler.

Test: treehugger
Test: build a system image with RBE, find that every command that needed
the compiler gets it.
Change-Id: I3838b5d77884394a8c0f7a1ba133142102602084
2019-06-12 21:34:52 +00:00
Oliver Nguyen
6f69d2164b Merge "Package coverage files as a zip." am: 6aef14d0e9
am: dcb71cf2bb

Change-Id: I7437fe7d5ff8f2b90f110f8e6e0787ed1c900a61
2019-06-11 19:27:56 -07:00