Commit Graph

3771 Commits

Author SHA1 Message Date
Colin Cross
8945094c2f Prettify soong ninja build descriptions am: 67a5c132c5 am: 4833452324
am: 8a33e6e826

Change-Id: I0c6f9148cafe8aa4bec86540e1f67a1851adafd7
2017-05-10 23:52:02 +00:00
Colin Cross
e6ca5992ed Merge changes If90975c8,I2a873fc6 am: 570e18ffaa am: e4b293ebee
am: 766a3d52d7

Change-Id: I5e3318688695d69ce4b953f22ec7c5da65d89fea
2017-05-10 18:09:30 +00:00
Colin Cross
67a5c132c5 Prettify soong ninja build descriptions
Descriptions currently look like:
[  0% 4/29328] cc out-soong/.intermediates/external/clang/lib/Sema/libclangSema/android_arm_armv7-a-neon_denver_static_core/obj/external/clang/lib/Sema/SemaCodeComplete.o

This is not very helpful - most of the characters are used to show the
output path, which contains useful information like target architecture,
but also contains most of the path to the source files twice, and less
useful information like the exact variant name used by soong.
Make the descriptions look like:
[  0% 3/29329] //external/clang/lib/Sema:libclangSema clang++ SemaTemplateInstantiate.cpp

This is //path/to/module:modulename tool relative/path/to/source/file

Test: builds, looks pretty
Change-Id: I3087aa7d4eb1860ef6239d77407b8b35445616d7
2017-05-10 11:04:16 -07:00
Colin Cross
5b52959c99 Use ctx.ModuleBuild for darwin ar
Test: builds
Change-Id: If90975c8545158012bc6201acadd136363c21260
2017-05-09 14:32:45 -07:00
Colin Cross
5df13dd03d Add product_sdk_version.cflags property am: ceeff0fd39 am: 782f1fe809
am: bc69b90e3e

Change-Id: I1e92ff58a8eecb5c52f76a0426fab615402e3e24
2017-05-08 23:09:23 +00:00
Colin Cross
ceeff0fd39 Add product_sdk_version.cflags property
libwilhelm needs PRODUCT_SDK_VERSION=%d.

Test: builds
Change-Id: Ie3caf9e4fdcb8e241c8743b1675520e93cf20cae
2017-05-08 15:57:05 -07:00
Dan Willemsen
d2030fee55 Merge "Revert "Ensure environment dependencies are correct"" am: 411a363c5a am: 07ed54b1d2
am: 2a6f43caf2

Change-Id: I67e4de833fa91c48204708cbae9a3fd89b4f09e1
2017-05-08 21:31:55 +00:00
Dan Willemsen
690cb65153 Merge "Ensure environment dependencies are correct" am: 6a76b144a9 am: 8aa97a4de9
am: 0c46f2edf8

Change-Id: I4ff4c460bd93568148e206c3e68a2809adbf7b42
2017-05-08 21:31:37 +00:00
Dan Willemsen
4068a5db6c Revert "Ensure environment dependencies are correct"
This reverts commit e78473c33c.

Reason for revert: Broke mac builds, which rely on $PATH to find xcrun

Change-Id: I58711b94d472ab828823afaf53394a1aa869f3f5
2017-05-08 21:11:55 +00:00
Dan Willemsen
e78473c33c Ensure environment dependencies are correct
Store the os Environment on init, then clear it so that it's only
available via a call to Config.Getenv(). That way we're guaranteed to
know about all dependencies.

Test: Add some os.Getenv/Config.Getenv calls and ensure correct behavior
Test: cs/ shows no os.Getenv / os.LookupEnv / os.ExpandEnv calls that
would be affected
Change-Id: Ic519e0c871f340e752df03b8af0599d47c1d91d8
2017-05-05 23:08:16 -07:00
Colin Cross
3c7e86ef69 Add a variable to disable modules in the PDK am: b2123aa1df am: dd62f877b6
am: 89d5ff5865

Change-Id: I39bd7cfba20583487dd0b69a9ef89a610e6f5d02
2017-05-06 01:48:11 +00:00
Colin Cross
2931bf29a1 Allow "required" property to vary by arch am: c602b7d881 am: e9a8f80ce1
am: 4f590643f1

Change-Id: I7ec215d49b525a37864f90779403319348e9131e
2017-05-06 01:48:07 +00:00
Colin Cross
5097cb6135 Support %s in product variable properties am: 7e0eaf15b9 am: d75b9109cc
am: a4ca1b6caf

Change-Id: Iaa65bd0e000f79b4ec4c13d0f6d1955d08cb601d
2017-05-06 01:48:01 +00:00
Colin Cross
b2123aa1df Add a variable to disable modules in the PDK
Not plumbed through yet, but will at least prevent us from losing
track of which modules will not build in the PDK.

Test: builds
Change-Id: I4c1a0e39104b104dc1ff23c4391d5e83b3002d3a
2017-05-05 18:22:30 -07:00
Colin Cross
c602b7d881 Allow "required" property to vary by arch
Renderscript needs to require different bitcode files based
on architecture.

Test: builds
Change-Id: Ifffa16c892a7f8e309f1c5652472fba44cd2e786
2017-05-05 18:22:30 -07:00
Colin Cross
7e0eaf15b9 Support %s in product variable properties
Support using strings as product variable substitutions, and
add tests for printfIntoProperty.

Test: varaible_test.go
Change-Id: I06cfadfb1d3fc81da72fb71323706df20426c8b7
2017-05-05 18:22:30 -07:00
Colin Cross
4ed57d5a47 Merge "Support override_rs_driver product variable" am: 2030a8cbcb am: 9b9be28895
am: 00b7cd4810

Change-Id: I05da4da322741dc6704ad7baa1d5d39766821666
2017-05-06 00:50:00 +00:00
Colin Cross
2030a8cbcb Merge "Support override_rs_driver product variable" 2017-05-06 00:15:02 +00:00
Nan Zhang
ee35712b98 Merge "Supported python build in host side." am: a731969dc1 am: 2ca25e6d12
am: 1a052a67bc

Change-Id: I77ade4282097522545d91f8aa13c0f5b3cbb1b35
2017-05-05 22:23:10 +00:00
Nan Zhang
db0b9a3cf3 Supported python build in host side.
The base module handles all the common functionalites, such as version
compatibilty check, version variations split, source file format check,
source/data file duplicate check.

The library/binary module focuses on how to generate binary build actions,
such as setting up stub script, zipping, filling in __init__.py in
runfiles dir tree.

Bug: b/31676493
Test: go test under python package

Change-Id: I06608369f350f7195873d459e1c8d1bdb811e77e
2017-05-05 13:27:56 -07:00
Colin Cross
954364256f Support override_rs_driver product variable
Test: builds
Change-Id: Ifd9bf09bb54418d62f6886b0d8ed84dd493a3162
2017-05-04 15:44:11 -07:00
Colin Cross
8f8e7b6257 Add device_uses_hwc2 product variable am: 0e409a2810 am: 2bc8871dac
am: b3b0c9bcf1

Change-Id: I75b55df02409556bbbc2c62a0dd901c51b02a90b
2017-05-02 20:13:29 +00:00
Colin Cross
0e409a2810 Add device_uses_hwc2 product variable
TARGET_USES_HWC2 is going away, but propagate it to soong for now
to unblock converting dependency chains that end in libhwui.

Test: soong tests
Change-Id: I20f1269caea1b5f5fc39239daa6b2e610bd36eb9
2017-05-02 11:17:45 -07:00
Colin Cross
62fb8932cd Merge changes from topic 'reverse-arch-includes' am: 22eab50d45 am: fca27e357b
am: ffe00209db

Change-Id: Id786f47b888b3dbd15305eb03fd719e6c15b0f7a
2017-04-27 23:37:07 +00:00
Colin Cross
1837b802e1 Enable mips32r2dsp[r2]-fp in mega device build
These seem to build now.

Test: mega device build
Change-Id: If2514258b0c57d6db484aed4c17a3e1f62109429
2017-04-27 12:21:24 -07:00
Colin Cross
893d816a6d Turn installation on in mega device build
Turn on installation in the mega device build, it is necessary for the ndk
sysroot installation.  Partially fixes mega device builds, they also need
to run without -w dupbuild=err on the ninja command line because multiple
variants of the same architecture try to install to the same ndk sysroot.

Test: mega device build
Change-Id: I982d77f9ff19f5bc29fc9fe54a0df8db3579c3e3
2017-04-27 12:21:24 -07:00
Colin Cross
0906f17f7e Add arm neon and mips dspr2 arch features
Current modules must use armv7_a_neon to specify source files that
compile only with neon.  If a future arch variant also supports neon,
all these modules will fall back to non-neon.  Support a neon arch
feature that modules can use instead.  Similarly, support dspr2 for
mips.

arm_device.go was also mixing armv7-a-neon with armv7_a_neon.  Use
armv7-a-neon consistently, and fix the - to _ when creating the
property structs.

Test: m -j checkbuild
Change-Id: I24d3764280ab3bcbb9a73c0934edc9b99fc7f6a0
2017-04-27 12:21:24 -07:00
Colin Cross
19b7ead05e Merge "Make soong mm/ targets recursive" am: 6d7afb8637 am: e94d74c642
am: 3df20c6a50

Change-Id: Ifebd86b1554fd80526814427106ae9e8506915ac
2017-04-26 17:44:37 +00:00
Colin Cross
87d8b56eda Make soong mm/ targets recursive
Put mm/* targets into their parent directory's mm/ target.

Test: examine out/soong/build.ninja
Change-Id: Iacad3db8c904bb4d90b36e125bb359a7fb90368b
2017-04-25 13:26:40 -07:00
Vishwath Mohan
e2336d96bd Merge "Change the global CFI flag to default to enabled." am: 9ce4529614 am: 848558ec1f
am: 2a91b550e6

Change-Id: I47f2768de87cd715519b28ea2ad69dd05f0cfebb
2017-04-20 01:49:08 +00:00
Vishwath Mohan
9ce4529614 Merge "Change the global CFI flag to default to enabled." 2017-04-20 01:39:56 +00:00
Nan Zhang
eace7f6b3f Merge "Added duplicates checking when extracting source deps." am: 8596bab0b0 am: 637fc7e4f7
am: 1ece903c90

Change-Id: I14dce70401153b99f231e81e45c9d631c354c693
2017-04-19 19:59:26 +00:00
Treehugger Robot
8596bab0b0 Merge "Added duplicates checking when extracting source deps." 2017-04-19 19:50:11 +00:00
Carmen Jackson
45b9d751ab Add init_rc as a property to the debuggable product_variable.
am: 6fe956b129

Change-Id: Ibc6fdb7235b56efda5c62eb91e7a03a732c57427
2017-04-18 23:47:44 +00:00
Jayant Chowdhary
3e231fd8bd Add header-abi-checker for Vndk abi checks.
header-abi-dumper: dumps abi exported by source files for Vndk.
header-abi-linker: links abi dumps produced by header-abi-dumper.
header-abi-diff: compares linked dumps.

Test: mm -j64 showcommands > make_log in bionic/libc.
      This produced linked dumps in out/soong/.intermediates.
      Copied these dumps to
      prebuilts/abi-dumps/ndk/current/arm64/source-based/.
      Changed the abi and re-ran mm -j64 showcommands > make_log
      confirmed that the build reported compatibility breakge without
      actually failing (advisory mode).

Change-Id: Iccad6908fe68a80f47230751671d156893b96ead
2017-04-14 19:48:10 -07:00
Carmen Jackson
6fe956b129 Add init_rc as a property to the debuggable product_variable.
Bug: 37110010
Test: See related change - verified manually that the default init_rc
file as well as the 'debuggable' init_rc file were executed.

Change-Id: Id6a51201cf10633e9a86d2c76a3e64b50225bf55
2017-04-14 15:43:02 -07:00
Vishwath Mohan
c32c3ebfb9 Change the global CFI flag to default to enabled.
This CL changes the ENABLE_CFI flag to default to enabled. Setting it
to false will override local settings to enable CFI.

Bug: 30227045
Bug: 22033465
Test: m -j40 works and device boots
Test: cfi is honored unless the global flag is set.
Change-Id: Ie3285c5eac60c8f6012c6b6c23be149a8787af0c
2017-04-13 17:17:28 -07:00
Colin Cross
4247f0d0ed Enable arm_on_x86 mode when arm is a secondary arch
Enable arm_on_x86 mode whenever compiling for x86 on the device,
and either arm is listed as an ABI on the x86 arch, or arm exists
as a target arch.

Bug: 35286489
Test: examine bcc cflags
Change-Id: Iebd0e7b95f584d25773a60474c27425cac7a578e
2017-04-13 16:56:14 -07:00
Nan Zhang
2439eb7761 Added duplicates checking when extracting source deps.
Added this functionality since Blueprint layer won't check deps
duplicates.

Test: Manual m -j.
Change-Id: I28d5f558a211609ecd0b4c2223be897fc1baae17
2017-04-10 12:16:30 -07:00
Dan Willemsen
538b454c3d Implement vendor as a synonym of proprietary
The vendor image will have more than just proprietary modules in it
under Treble, so let's stop marking open source code as proprietary just
to move it to vendor.

Bug: 36452052
Bug: 37134596
Test: compare build.ninja before/after, no changes.
Test: Set vendor: true, ensure it works.
Change-Id: I44b0ec7007d0e311bdcbd44b238b1ef2d05cc6ff
(cherry picked from commit aa118f95a6)
2017-04-10 18:19:09 +08:00
Dan Willemsen
aa118f95a6 Implement vendor as a synonym of proprietary
The vendor image will have more than just proprietary modules in it
under Treble, so let's stop marking open source code as proprietary just
to move it to vendor.

Bug: 36452052
Bug: 37134596
Test: compare build.ninja before/after, no changes.
Test: Set vendor: true, ensure it works.
Change-Id: I44b0ec7007d0e311bdcbd44b238b1ef2d05cc6ff
2017-04-07 14:59:18 -07:00
Dan Willemsen
ba78b5a215 Rework vndk detection
Instead of having a module define `use_vndk: true`, assume that we're
building with the VNDK if we're installed on the vendor partition, and
BOARD_VNDK_VERSION==current. This now matches our behavior in Make.

Once BOARD_VNDK_VERSION!=current, we'll need to disable modules that
need to otherwise compile against the VNDK, since we can only compile
against the current VNDK.

Test: build.ninja for aosp_arm is the same before/after
Test: Ensure there are no boards that set BOARD_VNDK_VERSION
Change-Id: If937fa7bdb119648137af52daebadf486163484b
(cherry picked from commit 11b261472a)
2017-04-05 09:59:11 -07:00
Colin Cross
3edeee113a Add ctx.Windows()
Replace ctx.Os() == android.Windows with ctx.Windows()

Test: builds
Change-Id: I7c24c39bcf54a51ad152b21c0021e40a0c07f189
2017-04-04 15:39:04 -07:00
Alex Naidis
ac01ff5447 Add support for an armv8 variant for Kryo
* Use mcpu=cortex-a57, since it is the closest to Kryo.
* Clang doesn't support Kryo as a target yet.

Bug: 36728278

Test: Built and booted a sailfish using Kryo.

Change-Id: Ic0c9588d86fba41896e50e3f0cf0d2b310ffee93
Signed-off-by: Alex Naidis <alex.naidis@linux.com>
2017-04-04 19:09:43 +00:00
Alex Naidis
ae4fc18406 Add support for an armv7 variant for Kryo
* Kryo is closer to Krait than to cortex-a53, so choose Krait defaults.

* Made together with Jake Weinstein (xboxfanj)

Bug: 36728278

Test: Built and boot sailfish set up as kryo.

Change-Id: I04fa0a1dca6f97ae19202d28ee3ce8a59bf169b5
Signed-off-by: Alex Naidis <alex.naidis@linux.com>
2017-04-04 19:09:36 +00:00
Vishwath Mohan
0d0a6f35da Refactor sanitized library on-disk layout - Soong.
This CL moves the location of ASAN-ified libraries on disk in the
following manner:
/data/lib* --> /data/asan/system/lib*
/data/vendor/* --> /data/asan/vendor/*

There are a couple of advantages to this, including better isolation
from other components, and more transparent linker renaming and
SELinux policies.

(cherry picked from commit 1dd8839286)

Bug: 36574794
Bug: 36674745
Test: m -j40 && SANITIZE_TARGET="address" m -j40 and the device
boots. All sanitized libraries are correctly located in /data/asan/*.

Change-Id: I06bf459260ec451d4495a02562f640ad622f34c2
2017-03-31 17:21:21 -07:00
Dan Albert
30c9d6e771 Generate file to map codenames to API levels.
The NDK stub library generator needs to know what unreleased API
levels exist and what the ordering is between them. This singleton
will later be expanded to generate api-level.h to cut down on
duplication.

Test: make out/soong/api_levels.json && cat out/soong/api_levels.json
Bug: None
Change-Id: I53126dd2cacb67c331c44f7d7c77c98b176b93cd
2017-03-31 12:27:42 -07:00
Vishwath Mohan
1dd8839286 Refactor sanitized library on-disk layout - Soong.
This CL moves the location of ASAN-ified libraries on disk in the
following manner:
/data/lib* --> /data/asan/system/lib*
/data/vendor/* --> /data/asan/vendor/*

There are a couple of advantages to this, including better isolation
from other components, and more transparent linker renaming and
SELinux policies.

Bug: 36574794
Bug: 36674745
Test: m -j40 && SANITIZE_TARGET="address" m -j40 and the device
boots. All sanitized libraries are correctly located in /data/asan/*.

Change-Id: I06bf459260ec451d4495a02562f640ad622f34c2
2017-03-31 01:03:56 +00:00
Nan Zhang
280802c102 Fixed the issue that phony module was broken.
Phony module was broken since it reached the code line to try to
invoke some specific arch functions which caused the runtime panic
error.

Bug: 36739664
Test: mm -j32 -k
phony {
     name: "shell_and_utilities",
     required: [
         "grep",
         "gzip",
         "mkshrc",
         "reboot",
         "sh",
         "toolbox",
         "toybox",
     ],
}
in system/core/shell_and_utilities/Android.bp

Change-Id: Idf7da17d431aae5f0c56b08f5e5eef14ae4eef50
2017-03-29 17:43:47 -07:00
Dan Willemsen
11b261472a Rework vndk detection
Instead of having a module define `use_vndk: true`, assume that we're
building with the VNDK if we're installed on the vendor partition, and
BOARD_VNDK_VERSION==current. This now matches our behavior in Make.

Once BOARD_VNDK_VERSION!=current, we'll need to disable modules that
need to otherwise compile against the VNDK, since we can only compile
against the current VNDK.

Test: build.ninja for aosp_arm is the same before/after
Test: Ensure there are no boards that set BOARD_VNDK_VERSION
Change-Id: If937fa7bdb119648137af52daebadf486163484b
2017-03-29 04:33:25 +00:00