Commit Graph

4188 Commits

Author SHA1 Message Date
Pirama Arumuga Nainar
b8eefa8956 Do not explicitly link ucrt, ucrtbase
This was required before MinGW's default crt was set to ucrt.  In the
new setting, libmsvcrt.a is similar to libucrt.a and is implicitly
linked-in by the Clang driver.  Not explicitly linking in ucrt avoids
the link-order issue discussed in
https://github.com/android/ndk/issues/1198.

Test: m native-host-cross, go/android-llvm-windows-testing.
Change-Id: Idc125e550cae2f0eb812ca310d1d4be898a29ab4
2020-03-06 15:07:19 -08:00
Automerger Merge Worker
344ce5f777 apex: choose stub according to min_sdk_version am: 03b5185b88 am: 5cf1805a44
Change-Id: Ibe1984b4deaa0681a7339f871d8d3dc62072fe58
2020-03-06 20:13:50 +00:00
Jooyung Han
ad4c18765e Add version suffix for stub modules' Android.mk
Becase there can be more than one stub libraries, LOCAL_MODULE should be
suffixed with SubName just like NDK stub.

Note that suffix should not be appended to the latest version if the
library is provided by APEX, Otherwise, those libs always need to be
referenced with suffix in .mk files.

Bug: 145796956
Test: m
Change-Id: If503fa651a63b0b215742553b250ecf5e0a30971
2020-03-07 03:12:45 +09:00
Jooyung Han
03b5185b88 apex: choose stub according to min_sdk_version
Native modules within APEX should be linked with proper stub version
according to its min_sdk_version.

For example, when min_sdk_version is set to "29", libfoo in the apex
would be linked to libbar of version 29 from platform, even if it has
a newer version like 30.

Bug: 145796956
Test: m nothing (soong tests)
Change-Id: I4a0b2002587bc24b7deeb5d59b6eeba5e1db5b1f
2020-03-07 03:12:45 +09:00
Mitch Phillips
0bf9713486 [cc_fuzz] Export DSO symbols to /symbols/data/
cc_fuzz reexports transient dependeny DSO's to /data/fuzz through Make.
We intentionally export the non-stripped variants so that ClusterFuzz
can use the symbolized variant, but we don't re-export to
/symbols/data/fuzz. This means that tools like `stack` and
`hwasan_symbolize` can't pick up the symbols and don't know what to do.

Fix this by re-exporting to /symbols/ as well.

Bug: N/A
Test: make example_fuzzer && ls
$ANDROID_PRODUCT_OUT/symbols/data/fuzz/arm64/lib

Change-Id: Id0343c95a0a83e16e6f67f29ff6361fb4d757c05
2020-03-06 09:38:12 -08:00
TreeHugger Robot
765ccd021f Merge "Convert cc to AndroidMkEntries" into rvc-dev 2020-03-06 17:13:29 +00:00
Paul Duffin
88f2fbe92e Refactor snapshot module creation
Generalize the processing of arch specific properties to reduce
duplication in snapshot module creation and simplify addition of
support for handling multiple os types.

Supporting multiple os types with the current method for building
snapshot modules would require every affected module type to add
support for it. Rather than duplicate multiple os type handling code
across those module types this work generalizes the process cc modules
use for handling arch types as it can be used as a basis for handling
multiple os types. Migrating module types over to this new process
will insulate them from having to handle multiple os types.
OB
SdkMemberType changes:
* BuildSnapshot is deprecated in favour of the new AddPrebuiltModule()
  method.
* Additional methods, CreateVariantPropertiesStruct() and
  FinalizeModule() are added.
* A new interface SdkMemberProperties, is defined that handles
  extracting information from the variant (prior to common value
  optimization) and adding properties to a property set.

The sdk module type uses these new methods and types to delegate the
member type specific processing to the relevant member types while
handling the behavior that is common across all members types, e.g.
extracting common values across multiple architectures. A future change
will leverage this processing to add support for multiple os types.

This change also refactors the cc module processing to use the new
process.

Bug: 150451422
Test: m nothing
Change-Id: If6ab2498407b17f50391d062cd9afc01b5e01af4
2020-03-05 13:00:26 +00:00
Colin Cross
dc7319df2b Convert cc to AndroidMkEntries
Use AndroidMkEntries so the next patch can use ExtraFooters, which
doesn't exist in AndroidMkData.

Bug: 149591522
     the bug is not exactly related to this change, but it is the bug
     that the follow-up changes are trying to fix.
Test: manually diff out/soong/Android.aosp_x86_64.mk
Merged-In: Ia3006b6747813693cf7e2b536030b21f3109f538
Change-Id: Ia3006b6747813693cf7e2b536030b21f3109f538
(cherry picked from commit d80cbca76d)
2020-03-05 14:40:43 +09:00
Automerger Merge Worker
265ecb39b2 Merge "Capture snapshot headers in parallel" am: c6d627b268 am: ca0e37b116
Change-Id: I4063322ab68c7ae69d17090a120a7fa59cd95353
2020-03-05 00:37:13 +00:00
Inseob Kim
ac775b2a0f Capture snapshot headers in parallel
VNDK and vendor snapshot singleton work in a single thread, so globbing
in singleton results in ridiculus running time. Moving codes to
GenerateAndroidBuildActions to reduce running time.

Bug: 150406226
Test: VNDK_SNAPSHOT_BUILD_ARTIFACTS=true m dist vndk vendor-snapshot
Test: vendorSnapshotSingleton build time became 0.56s (from 10s)
Test: build.ninja building time became 1m11s (from 1m21s)
Change-Id: I4a081eef5847c62ca00280ca426f5b4e10f87b59
Merged-In: I4a081eef5847c62ca00280ca426f5b4e10f87b59
(cherry picked from commit eda2e9c728)
2020-03-05 09:36:31 +09:00
Treehugger Robot
c6d627b268 Merge "Capture snapshot headers in parallel" 2020-03-05 00:03:00 +00:00
Automerger Merge Worker
4abddf6ba1 Merge "Add bugprone to global clang-tidy default checks" am: 286c318fa0 am: 1f5d4f25c8
Change-Id: I3a540072e0f0743ad271ab7e9315d54d3f1c87f2
2020-03-04 22:59:05 +00:00
Chih-hung Hsieh
286c318fa0 Merge "Add bugprone to global clang-tidy default checks" 2020-03-04 22:18:27 +00:00
Inseob Kim
eda2e9c728 Capture snapshot headers in parallel
VNDK and vendor snapshot singleton work in a single thread, so globbing
in singleton results in ridiculus running time. Moving codes to
GenerateAndroidBuildActions to reduce running time.

Bug: 150406226
Test: VNDK_SNAPSHOT_BUILD_ARTIFACTS=true m dist vndk vendor-snapshot
Test: vendorSnapshotSingleton build time became 0.56s (from 10s)
Test: build.ninja building time became 1m11s (from 1m21s)
Change-Id: I4a081eef5847c62ca00280ca426f5b4e10f87b59
2020-03-04 23:39:42 +09:00
Justin Yun
98df0d1c63 Enable vndk-ext for product variants
To build vndk-ext for product variants use `vndk.extends` property
with `product_specific: true` as for the vndk-ext for vendor
variants. For example:
cc_library {
    name: "libvndk_ext_product",
    product_specific: true,
    vndk: {
        enabled: true,
        extends: "libvndk",
    },
}

It will install the vndk-ext libs for product variants in
product/lib[64]/vndk/

Test: m nothing
Bug: 147778025
Change-Id: If1ee5be93c579abad302f44f18e6316f27e70019
Merged-In: If1ee5be93c579abad302f44f18e6316f27e70019
(cherry picked from commit 0ecf0b223f)
2020-03-04 04:37:02 +00:00
Automerger Merge Worker
3b5171e64c Enable vndk-ext for product variants am: 0ecf0b223f am: fff0ad2041
Change-Id: I44bd1da3eaf7dcf80a072078eb0f9839bcd67d8b
2020-03-04 01:55:20 +00:00
Justin Yun
0ecf0b223f Enable vndk-ext for product variants
To build vndk-ext for product variants use `vndk.extends` property
with `product_specific: true` as for the vndk-ext for vendor
variants. For example:
cc_library {
    name: "libvndk_ext_product",
    product_specific: true,
    vndk: {
        enabled: true,
        extends: "libvndk",
    },
}

It will install the vndk-ext libs for product variants in
product/lib[64]/vndk/

Test: m nothing
Bug: 147778025
Change-Id: If1ee5be93c579abad302f44f18e6316f27e70019
2020-03-04 01:22:16 +00:00
Automerger Merge Worker
d6f92db210 Merge "Make __ANDROID_APEX_<NAME>__ macro optional" am: 6efd3598c5 am: 2db5d65577
Change-Id: Ie3ef4fffa6f1b751e8e05daec16a21ed6b771ca4
2020-03-04 00:01:07 +00:00
Jooyung Han
6efd3598c5 Merge "Make __ANDROID_APEX_<NAME>__ macro optional" 2020-03-03 23:35:02 +00:00
Automerger Merge Worker
2c8805edb9 Merge "Add -z separate-code to default ARM64 device flags" am: 593c8c332c am: a86effc0bb
Change-Id: Ie4dd4dbbca0dd840f5553f0c2dedc349ba0c3631
2020-03-03 20:16:01 +00:00
Chih-Hung Hsieh
70b9316309 Add bugprone to global clang-tidy default checks
Test: WITH_TIDY=1 make
Change-Id: I1533c30035296fb1eaa7e2ff42360c5ff60a1d07
2020-03-03 12:05:22 -08:00
Ivan Lozano
c352e3e875 Add -z separate-code to default ARM64 device flags
Removing XOM had the side effect of removing "-z separate-code", which
was needed to override a new default after a recent toolchain update.
This led to some performance regressions in some tests. For now, add
this flag to the global arm64 device flags to return to the previous
behavior.

Bug: 150506341
Test: m -j
Change-Id: I26a93deb17868103eaa4b87bd7bb8416f3adbc7f
Merged-In: I54787954141d133e245dfd259a37bf4c3c8e7caa
(cherry picked from commit c80bbb46b1)
2020-03-03 14:39:35 -05:00
Ivan Lozano
c80bbb46b1 Add -z separate-code to default ARM64 device flags
Removing XOM had the side effect of removing "-z separate-code", which
was needed to override a new default after a recent toolchain update.
This led to some performance regressions in some tests. For now, add
this flag to the global arm64 device flags to return to the previous
behavior.

Bug: 150506341
Test: m -j
Change-Id: I54787954141d133e245dfd259a37bf4c3c8e7caa
2020-03-03 16:09:08 +00:00
Jooyung Han
c87a059c88 Make __ANDROID_APEX_<NAME>__ macro optional
This is rarely used feature but cost alot for the local build and build
inra.

Bug: 150506627
Test: m
Change-Id: Iec3ada4a97c7b228f2818563fa0e81b407f2715a
2020-03-02 17:44:33 +09:00
Automerger Merge Worker
44b9b1408d Runtime deps to a stubs lib crosses APEX boundary am: 323a4c3ab3 am: 695543b6d7
Change-Id: I2e48ed182174de136948b231b0ba423711ddac80
2020-03-02 00:48:40 +00:00
Jiyong Park
323a4c3ab3 Runtime deps to a stubs lib crosses APEX boundary
When there is a runtime depedency (via runtime_libs property) to a
library providing stable C APIs, the dependency is considered as
crossing APEX boundary. Therefore, the requested lib doesn't need to be
made available to the APEX where the requesting lib is in.

Bug: 147813447
Test: m
Change-Id: I9cf8a5877850fb85b92c851e15fac921b8b7641b
2020-03-01 17:29:06 +09:00
Automerger Merge Worker
8b15cb8543 Merge changes from topic "soong_build_number_file" am: f14cd86e23 am: 5e1f7bf09b
Change-Id: Iac6e63067fd38a77eea68a4c7a76d02033b4908b
2020-02-28 20:44:49 +00:00
Treehugger Robot
f14cd86e23 Merge changes from topic "soong_build_number_file"
* changes:
  Add an order-only dependency on the build number file
  Add support for order-only dependencies to RuleBuilder
2020-02-28 20:15:52 +00:00
Colin Cross
2a2e0db2a2 Add an order-only dependency on the build number file
Remote execution and other tools can be confused by references to
build_number.txt without a dependency.  Add an order-only dependency,
which maintains the current behavior.

Test: BUILD_NUMBER=1 && m aapt && aapt version # shows 1
      BUILD_NUMBER=2 && m aapt && aapt version # shows 1
      rm out/soong/.intermediates/frameworks/base/tools/aapt/aapt/linux_glibc_x86_64/aapt
      BUILD_NUMBER=2 && m aapt && aapt version # shows 2
Change-Id: Icfa98d6840b1dc2e273ba29c33011635d1cf93b1
2020-02-28 18:16:56 +00:00
Automerger Merge Worker
bdaf52aadd Merge "Support arch variant for data attribute" am: 6f9bfc01a2 am: a3cc927fdb
Change-Id: I87f59934a972ff98fef9d35cead9beeca3999510
2020-02-27 06:40:36 +00:00
Dan Shi
6f9bfc01a2 Merge "Support arch variant for data attribute" 2020-02-27 06:06:50 +00:00
Automerger Merge Worker
5a35861bc2 Merge "Unless overridden include LICENSE files in notices." am: 40017be1c3 am: c07a0cf902
Change-Id: Iccc43375a95c39898ca62d10d4bbe198f339ef9a
2020-02-26 21:01:45 +00:00
Bob Badour
40017be1c3 Merge "Unless overridden include LICENSE files in notices." 2020-02-26 20:37:22 +00:00
Automerger Merge Worker
81b597b6ad Convert cc to AndroidMkEntries am: d80cbca76d am: 35189efd1d
Change-Id: Iab8e553dc23ff71b386165bae435b10262a4ef7f
2020-02-26 17:04:17 +00:00
Logan Chien
2a65dda27d Add check_all_apis option for header ABI checker
This commit adds a header ABI checker option to check all APIs that can
be found.  Without this option, the checker by default only checks the
class/struct/enum that are directly or indirectly referred by one of the
exported symbols.  With `check_all_apis: true,`, the checker will check
all class/struct/enum.

Bug: 141709599
Test: Add `header_abi_checker: { check_all_apis: true, }` to a library
      and see breakage if I change some enum.
Change-Id: I61f90e07b60a6752fc6be4398420c1ad1291102f
2020-02-26 09:25:40 +00:00
Colin Cross
d80cbca76d Convert cc to AndroidMkEntries
Use AndroidMkEntries so the next patch can use ExtraFooters, which
doesn't exist in AndroidMkData.

Test: manually diff out/soong/Android.aosp_x86_64.mk
Change-Id: Ia3006b6747813693cf7e2b536030b21f3109f538
2020-02-25 19:53:04 -08:00
Dan Shi
67a8834735 Support arch variant for data attribute
Bug: 143220441
Test: atest VtsHalDrmV1_2TargetTest
Change-Id: I2381f78b486852da267caa363b4c4cb5660c9055
2020-02-25 16:34:39 -08:00
Automerger Merge Worker
7d94169f5e Merge "Add support for cc_library_headers in sdk/module_exports" am: e1fd6a9bd8 am: 92e2a41ea0
Change-Id: I449f2fca05d926f53732b074e9a20bf5f230db18
2020-02-25 10:53:46 +00:00
Automerger Merge Worker
4b1fb4c567 Merge "Simplify cc library sdk snapshot handling of include dirs/headers" am: 2125138f25 am: 0f0bb62979
Change-Id: I458a012f73b34b7d183b553e7d777d94055790fd
2020-02-25 10:53:39 +00:00
Automerger Merge Worker
c990ac9e8e Merge changes Idd50ed38,Icbc86b21 am: 4483601b58 am: 3c025bf921
Change-Id: I266e580ff456d6d25b82e45693faa3e930d277fc
2020-02-25 04:21:20 +00:00
Paul Duffin
91756d2498 Add support for cc_library_headers in sdk/module_exports
Bug: 148933848
Test: m nothing
Change-Id: Ife6ee0f736238727a11b4421532eaeb29d46c1b7
2020-02-24 14:49:22 +00:00
Paul Duffin
64f54b0ae8 Simplify cc library sdk snapshot handling of include dirs/headers
Previously, the code for generating a snapshot of a cc library was
split into two separate phases. The first phase copied the files that
needed copying and the second phase added the properties for the
include dirs. This separation made it difficult to make sure that the
two phases were in sync.

This change merges those two phases together so the same paths used to
copy the files are used in the properties ensuring consistency. As the
various type of include dir and header were treated slightly different
to each other this parameterizes that behavior.

Bug: 142935992
Test: m nothing
Change-Id: I7877464987bbdae9662e5e3f02bb5e5a75dca5a3
2020-02-24 14:49:22 +00:00
Paul Duffin
f5ea9e1f76 Add cc_prebuilt_library_headers
In preparation for adding cc_library_headers support to
sdk/module_exports.

Two changes were needed to make the prebuilt version work.
1) Had to stop the prebuilt version of the library from creating static
   and shared variants for header only.
2) Had to allow the code to export/reexport include dirs to run even
   when no src is provided.

Bug: 148933848
Test: m nothing
Change-Id: Idd50ed38bc90d1d93551f78e6310f167941487d9
2020-02-24 14:49:22 +00:00
Paul Duffin
1c6c1c7251 Separate cc_library_headers to its own file and add tests
Preparation for adding cc_library_headers to sdk.

Bug: 148933848
Test: m nothing
Change-Id: Icbc86b21f44dc79393b82be339cf3b133cbf9d8c
2020-02-24 14:49:22 +00:00
Automerger Merge Worker
4932656913 Merge "Add C++ Host support on sysprop_library" am: efbce1cace am: e2c17743e4
Change-Id: I1f32c2443e75e15db4b2e96a5666a86aecd46cdc
2020-02-24 02:53:57 +00:00
Treehugger Robot
efbce1cace Merge "Add C++ Host support on sysprop_library" 2020-02-24 02:29:09 +00:00
Automerger Merge Worker
53d59b3659 Merge "Allow compile_multilib to be specified on module exports" am: f9f6a91376 am: f86541ab99
Change-Id: Ia79981d9c271924281a5cf64c818eb1dc612106b
2020-02-22 10:29:25 +00:00
Treehugger Robot
f9f6a91376 Merge "Allow compile_multilib to be specified on module exports" 2020-02-22 10:07:43 +00:00
Automerger Merge Worker
aafbe3ab60 Merge "Allow Linux hosts to use ubsan runtime sanitizers." am: 61f7a24cea am: 10d46c9a54 am: d06e0974ce
Change-Id: I216706ee0a8fea5c496485784794006c562f0c42
2020-02-21 21:59:32 +00:00
Ivan Lozano
61f7a24cea Merge "Allow Linux hosts to use ubsan runtime sanitizers." 2020-02-21 21:16:17 +00:00