Commit Graph

3295 Commits

Author SHA1 Message Date
Colin Cross
62c9e410c9 Merge "Allow cc_genrule srcs to vary by architecture" am: c75885a1d6 am: 2ed9d5fb6e
am: 51391e102d

Change-Id: I26301e235c3c1ea521df7c4a6a63503f3cd50807
2018-10-23 16:40:32 -07:00
Treehugger Robot
c75885a1d6 Merge "Allow cc_genrule srcs to vary by architecture" 2018-10-23 23:18:26 +00:00
Dan Willemsen
05b6923198 Apply rtti settings to linux_bionic am: 10db384ff7 am: 9fa2f2ab06
am: 4bcadad6fb

Change-Id: I2b484b4f4b8371406cd9b30669f57b251d444213
2018-10-23 14:46:38 -07:00
Dan Willemsen
10db384ff7 Apply rtti settings to linux_bionic
Otherwise linking fails with:

ld.lld: error: undefined symbol: vtable for __cxxabiv1::__si_class_type_info
>>> referenced by contexts_split.cpp
>>>               contexts_split.o:(typeinfo for ContextsSplit) in archive out/soong/.intermediates/bionic/libc/libc_common/linux_bionic_x86_64_static/libc_common.a

ld.lld: error: undefined symbol: vtable for __cxxabiv1::__class_type_info
>>> referenced by contexts_split.cpp
>>>               contexts_split.o:(typeinfo for Contexts) in archive out/soong/.intermediates/bionic/libc/libc_common/linux_bionic_x86_64_static/libc_common.a

ld.lld: error: undefined symbol: vtable for __cxxabiv1::__si_class_type_info
>>> referenced by contexts_serialized.cpp
>>>               contexts_serialized.o:(typeinfo for ContextsSerialized) in archive out/soong/.intermediates/bionic/libc/libc_common/linux_bionic_x86_64_static/libc_common.a

ld.lld: error: undefined symbol: vtable for __cxxabiv1::__si_class_type_info
>>> referenced by system_properties.cpp
>>>               system_properties.o:(typeinfo for ContextsPreSplit) in archive out/soong/.intermediates/bionic/libc/libc_common/linux_bionic_x86_64_static/libc_common.a
clang-8: error: linker command failed with exit code 1 (use -v to see invocation)

Bug: 31559095
Test: prebuilts/build-tools/build-prebuilts.sh
Change-Id: I03a02c7e55948a0cd04bdcb5c090bb74e1723a0f
2018-10-23 19:53:13 +00:00
Colin Cross
ef35448ac5 Allow cc_genrule srcs to vary by architecture
Add arch_variant to the genrule srcs property so that cc_genrule
modules can vary the srcs and outs by architecture.

Test: cc/genrule_test.go
Change-Id: Idb17013e137d7ca21ca4cfc3e4c1fa7d89977043
2018-10-23 18:40:37 +00:00
Inseob Kim
2fc90c6668 Merge "Add support for sysprop description files to c++" am: 5b9fde2d15 am: 34af6a3dba
am: 8b84b09630

Change-Id: I596160a9215810b84c3d016d4b25b158e59daedd
2018-10-22 21:20:53 -07:00
Treehugger Robot
5b9fde2d15 Merge "Add support for sysprop description files to c++" 2018-10-23 03:57:56 +00:00
Dan Willemsen
12510b0e22 Rework how linux_bionic is built with LLD am: a0790e35c7 am: 7ff0a5619b
am: 71971707ee

Change-Id: I1fbe82cdacf3638ff6e1657c99daa0ec94516f25
2018-10-22 17:47:40 -07:00
Dan Willemsen
2f950e31d5 Update linux_bionic configuration am: 9ff34c0ca8 am: 51bf1e3abd
am: 564c6325be

Change-Id: I7c22cc2ed89f2025e66bd2e93fb125e55c140fc7
2018-10-22 17:47:29 -07:00
Dan Willemsen
34f3147b1e Don't use arch-specific modules when we want a single module am: 4f644da0ad am: 83481ee255
am: 1de69dae76

Change-Id: Ic135402a8ac57ba309ebe76919ea4280dc66b286
2018-10-22 17:46:51 -07:00
Dan Willemsen
edd8869aae Allow generating modules once per OS instead of once per Class am: 0ef639bb59 am: e329dae57d
am: 1df9f4ce75

Change-Id: I3922c6e1683fd6138d2407f07a2c841045591708
2018-10-22 17:46:36 -07:00
Dan Willemsen
ff58686f25 Remove USE_CLANG_LLD[=false] am: fa2aee1ca4 am: c1e4ff4243
am: c796146818

Change-Id: I65ed7cd77d41dc642c0a6ae02187923260099392
2018-10-22 16:20:06 -07:00
Dan Willemsen
a0790e35c7 Rework how linux_bionic is built with LLD
In order to simplify the wrapper function, and stop using a linker
script, generate a set of flags to pass to LLD. Then run
host_bionic_inject on the linked binary in order to verify the
embedding, and give the wrapper function the address of the original
entry point (_start).

Bug: 31559095
Test: build host bionic with prebuilts/build-tools/build-prebuilts.sh
Change-Id: I53e326050e0f9caa562c6cf6f76c4d0337bb6faf
2018-10-22 15:46:03 -07:00
Dan Willemsen
9ff34c0ca8 Update linux_bionic configuration
Add a missing toolchain method, don't require modules to opt in to
linux_bionic.

Bug: 31559095
Test: attempt to build host bionic
Change-Id: Ia5c8e2f127b88f56191b7abc389d5329cfdb0720
2018-10-22 15:46:03 -07:00
Dan Willemsen
4f644da0ad Don't use arch-specific modules when we want a single module
This breaks when two host OSes are enabled for example.

Bug: 31559095
Test: enable host bionic as a second Host OS, attempt a build
Test: treehugger
Change-Id: If52f77d7d3b0755d768028cbddda320303a69e65
2018-10-22 15:46:03 -07:00
Dan Willemsen
0ef639bb59 Allow generating modules once per OS instead of once per Class
When building with two OSes of the same class (Host, etc) enabled,
independently produce variants of each module for each OS, instead of
making `compile_multilib: "first"` select just one of the OSes.

My use case this is for Linux + LinuxBionic, which are both considered
Host class, but this would also applied if we wanted to generate rules
for Linux+Darwin, or some combination of firmware bits (either in
addition to Android in the Device Class, or multiple firmwares in a new
Class)

Bug: 31559095
Test: enable host bionic, see a linux(_glibc) and linux_bionic
      definition for binaries
Change-Id: I55e7f046758b3dc2a31da2c4b20274ec68ece0a0
2018-10-22 15:46:03 -07:00
Rahul Chaudhry
1ffac8e636 Enable SHT_RELR sections to encode relative relocations.
Proposal for adding SHT_RELR sections in the generic-abi is at
https://groups.google.com/forum/#!topic/generic-abi/bX460iggiKg

This CL requires clang-r328903.

The following test results are on clang-r339409.

Size comparison for "aosp_marlin-userdebug":
$ du -B1 -s {none,pack,relr,both}/out/target/product/marlin/system
1014616064      none/out/target/product/marlin/system
1001074688      pack/out/target/product/marlin/system
1004273664      relr/out/target/product/marlin/system
1000099840      both/out/target/product/marlin/system

none contains a build with no packing (--pack-dyn-relocs=none).
pack contains a build with current settings (--pack-dyn-relocs=android).
relr contains a build with relr packing only (--pack-dyn-relocs=relr).
both contains a build with both options enabled (--pack-dyn-relocs=android+relr).

With --pack-dyn-relocs=android+relr, lld will encode the relative
relocations in a SHT_ANDROID_RELR section, and pack the rest of
the dynamic relocations in a SHT_ANDROID_REL(A) section.

--pack-dyn-relocs=android was saving us 13,541,376 bytes (1.35%) (none - pack).
--pack-dyn-relocs=relr will save us 10,342,400 bytes (1.03%) (none - relr).
--pack-dyn-relocs=android+relr is saving us 14,516,224 bytes (1.45%) (none - both).

Size comparison for the "system/bin" directory:
$ du -B1 -s {none,pack,relr,both}/out/target/product/marlin/system/bin
29413376        none/out/target/product/marlin/system/bin
28319744        pack/out/target/product/marlin/system/bin
28258304        relr/out/target/product/marlin/system/bin
28180480        both/out/target/product/marlin/system/bin

--pack-dyn-relocs=android was saving us 1,093,632 bytes (3.72%) (none - pack).
--pack-dyn-relocs=relr will save us 1,155,072 bytes (3.93%) (none - relr).
--pack-dyn-relocs=android+relr is saving us 1,232,896 bytes (4.19%) (none - both).

Bug: None
Test: Built aosp_marlin-userdebug image, boots on device.
Test: Built aosp_x86_64-userdebug image, boots in emulator.
Change-Id: Ibb726c3b9d87688f387a7f2974fdae9bfc24efc9
2018-10-22 20:29:39 +00:00
yelinhsieh
d30b940dff ATest: GTest auto gen config support run_test_as in Android.bp .
Feature request from developer, support setting uid in Android.bp.

Bug:113359343

Test: source build/envsetup.sh ; lunch
    vim platform_testing/tests/example/native/Android.bp
    add
    test_options: {
        run_test_as: "1234",
    },
    in cc_test
    make hello_world_test
    cat out/target/product/xxxx/testcases/hello_world_test/hello_world_test.config
    Will see  <option name="run-test-as" value="1234" />
    below <test class="com.android.tradefed.testtype.GTest" >

Change-Id: I5604af5f20c45728d19f4c01396a20a74997f8a8
2018-10-22 14:14:29 +08:00
Dan Willemsen
fa2aee1ca4 Remove USE_CLANG_LLD[=false]
This should always be true now. It will be a change for side branches
(build_tools, etc) that weren't setting UseClangLld in the
soong.variables file.

Test: treehugger
Change-Id: I9fd6157fda630bf8bb939677dbcb026f02685f19
2018-10-21 19:54:12 -07:00
Dan Willemsen
a58f302ff7 Stop using DIST_DIR in Soong am: 2d31a44b8a am: a93a60469c
am: f2515678fa

Change-Id: I49d3b89fb392980d948e5c412c1e6f3157a21413
2018-10-21 01:20:47 -07:00
Dan Willemsen
2d31a44b8a Stop using DIST_DIR in Soong
We're only using it to distribute files in case of failure, which isn't
well supported currently, but can be handled for now by using the
DIST_DIR environment variable during the command execution.

This was at least one cause that we'd be re-running Soong during every
build server build, as the DIST_DIR values are unique.

Test: m dist
Change-Id: Ibd5e6b6c46695350de80b745bfb6a6aa685033a0
2018-10-20 21:33:41 -07:00
Martin Stjernholm
7acf478834 Merge "Improve messages for VNDK dependency errors." am: c325edce18 am: e608208a67
am: c36e11ef67

Change-Id: I1b6f87c35668a26b4e8f7b917992c80670d246f3
2018-10-17 05:19:19 -07:00
Martin Stjernholm
e608208a67 Merge "Improve messages for VNDK dependency errors."
am: c325edce18

Change-Id: I825ac5a438b13eb4c1edff75acfeafe317d2d72a
2018-10-17 05:10:03 -07:00
Martin Stjernholm
c325edce18 Merge "Improve messages for VNDK dependency errors." 2018-10-17 11:56:57 +00:00
Logan Chien
6e7d60ef8e Merge "Remove flags from ClangLibToolingUnknownCflags" am: 0b6bcd4014 am: aceb86e345
am: 99f21f683c

Change-Id: I4e8ef3471689c4f7183f9068a0a02ec9c1ecc622
2018-10-17 03:18:48 -07:00
Logan Chien
aceb86e345 Merge "Remove flags from ClangLibToolingUnknownCflags"
am: 0b6bcd4014

Change-Id: I7f7e9e80052e748c1d92f46fee4552c1b4a45a2b
2018-10-17 03:08:54 -07:00
Logan Chien
0b6bcd4014 Merge "Remove flags from ClangLibToolingUnknownCflags" 2018-10-17 09:46:26 +00:00
Logan Chien
61f2d11e75 Remove flags from ClangLibToolingUnknownCflags
This commit removes flags from ClangLibToolingUnknownCflags.  These
flags were added to workaround an old version of clang in
`external/clang`.  Since we have updated to clang-r339409b, we don't
need these workaround anymore.

Bug: 117764794
Test: development/vndk/tools/header-checker/utils/create_reference_dumps.py
Change-Id: Ifbeebf05df5c08ee3bb7d489f39250d8fd5f5acf
2018-10-16 17:52:12 +08:00
Martin Stjernholm
257eb0c933 Improve messages for VNDK dependency errors.
Test: build_test.bash

Change-Id: I8a52664d7bbb05232bc01b32580f926aae98056d
2018-10-16 10:38:57 +01:00
Haibo Huang
566ff6d0da Merge "Add support for cortex-a76 in soong" am: 2bfa2c852c am: 3df2d5986a
am: c7c161750d

Change-Id: I1336295b609ec5fb0536ecb844e478539708c803
2018-10-15 14:38:58 -07:00
Haibo Huang
3df2d5986a Merge "Add support for cortex-a76 in soong"
am: 2bfa2c852c

Change-Id: Ieabcb61634e3e60f26589837b8c0d3c29d072371
2018-10-15 14:15:52 -07:00
Haibo Huang
a31e2bda89 Add support for cortex-a76 in soong
Bug: 117125298
Test: Change a device to be A76 and build
Change-Id: Iae0773d54e57b247c818d44f8044180d5a3f95a8
2018-10-12 23:55:38 +00:00
Evgenii Stepanov
a56cf29e9b Define HWADDRESS_SANITIZER_GLOBAL_OPTIONS. am: 109029fb5c am: 5368c31baf
am: b68e5e6ba9

Change-Id: I58dbb48a84a7d317086f2a8a58aa475f6e448c3d
2018-10-12 15:14:46 -07:00
Evgenii Stepanov
5368c31baf Define HWADDRESS_SANITIZER_GLOBAL_OPTIONS.
am: 109029fb5c

Change-Id: I6fb2bb61f37032d819dcd6dd66e2f232779e8091
2018-10-12 15:01:33 -07:00
Evgenii Stepanov
109029fb5c Define HWADDRESS_SANITIZER_GLOBAL_OPTIONS.
It will be exported in device environment as HWASAN_OPTIONS.

Bug: 112438058
Test: none
Change-Id: I574b46060b3193c9f2351116a91ebc35470ae803
2018-10-12 18:18:13 +00:00
Kostya Kortchinsky
934f156fac Merge "Scudo minimal runtime support for Soong" am: d054c225fb am: b03b69be6d
am: c0d2ca05a7

Change-Id: Idcc681379e1c7dd045137177ab60672ec37a0177
2018-10-12 10:13:25 -07:00
Kostya Kortchinsky
b03b69be6d Merge "Scudo minimal runtime support for Soong"
am: d054c225fb

Change-Id: Ia506665582e4668d6ca29d1a1680c889844a95d1
2018-10-12 10:03:30 -07:00
Kostya Kortchinsky
d054c225fb Merge "Scudo minimal runtime support for Soong" 2018-10-12 16:49:31 +00:00
Dan Albert
33b9ad4fcd Merge changes I30719eaf,I84812c55,Ifa397b2b am: 383707f5ea am: e119bd1785
am: b86f9fde57

Change-Id: I915bb3013323883a7272c2653c3463b0d68f11d2
2018-10-11 20:43:06 -07:00
Dan Albert
e119bd1785 Merge changes I30719eaf,I84812c55,Ifa397b2b
am: 383707f5ea

Change-Id: Iae1c5a75026d1203b07da744906c91d64a1e6907
2018-10-11 20:31:30 -07:00
Logan Chien
6dc9c094fb Merge "Switch include path of header-abi-dumper headers" am: 3b8f3e91c1 am: 6e07d547bd
am: 9284fec82e

Change-Id: Ie3c91cc5ce00e382438f2724a861b870ed36b0c9
2018-10-11 20:19:07 -07:00
Treehugger Robot
383707f5ea Merge changes I30719eaf,I84812c55,Ifa397b2b
* changes:
  Better error message for multiple defined symbols.
  Python 3 fix.
  Pylint fix.
2018-10-12 03:16:53 +00:00
Logan Chien
6e07d547bd Merge "Switch include path of header-abi-dumper headers"
am: 3b8f3e91c1

Change-Id: I518fc2fe33016a75d70e797599ea312dc3d96595
2018-10-11 20:09:00 -07:00
Logan Chien
3b8f3e91c1 Merge "Switch include path of header-abi-dumper headers" 2018-10-12 02:56:14 +00:00
Dan Albert
756f2d0e1b Better error message for multiple defined symbols.
Test: nose2
Test: m ndk
Bug: http://b/116629622
Change-Id: I30719eaf29d63d8c6595bbab4e5214a1ce6189ca
2018-10-11 13:50:49 -07:00
Kostya Kortchinsky
ad73b2e18a Scudo minimal runtime support for Soong
Scudo is now compatible with the -fsanitize-minimal-runtime, and offers a new
dynamic library that doesn't bundle UBSan.

This patch adds support for this new library in Soong, preferring it over the
full one, unless a UBSan or diagnostic dependency is found.

Test: aosp compiled with m -j
Test: local test enabling Scudo for tombstoned
Change-Id: I17794131db148b33f8a8710ac43302cadf1af314
2018-10-11 11:55:16 -07:00
Pirama Arumuga Nainar
5de98d2295 Merge changes from topic "windows-libcxx" am: f4ecf76b2d am: 2985a30e1e
am: 35e18e1daf

Change-Id: I71c86b830fbddd699f3cdbf9aa49a0f4d8816f79
2018-10-11 11:07:45 -07:00
Pirama Arumuga Nainar
a84f58f1fc Change STL for Windows to libc++. am: a403cc7254 am: 5f193cb677
am: f0fbdb2741

Change-Id: I8dfba36aded6eb40217f7c3bb9cbcd01844429a5
2018-10-11 11:07:29 -07:00
Pirama Arumuga Nainar
1db6e92add Merge "Switch to clang-r339409b" am: 3558470d28 am: 6048e3c52d
am: a3acc7a84a

Change-Id: Ifd9dc9f843f9c579094c3bb1654678edc58bb458
2018-10-11 11:06:58 -07:00
Pirama Arumuga Nainar
2985a30e1e Merge changes from topic "windows-libcxx"
am: f4ecf76b2d

Change-Id: I9bc7c290899afe5aa6e15730ae812e23ed665c16
2018-10-11 10:22:26 -07:00