Commit Graph

3749 Commits

Author SHA1 Message Date
Colin Cross
4c2c46f0a7 Fix nondeterminstic iteration of vndk modules map
Sort the list of libraries when iterating over the vndk modules
map to avoid a non-deterministic output file.

Test: m nothing && mv out/soong/build.ninja /tmp && m nothing && diff -u out/soong/build.ninja /tmp/build.ninja
Change-Id: I889736715dab491bb7e69f3499ab1a5e2c876171
2019-06-03 15:52:27 -07:00
Ryan Prichard
f979d73428 Omit .gnu_debuglink sections in object files
I'm not sure if these sections are used, but by adding them to
libgcc_stripped.a, we can end up with multiple .gnu_debuglink sections in
an executable, where the first two unhelpfully point at "libgcc.a". e.g.:

$ readelf -SW -x.gnu_debuglink out/target/product/walleye/system/bin/bootstrap/linker64
...

Section Headers:
  ...
  [18] .gnu_debuglink    PROGBITS        0000000000000000 10f19c 000020 00      0   0  1
  ...
  [22] .gnu_debuglink    PROGBITS        0000000000000000 18a2c8 000010 00      0   0  4
  ...

Hex dump of section '.gnu_debuglink':
  0x00000000 6c696267 63632e61 00000000 3d5f65d8 libgcc.a....=_e.
  0x00000010 6c696267 63632e61 00000000 3d5f65d8 libgcc.a....=_e.

Hex dump of section '.gnu_debuglink':
  0x00000000 6c696e6b 65723634 00000000 f85db7ea linker64.....]..

Bug: none
Test: m libgcc_stripped linker
Test: no .gnu_debuglink section in libgcc_stripped.a
Test: only one .gnu_debuglink section in system/bin/bootstrap/linker64
Change-Id: I0c47a9acd6d52f5cbc5bfa8b67d072ebb075a242
2019-05-31 15:07:16 -07:00
Dimitry Ivanov
3a728f10b6 Merge "Skip native_bridge modules when installing vndk snapshot" am: 656833e0c8 am: 441c715fe8 am: 4fb0004f6b
am: 1b9bb90426

Change-Id: I716b1021028889ec03c3e786d52c91db336d40dc
2019-05-31 06:22:30 -07:00
Dimitry Ivanov
4fb0004f6b Merge "Skip native_bridge modules when installing vndk snapshot" am: 656833e0c8
am: 441c715fe8

Change-Id: Ie8425f616d0393101637ff2d63ba957fa26a49ea
2019-05-31 06:12:32 -07:00
Dimitry Ivanov
656833e0c8 Merge "Skip native_bridge modules when installing vndk snapshot" 2019-05-31 12:51:55 +00:00
Mitch Phillips
bfeade6424 Fix fuzzer builds [#2].
- Updates the fuzzer builds to use SANITIZE_TARGET='fuzzer' instead of
'coverage'.
- Removed an old dependency that made fuzzer builds without ASan
an error.
- Fixed up the build flags to allow fuzzers to be built. Previously, the
coverage flags were manually provided. As the toolchain has moved on,
these flags are no longer compatible with libFuzzer, and so I've updated
them to use the correct, compatible flags.
- Added a dependency mutator for fuzzer coverage.

Bug: 121042685
Test: With all patches in the bug merged, build a fuzzer using
'SANITIZE_TARGET=fuzzer mmma <your_fuzzer>'.

Change-Id: Ib6246980f77bc4babe587b1e88038aa12228fa83
Merged-In: Ib6246980f77bc4babe587b1e88038aa12228fa83
2019-05-30 16:49:42 +00:00
Mitch Phillips
b843c9aa9f Merge "Fix fuzzer builds [#2]." into qt-dev-plus-aosp am: 19ce59f598
am: f180a6c999

Change-Id: I842d81cfaeb37ced7914a905d03556b4626ef7ce
2019-05-29 17:57:07 -07:00
Mitch Phillips
5a6ea6cf3b Fix fuzzer builds [#2].
- Updates the fuzzer builds to use SANITIZE_TARGET='fuzzer' instead of
'coverage'.
- Removed an old dependency that made fuzzer builds without ASan
an error.
- Fixed up the build flags to allow fuzzers to be built. Previously, the
coverage flags were manually provided. As the toolchain has moved on,
these flags are no longer compatible with libFuzzer, and so I've updated
them to use the correct, compatible flags.
- Added a dependency mutator for fuzzer coverage.

Bug: 121042685
Test: With all patches in the bug merged, build a fuzzer using
'SANITIZE_TARGET=fuzzer mmma <your_fuzzer>'.

This is the qt-dev-plus-aosp cherrypick of aosp/954925. See the AOSP
commit for further information.

Change-Id: Ib6246980f77bc4babe587b1e88038aa12228fa83
2019-05-28 15:46:11 -07:00
Jooyung Han
9cfa0cbe6e Merge "exports LOCAL_SOONG_VNDK_VERSION for VNDK libs" am: 75fcf98038 am: e1d405b385 am: 519f9f337e
am: 367abb71a6

Change-Id: I529b118643b7ac6622676c28de798abb07abc5c3
2019-05-24 21:49:12 -07:00
Jooyung Han
519f9f337e Merge "exports LOCAL_SOONG_VNDK_VERSION for VNDK libs" am: 75fcf98038
am: e1d405b385

Change-Id: Ib30ccf47efd65401e2f59d2d18c94c6599674782
2019-05-24 20:05:45 -07:00
Yi Kong
15b6371c7d Merge "Enable the experimental LLVM new pass manager" am: 2adb7eec9a am: c0377c2a12 am: 8973bd7683
am: f121de03b3

Change-Id: If8780b4acaccfdd4a029eaf0c8d3b653f7c76b0e
2019-05-24 19:45:24 -07:00
Dimitry Ivanov
dcea8b4bb1 Merge "Fix override for native_bridge modules" am: acce05a58c am: ed0b1aa02f am: c44f7bbd9f
am: 852504c947

Change-Id: I6837d3352cca9e3e6af8821db254413ece0ea347
2019-05-24 19:44:48 -07:00
Dimitry Ivanov
9d3da1aa7d Merge "Apply native_bridge suffix to all cc_modules" am: 7636b362e1 am: 158ca2bfa2 am: 16e7643f54
am: 119458d71c

Change-Id: I3f6f1931809184ec6eac1448e772acc47c929d68
2019-05-24 19:44:29 -07:00
Treehugger Robot
75fcf98038 Merge "exports LOCAL_SOONG_VNDK_VERSION for VNDK libs" 2019-05-25 00:16:31 +00:00
Yi Kong
8973bd7683 Merge "Enable the experimental LLVM new pass manager" am: 2adb7eec9a
am: c0377c2a12

Change-Id: Ia4af6b0c9be34bea2aff6d7c536a38420ebb567d
2019-05-24 11:17:33 -07:00
Yi Kong
2adb7eec9a Merge "Enable the experimental LLVM new pass manager" 2019-05-24 17:33:26 +00:00
Dimitry Ivanov
c44f7bbd9f Merge "Fix override for native_bridge modules" am: acce05a58c
am: ed0b1aa02f

Change-Id: Ie0887663e9366f0cfd7319e8026c67b33b62c79c
2019-05-24 06:11:32 -07:00
Dimitry Ivanov
acce05a58c Merge "Fix override for native_bridge modules" 2019-05-24 12:47:24 +00:00
Jooyung Han
9b0d87d4c1 Merge "soong: fix wrong link type for VNDKs" am: 18bb34d633 am: b0aca51ad6 am: a579e144c6
am: 5b0ecd4553

Change-Id: Idaef748e9254841e214895e28af6d3cd981edece
2019-05-24 05:17:32 -07:00
Dimitry Ivanov
16e7643f54 Merge "Apply native_bridge suffix to all cc_modules" am: 7636b362e1
am: 158ca2bfa2

Change-Id: I09fd0978f62c8812b3ba7e3ea02608b278448a11
2019-05-24 01:47:32 -07:00
Colin Cross
d001d27e31 Merge "Cut darwinStripPool from 10 to 5" am: ecca61f0f2 am: bf96a947f1 am: a78a8691d6
am: 88c85d904d

Change-Id: Ie0efa50702adb13f0b3d7dc631c866315ac7919d
2019-05-24 01:45:56 -07:00
Dimitry Ivanov
7636b362e1 Merge "Apply native_bridge suffix to all cc_modules" 2019-05-24 08:28:55 +00:00
dimitry
51ea18a437 Skip native_bridge modules when installing vndk snapshot
Do not install natively bridged libraries as part of vndk snapshot.

Bug: http://b/77159578
Test: Enable 4arch build -> make
Change-Id: I519ef92ca356ee6438abb3c85fa639af2170c2ef
2019-05-23 13:35:13 +02:00
dimitry
db41747c8b Fix override for native_bridge modules
Native_bridge modules should override only native_bridge modules
and not regular ones.

Bug: http://b/77159578
Test: make 4-arch product
Change-Id: I79d96736082397abeb36d653840679a7aa0edbf5
2019-05-23 13:35:13 +02:00
dimitry
4320449c97 Apply native_bridge suffix to all cc_modules
This fixes the problem with cc_object not having this suffix and
as a result overriding non-bridged variants for modules using mk files.

Bug: http://b/77159578
Test: build 4arch product
Change-Id: Ie958f997c6f54f93d8b2987ca5ba605004e1eb70
2019-05-23 13:31:10 +02:00
Jooyung Han
a579e144c6 Merge "soong: fix wrong link type for VNDKs" am: 18bb34d633
am: b0aca51ad6

Change-Id: I87f4534284f563a58e8b4f0777a9f68d9a451c14
2019-05-23 03:20:17 -07:00
Colin Cross
a78a8691d6 Merge "Cut darwinStripPool from 10 to 5" am: ecca61f0f2
am: bf96a947f1

Change-Id: I7ccd87d793f0451568f4ef27371fc32d7fd2f8ea
2019-05-23 03:17:43 -07:00
Treehugger Robot
18bb34d633 Merge "soong: fix wrong link type for VNDKs" 2019-05-23 07:32:24 +00:00
Yi Kong
2fc3248b6b Enable the experimental LLVM new pass manager
For walleye, the overall binary size is decreased by ~1.1%.

For Googlers, http://go/android-llvm-newpm

Test: build
Bug: 131855431
Change-Id: I6726cd3de0d528b773fb23eae1a7c5c360e29807
2019-05-23 07:17:27 +00:00
Jooyung Han
380029182c soong: fix wrong link type for VNDKs
Do not rely on 'module.Name()' to decide VNDK link type.
Some prebuilt modules such as libclang_rt_prebuilt_library_shared and
vndk_prebuilt may have different naming schemes.(prefix/suffix)
And llndk_library module has '.llndk' suffix.

Instead, use VNDK-related properties (e.g. vndk.enabled,
vendor_available, etc.).

Bug: 132800095
Test: m & check LOCAL_SOONG_LINK_TYPE for prebuilts
Change-Id: I06b0c182aeab16969c44a86397f02be4beb80bbd
2019-05-23 12:24:51 +09:00
Colin Cross
badf8d691f Cut darwinStripPool from 10 to 5
Failures in strip.sh are still occurring with darwinStripPool set to
10, try 5.

Bug: 132822437
Test: none
Change-Id: I2df247c89b6d8f6e741d4e17057b06ff9ec72b40
2019-05-23 02:09:07 +00:00
Peter Collingbourne
dcd2ddfc7e Restore the test for bionic being in an APEX. am: 49a25cbc7c am: 34acae298d am: 51e434c8d3
am: e9945dc81c

Change-Id: Idd10d9913163cc2e803b79a9005e4f6504a28b19
2019-05-22 09:18:36 -07:00
Peter Collingbourne
51e434c8d3 Restore the test for bionic being in an APEX. am: 49a25cbc7c
am: 34acae298d

Change-Id: Iea6a09d95f04bcc4715cb35907e3d00aa7f81e88
2019-05-22 01:14:22 -07:00
Christopher Ferris
3ccba5a94b Merge "Add an option to preserve symbols and debug_frame." am: 8a7469a0d7 am: 0361ccc398 am: 6ac2ce2433
am: 7488d70bbe

Change-Id: I73f3c3ebc97eaf149fbc695b713179868b831c98
2019-05-21 21:34:14 -07:00
Peter Collingbourne
49a25cbc7c Restore the test for bionic being in an APEX.
This was removed in
https://android-review.googlesource.com/c/platform/build/soong/+/950885
because it appeared that bionic was always in an APEX, but apparently the
ART host tests have bionic outside of an APEX.

Test: art/test/testrunner/run_build_test_target.py -j50 art-linux-bionic-x64
Change-Id: I0b99462e8636da53c87f9250093689aaaf9ea695
2019-05-21 16:15:29 -07:00
Christopher Ferris
6ac2ce2433 Merge "Add an option to preserve symbols and debug_frame." am: 8a7469a0d7
am: 0361ccc398

Change-Id: I0243a02b8b83b3cd33d9680d531cdd14dcc650a1
2019-05-21 15:41:20 -07:00
Christopher Ferris
8a7469a0d7 Merge "Add an option to preserve symbols and debug_frame." 2019-05-21 18:09:08 +00:00
Peter Collingbourne
26746c7901 Merge "Teach soong not to duplicate the HWASAN runtime into each APEX." am: 90b6561d5d am: 369f315575 am: e690f5894e
am: 5ae0b342f3

Change-Id: I1c0644124f7dcbb0ae008ac21582bd991fbde01d
2019-05-21 01:45:59 -07:00
Jooyung Han
76106d977e exports LOCAL_SOONG_VNDK_VERSION for VNDK libs
For vndk_prebuilt_shared module, it is set by 'version' property.
For other vndk libs(e.g. cc_library with vndk.enabled), it is set as
PLATFORM_VNDK_VERSION.

Background:
To support "skip installing current VNDK".

You can get a system.img without current VNDK libs.
This may help when you want a smaller system.img given that the image
will be used with a specific version (not current) of vendor image.

Bug: 132140714
Test: m TARGET_SKIP_CURRENT_VNDK=true && see if current VNDK is not
installed

Change-Id: I1c603efc3e95fe8bdf870f2de91994077899fca7
2019-05-21 14:56:27 +09:00
Peter Collingbourne
e690f5894e Merge "Teach soong not to duplicate the HWASAN runtime into each APEX." am: 90b6561d5d
am: 369f315575

Change-Id: I152a188cf3f2607c1deeaf2993312ee3821eeb81
2019-05-20 21:50:16 -07:00
Peter Collingbourne
90b6561d5d Merge "Teach soong not to duplicate the HWASAN runtime into each APEX." 2019-05-21 02:29:46 +00:00
Colin Cross
b369b35f23 Merge "Limit calls to strip.sh on darwin" am: 288a1e2957 am: 131a9a8dcb am: dd761b255d
am: 50149efadb

Change-Id: I90a3aedfca1a58fb0c780a10fa51019e8e073c43
2019-05-17 21:11:05 -07:00
Colin Cross
1b2bc64be7 Merge changes I3dc3fded,Ic1276329,I6be04dec am: 045f0f1f30 am: 4c18d670df am: 1f547cfaac
am: 5431b2c3c5

Change-Id: I60a6e00730cc3c56158c97d0d61ce3f7e80df69c
2019-05-17 20:45:43 -07:00
Colin Cross
dd761b255d Merge "Limit calls to strip.sh on darwin" am: 288a1e2957
am: 131a9a8dcb

Change-Id: I910226b14dfd2c40c0d0306697128ad98a6bbb34
2019-05-17 20:27:18 -07:00
Colin Cross
35116ceae6 Merge "Support using cc_prebuilt_library_shared with cc_library" am: 77c22bf008 am: e3106ff23d am: 57f3e6c30f
am: c7f7c7b646

Change-Id: I1aa667f5afe3fcbc3170b3d321201fdc61aafdd8
2019-05-17 19:24:37 -07:00
Treehugger Robot
288a1e2957 Merge "Limit calls to strip.sh on darwin" 2019-05-18 01:57:37 +00:00
Colin Cross
1f547cfaac Merge changes I3dc3fded,Ic1276329,I6be04dec am: 045f0f1f30
am: 4c18d670df

Change-Id: I0c32a4d28740aa23c4a8ee90a879b19374f915ed
2019-05-17 18:40:13 -07:00
Christopher Ferris
b43fe7a838 Add an option to preserve symbols and debug_frame.
New strip option named keep_symbols_and_debug_frame, that will keep the
symbols and the .debug_frame. This is meant for use by libc.so only on
arm32. Other libraries might want to use it to keep better unwinding
information on device.

Bug: 132992102

Test: Built libc.so with this option and verified that it contains
Test: the .debug_frame section.
Change-Id: I823a28199dec8316e8b26fe31ff9f17e6b11d406
2019-05-17 17:52:18 -07:00
Colin Cross
57f3e6c30f Merge "Support using cc_prebuilt_library_shared with cc_library" am: 77c22bf008
am: e3106ff23d

Change-Id: I569390897de21972c0b35924326e8073829dfee5
2019-05-17 17:06:11 -07:00
Colin Cross
ee3ea31a24 Limit calls to strip.sh on darwin
strip.sh can use a file descriptor per .o file when run on .a files,
which can hit the system file descriptor limit on darwin.  This
causes failures when manay variants of libgcc_stripped are built
simultaneously.  Put all strip rules on darwin into a pool that
limits them to 10 concurrent processes, which will limit the file
descriptor usage to ~7500.

Fixes: 132822437
Test: no mention of darwinStripPool in out/soong/build.ninja on linux
Test: m libgcc_stripped on darwin
Change-Id: I3d4fbbd8d44d2e9059a79df113ab95336ec2c658
2019-05-17 22:51:00 +00:00