Commit graph

16167 commits

Author SHA1 Message Date
Paul Duffin
504b46160f Simplify building an SDK snapshot from the command line
Adds a phony target for each sdk module that builds the snapshot zip.

Test: built an sdk module from command line and checked the zip was created.
Bug: 143678475
Change-Id: I4599332443b8da9adea0a16f00f569ffbd421602
2019-11-22 14:52:29 +00:00
Treehugger Robot
126c57b52d Merge changes I7642c57b,I2120b40e
* changes:
  apex uses the first arch variant of prebuilt_etc modules
  sh_binary prefer 32bit when TARGET_PREFER_32_BIT
2019-11-22 02:53:04 +00:00
Ivan Lozano
bdebb171cc Merge "Change stdlib linkage for C libraries." 2019-11-22 01:49:07 +00:00
Ivan Lozano
3bc70db398 Merge "Allow cc.LinkabeInterfaces to request "" variants." 2019-11-22 00:24:23 +00:00
Treehugger Robot
66278b6224 Merge "symbols in stub library isn't affected by -fvisibility=hidden" 2019-11-22 00:22:48 +00:00
Treehugger Robot
a21e9ddcf8 Merge "Fix test app and helper installation dirs." 2019-11-21 23:20:16 +00:00
Ivan Lozano
88f2b1ce53 Change stdlib linkage for C libraries.
Rust C libraries cannot currently depend on dylibs. This prevents device
libraries from attempting to link the stdlib dynamically, instead using
rlibs.

Bug: 144861059
Test: Simple Rust library compiles as a shared/static library.
Change-Id: I38e5aae90e50ddcc5fc72d5a8d1820d92955cf48
2019-11-21 14:45:33 -08:00
Ivan Lozano
2b26297dc7 Allow cc.LinkabeInterfaces to request "" variants.
cc.LinkableInterfaces should be able to request if an empty variant is
required from the LinkageMutator. We were previously assuming that if only
static or shared libraries were being built, then we didn't need the
empty variant. However this should be explicit to handle cases where the
default set of variants being created may not include both static and
shared libraries.

Bug: 144861059
Test: m -j crosvm.experimental
Change-Id: I66724bdc16ff350b06dfa4d049c82f33019979a5
2019-11-21 13:25:08 -08:00
Jaewoong Jung
326a9417ce Fix test app and helper installation dirs.
Fixes: 143902486
Test: app_test.go + m CtsIsolatedSplitApp
Change-Id: I3e1b8bf14cb9f440a6d8b0d2ac65525f00470cb8
2019-11-21 10:41:00 -08:00
Ivan Lozano
0aa51a018b Merge "Add rust default compilation flags." 2019-11-21 17:45:45 +00:00
Martin Stjernholm
d0738b3608 Merge "Reland "Recognize libdl_android as a Bionic library"." 2019-11-21 16:17:42 +00:00
Jiyong Park
ce6aadc410 apex uses the first arch variant of prebuilt_etc modules
prebult_etc module type does not respect prefer32, i.e. its primary arch
is 64-bit on 64/32-bit device even when built with TARGET_PREFER_32_BIT
is true. However, the apex module type respects prefer32 and therefore
when TARGET_PREFER_32_BIT is true its primary arch becomes 32-bit. Then
the problem is that the apex tries to depend on 32-bit variant of the
prebuilt_etc modules which don't exist.

Fixing the problem by force using the first arch of the device when
adding dependencies to prebuilt_etc modules.

Bug: 144532908
Test: choosecombo 1 aosp_arm64 userdebug; TARGET_PREFER_32_BIT=true m;
Change-Id: I7642c57b05a837495587bbe4d3589d8549607862
2019-11-21 16:16:40 +09:00
Jiyong Park
48d75efa6f symbols in stub library isn't affected by -fvisibility=hidden
Fixing the bug that -fvisibility=hidden in a cc_library is used even
when compiling stub.c file where the symbols shouldn't be hidden.

Bug: 144781653
Test: add folowing to libEGL and build
+    stubs: {
+        symbol_file: "libEGL.map.txt",
+        versions: ["29"],
+    },

Change-Id: Iab70f36a4fb98737fc35827dbc9e1ca1a99d4354
2019-11-21 15:11:49 +09:00
Ivan Lozano
31b095d071 Add rust default compilation flags.
Bug: 140725928
Test: m -j crosvm.experimental
Change-Id: I1674f099659957f024cce70341a6a69610118a69
2019-11-20 10:14:33 -08:00
Treehugger Robot
b2e729d14c Merge "Pass hiddenapi-greylist-max-q.txt to greylist generator." 2019-11-20 17:51:55 +00:00
Artur Satayev
c5b4f99104 Pass hiddenapi-greylist-max-q.txt to greylist generator.
Bug: 137350495
Test: m, manual inspection of out/soong/hiddenapi/hiddenapi-flags.csv
Change-Id: I67227307ec08ab56a385980eceacaab1b985eb49
Merged-In: I67227307ec08ab56a385980eceacaab1b985eb49
2019-11-20 10:46:16 +00:00
Martin Stjernholm
203489b321 Reland "Recognize libdl_android as a Bionic library".
Necessary to create the symlinks from /system/lib{,64} to the Runtime APEX.

Test: build & boot
Bug: 135753770
Bug: 144343305
Change-Id: I221bed87a85f18c927ba44ee75b7db75316c1f49
2019-11-19 16:35:47 +00:00
Jiyong Park
5d790c3dda Add override_apex module type
override_apex module type is used to override existing apex module with
certain properties overridden. Currently, only the 'apps' property is
overridable.

Bug: 144338929
Test: m
Change-Id: Ic050b062093cda29ce78126cc92dd6097647f7db
2019-11-19 16:49:36 +09:00
Jiyong Park
6ac3cac7d1 sh_binary prefer 32bit when TARGET_PREFER_32_BIT
The module type can be referenced in the 'binaries' property of an
APEX, where it is expected that the binary modules prefer 32bit arch
when the build is configured with TARGET_PREFER_32_BIT. Satisfying the
expectation by allowing the module types to use 32bit arch in the
case.

Bug: 144532908
Test: choosecombo 1 aosp_arm64 userdebug; TARGET_PREFER_32_BIT=true m;
Change-Id: I2120b40e3230aa695b4c38b850c1ea32e46cbbfb
2019-11-19 13:45:18 +09:00
Treehugger Robot
c6e9f92cfa Merge "split apex.go" 2019-11-19 00:34:26 +00:00
Treehugger Robot
0398cd2af4 Merge "Remove BASH_ENV from the build environment" 2019-11-18 23:26:18 +00:00
Treehugger Robot
874da80729 Merge "Add more suggestions on converting Makefile conditionals" 2019-11-18 20:02:05 +00:00
Dan Willemsen
1c504d9c7e Remove BASH_ENV from the build environment
This runs an arbitrary shell script for all non-interactive bash sessions, and we've got lots of those.

It was causing problems with Fedora 30, which triggers the `manpath` executable, which isn't available in our $PATH:
https://groups.google.com/d/msg/android-building/WqEyZQuxYtY/zDXl9irOCAAJ

Change-Id: If2f63bbbcc3accb8d239f93fa06823d301d69488
2019-11-18 19:13:56 +00:00
Jiyong Park
09d77522fe split apex.go
apex.go is too big. Separate the build rule and android.mk generation
logic into builder.go and androidmk.go, respectively. prebuilt_apex is
moved to prebuilt.go as well.

No refactoring has been made other than the splitting.

Test: m
Change-Id: I839ab0a1ba2b70ce82d98ac1fa8e3534808b5fd3
2019-11-18 16:37:06 +09:00
Treehugger Robot
a3ab1a927e Merge "Change the partition of outputfile" 2019-11-18 01:43:50 +00:00
Treehugger Robot
29883dece6 Merge "Add override_android_test." 2019-11-17 01:14:30 +00:00
Chih-hung Hsieh
22e3f36b28 Merge "Set rust_test modules as NATIVE_TESTS" 2019-11-16 02:31:33 +00:00
Elliott Hughes
7e4452511c Merge "Switch to our own zipinfo(1)." 2019-11-16 00:31:45 +00:00
Colin Cross
2322c4dc9b Add more suggestions on converting Makefile conditionals
Test: none
Change-Id: I5ccf5824c6a85d881070d8e0ae16d87d3ee6cee2
2019-11-15 16:21:23 -08:00
Jaewoong Jung
26dedd36ed Add override_android_test.
This change also adds instrumentation_target_package to android_test, so
that the target package name in a test manifest can be easily
overridden.

Fixes: 134624457
Test: app_test.go
Change-Id: Ib8dd703da0038ac76210c92d79e133e37c718122
2019-11-15 15:06:06 -08:00
Chih-Hung Hsieh
15f369e1c7 Set rust_test modules as NATIVE_TESTS
* Rust test modules should have NATIVE_TESTS class,
  not EXECUTABLES, to work with atest --host.

Bug: 140938178
Test: make rust projects; run atest --host .
Change-Id: Ie9e237ee8c17b6e2d41f08a77c2b79d462a2c193
2019-11-15 14:09:29 -08:00
Jaewoong Jung
9f88ce26a8 Add AliasVariation to BottomUpMutatorContext.
Test: TreeHugger
Change-Id: Ib9c5db8f671ed8f0742183fc533dcc582269d17a
2019-11-15 10:57:34 -08:00
Colin Cross
409e833def Merge "Set default pool when RBE or goma is enabled" 2019-11-15 18:19:33 +00:00
Treehugger Robot
0f568b1237 Merge "Refactor sdk update mechanism" 2019-11-15 15:19:13 +00:00
Treehugger Robot
19258857ef Merge "apexDepsMutator is now bottom-up mutator" 2019-11-15 05:18:24 +00:00
Treehugger Robot
bbdeda5bed Merge "Override apexes with LOCAL_OVERRIDES_MODULES" 2019-11-15 05:02:55 +00:00
Chih-hung Hsieh
8d7ae1aefe Merge "Add TestProperties, gen test config, fix names" 2019-11-15 04:28:41 +00:00
Treehugger Robot
6dd78bdda0 Merge changes Idea4f04c,I3b85ef66
* changes:
  Add $$ORIGIN/lib to rpath for fuzz targets.
  Prebuilt shared libraries should be collected for fuzz targets.
2019-11-15 04:26:22 +00:00
Elliott Hughes
3efacee1fd Switch to our own zipinfo(1).
Test: treehugger
Change-Id: If71e87e45a52959be9a316810fe79250771eb9d4
2019-11-14 20:09:24 -08:00
Treehugger Robot
fcc157a150 Merge "Add new module types to the rust whitelist." 2019-11-15 03:47:33 +00:00
Ivan Lozano
36396b26ef Merge "Allow cc modules to pull in rust includes." 2019-11-15 02:32:26 +00:00
Jiyong Park
a308ea1591 apexDepsMutator is now bottom-up mutator
... in preparation for override_apex.

Bug: 144338929
Test: m
Change-Id: I6c19e384edc089fe5c8aa9bd00082178bd1a37a2
2019-11-15 10:38:39 +09:00
Treehugger Robot
bc196606c3 Merge changes Ibcc1096e,I21ac2441
* changes:
  Install AndroidApp only when needed
  Reland: JNI lib is always embedded for APKs in APEX
2019-11-15 00:10:05 +00:00
Treehugger Robot
d1ee08624f Merge "Create .gitignore and add /.idea there." 2019-11-15 00:01:05 +00:00
Chih-Hung Hsieh
41805bedbf Add TestProperties, gen test config, fix names
* Rename testBinaryDecorator to testDecorator
* Add TestProperties
  * Add install function for testDecorator to install config files
  * Add tradefed.AutoGenRustHostTestConfig
  * Depend on new build/make/core/rust_host_test_config_template.xml
    and new tradefed.testtype.rust.RustBinaryHostTest class
* Add autogenTemplateWithName in tradefed/autogen.go
  to generate config files with customized(mutated) executable name.
* Make rust_test module names more robust and easy to use.
  * Use crate name instead of source file name as the Stem
    for single source file modules, to match original user
    specified output file name in Cargo.toml.
  * Do not set up test module SubName when Stem is empty
    or when the module name already contains Stem suffix.
    That happens when TestPerSrcMutator is disabled or when
    there is only one source file with renamed output file name.
  * In TEST_MAPPING, references to mutated rust_test modules should be
    (1) <module_name> for single source file modules without mutation, or
    (2) <module_name>_<crate_name> for single source file modules, or
    (3) <module_name>_<source_file_base_name> for multi-file modules.

Bug: 140938178
Test: mm in rust projects, check output test file names
Change-Id: Ifdbfa14d5eed4f10b4fb983f82c93bbb9be3f899
2019-11-14 15:16:26 -08:00
Mitch Phillips
1f7f54f441 Add $$ORIGIN/lib to rpath for fuzz targets.
RPATH needs to be set to traverse the local directory's lib folder for
fuzz target packages.

Bug: N/A
Test: m fuzz
Change-Id: Idea4f04ce4c55315df7e808de5b2b4f06a88d82a
2019-11-14 15:08:59 -08:00
Mitch Phillips
f50bddb790 Prebuilt shared libraries should be collected for fuzz targets.
Currently, prebuilt shared libraries fail the linkable.CcLibrary()
check, as the module returned by NewPrebuiltSharedLibrary uses a
prebuiltLibraryLinker as the module.linker, rather than a
libraryDecorator (which is the check by CcLibrary()).

We also need to ensure that we discard LLNDK stubs libraries, so we
manually categorise and discard them as well. They unfortunately are are
cc.Modules that aren't CcLibraries, as they use a custom linker object
as well (stubDecorator).

Fixes: 144415986
Test: m fuzz
Change-Id: I3b85ef66d1602cb8c035a0a90bddf30674e2eb71
2019-11-14 11:02:50 -08:00
Mitch Phillips
ed0070d453 Merge "Package fuzz targets into zipfiles, then coalesce." 2019-11-14 18:37:48 +00:00
Jeffrey Vander Stoep
f3a2d5abc3 Merge changes from topic "rust-sysroot"
* changes:
  Enable x86_64 device support
  Build Rust Device Sysroots in Soong
2019-11-14 18:28:13 +00:00
Jaewoong Jung
b2da7555e3 Create .gitignore and add /.idea there.
Test: git status
Change-Id: Iba3a128b4d071aac42adb6598eab3afe305aec6c
2019-11-14 10:26:10 -08:00