Commit Graph

3310 Commits

Author SHA1 Message Date
Peter Collingbourne
967511a4e8 Pass -hwasan-allow-ifunc when building with hwasan.
Now that the toolchain and bionic both support ifuncs in
static executables, we can turn this on. Reduces size of
walleye_hwasan-userdebug system.img by 11MB.

Change-Id: I2f19b22518153328eee3fdca79d0c851cc513c3a
2019-03-20 19:42:42 +00:00
Colin Cross
8a49795df1 Replace ctx.ExpandSources with android.PathsForModuleSrc
Move the logic from ctx.ExpandSources into android.PathsForModuleSrc
and ctx.ExpandSource into android.PathForModuleSrc, and deprecate
them.  When combined with the pathDepsMutator this will let all
properties that take source paths also take filegroups or genrule
outputs, as long as they are tagged with `android:"path"`.

Test: All soong tests
Change-Id: I01625e76b5da19240e9649bf26a014eeeafcab8f
2019-03-20 19:36:13 +00:00
Colin Cross
07e51619a2 Remove ModuleSrcPath
ModuleSrcPath was designed as a type that ensured that modules only
referenced sources inside the directory that contained the Android.bp
file.  In practice they don't work very well, because allowing
filegroups and genrules as inputs to any module that takes a source
path means that the path might end up being to a file in another
source directory or to a generated file in the output directory.

Remove ModuleSrcPath, replacing it with SourcePath in the places
that need to explicitly refer to a path in the source tree, or
Path where it may be a source path or a generated path.

Make PathForModuleSrc return a Path instead of a SourcePath in
preparation for consolidation with ctx.ExpandSources, which will
make it possibly return paths to generated files.

Test: All soong tests
Change-Id: I973a78470ed14307eea5f6d0cc93942775a65715
2019-03-20 19:36:03 +00:00
Peter Collingbourne
921220e7a7 Merge "Remove workarounds for old compiler versions." am: 1b781e52e2 am: 98e6f7e4a1
am: c83efac0ba

Change-Id: If5d7ce1de76324aa7e907f54cb2c6cb20edaac56
2019-03-20 10:49:45 -07:00
Yi Kong
afe467154f Merge "Add -faddrsig to ClangExtraCflags" into stage-aosp-master 2019-03-20 17:43:51 +00:00
Yi Kong
7e8b47b313 Add -faddrsig to ClangExtraCflags
Emit address-significance table which allows linker to perform safe ICF.
Clang does not emit the table by default on Android since NDK still uses
GNU binutils.

With the flag, binary size is decreased. For Marlin:
               -fno-addrsig  -faddrsig  diff
/system/bin    28012K        27108K     -3.33%
/system/lib    88220K        86964K     -1.44%
/system/lib64  151936K       148108K    -2.58%

Test: m checkbuild
Bug: 128940110
Change-Id: I99511f038a6d4b88b5c849a0f8943c24731ab6ea
Merged-In: I99511f038a6d4b88b5c849a0f8943c24731ab6ea
(cherry picked from commit a32b5e6a6b)
2019-03-20 10:40:44 -07:00
Peter Collingbourne
98e6f7e4a1 Merge "Remove workarounds for old compiler versions."
am: 1b781e52e2

Change-Id: I05f0960ef39eb9d0f3fd8592c7a3542cae9358ad
2019-03-20 10:40:27 -07:00
Yi Kong
1b0ba94e5d Add -faddrsig to ClangExtraCflags
Emit address-significance table which allows linker to perform safe ICF.
Clang does not emit the table by default on Android since NDK still uses
GNU binutils.

With the flag, binary size is decreased. For Marlin:
               -fno-addrsig  -faddrsig  diff
/system/bin    28012K        27108K     -3.33%
/system/lib    88220K        86964K     -1.44%
/system/lib64  151936K       148108K    -2.58%

Test: m checkbuild
Bug: 128940110
Change-Id: I99511f038a6d4b88b5c849a0f8943c24731ab6ea
(cherry picked from commit a32b5e6a6b)
2019-03-20 10:35:40 -07:00
Peter Collingbourne
1b781e52e2 Merge "Remove workarounds for old compiler versions." 2019-03-20 16:33:23 +00:00
Yi Kong
2a51b3fe00 Turn on string-plus-int warning
All instances for the warning are fixed/suppressed, turn the warning
back on.

Test: m checkbuild
Bug: 128878287
Change-Id: Ifd5f9a64cb7ff1ce47f498ed38436056b493ee92
2019-03-20 00:58:46 -07:00
Yi Kong
a32b5e6a6b Add -faddrsig to ClangExtraCflags
Emit address-significance table which allows linker to perform safe ICF.
Clang does not emit the table by default on Android since NDK still uses
GNU binutils.

With the flag, binary size is decreased. For Marlin:
               -fno-addrsig  -faddrsig  diff
/system/bin    28012K        27108K     -3.33%
/system/lib    88220K        86964K     -1.44%
/system/lib64  151936K       148108K    -2.58%

Test: m checkbuild
Bug: 128940110
Change-Id: I99511f038a6d4b88b5c849a0f8943c24731ab6ea
2019-03-20 03:21:10 +00:00
Yi Kong
35badd74bf Merge "Switch clang to r353983" am: bdb1ed828d am: cc6ac6647f
am: d182fd4f26

Change-Id: I0daabff1c4ed0045115fb8fd2c7ef6542742518a
2019-03-18 21:37:39 -07:00
Yi Kong
cc6ac6647f Merge "Switch clang to r353983"
am: bdb1ed828d

Change-Id: I1852d1b722211a2bb2ba8425e4e91fe19ad66811
2019-03-18 21:29:33 -07:00
Yi Kong
bdb1ed828d Merge "Switch clang to r353983" 2019-03-19 04:21:20 +00:00
Yi Kong
6925d2b300 Switch clang to r353983
Bug: 126457671
Bug: 123638879
Bug: 128878287
Test: go/clang-r353983-testing
Change-Id: I7f16e68f0f521ff55587084932d175b704e452c9
2019-03-19 04:20:52 +00:00
Jiyong Park
638ec3a938 Merge "Install symlink to the runtime APEX only for device" am: c743c37e92 am: 467fc4afa1
am: 0c0a3194b6

Change-Id: I7445ba140ddd2ddee89a8a5050ce1dd481d75bc3
2019-03-18 15:48:55 -07:00
Jiyong Park
467fc4afa1 Merge "Install symlink to the runtime APEX only for device"
am: c743c37e92

Change-Id: I5e38fde29caa769286455729d24fe2cbf66c56ab
2019-03-18 15:40:52 -07:00
Treehugger Robot
c743c37e92 Merge "Install symlink to the runtime APEX only for device" 2019-03-18 22:23:06 +00:00
Benjamin Gordon
58d24616e2 Merge "Add stoney ridge x86 variant" am: cd2e52870a am: 5473e3fbdf
am: c8351c6af8

Change-Id: I83644aba3f3657bf630b9330f6d30ab1ff3466e1
2019-03-15 15:57:18 -07:00
Benjamin Gordon
5473e3fbdf Merge "Add stoney ridge x86 variant"
am: cd2e52870a

Change-Id: I8c08245cc45cc4ed91a016058fb043a299fa95cf
2019-03-15 15:33:53 -07:00
Jiyong Park
c3e2c86caf Install symlink to the runtime APEX only for device
Host does not need the symlink. It also broke master-art-host targets.

Test: ALLOW_MISSING_DEPENDENCIES=true
DIST_DIR=~/temp
./art/tools/dist_linux_bionic.sh -j50 showcommands
com.android.runtime.host

Change-Id: Ie8e02553c5a1b6cd5afebd73a64268d2950fc18e
2019-03-16 02:13:46 +09:00
Benjamin Gordon
87e7f2f685 Add stoney ridge x86 variant
Bug: 124445930
Test: compile and deploy to grunt
Change-Id: Ie63217c7c68f5688bf070cbabf9ea5a1b82d3acc
2019-03-15 11:04:48 -06:00
Jiyong Park
7753455639 Merge "Create symlink for bionic files" am: 7487fb54fe am: f0fceb2cbf
am: 94d2eef048

Change-Id: Ic1d94187e0d4703165e0666cac04017a780b0fea
2019-03-15 02:40:51 -07:00
Jiyong Park
f0fceb2cbf Merge "Create symlink for bionic files"
am: 7487fb54fe

Change-Id: Ic87176738eeb92a2de8345a67d80ac224b1d3091
2019-03-15 02:15:49 -07:00
Treehugger Robot
7487fb54fe Merge "Create symlink for bionic files" 2019-03-15 09:02:18 +00:00
Stephen Hines
33b3746bb7 Merge "Add AVX/AVX2 supported archs in build system" am: 5971f50a22 am: 3c9be84a21
am: 55b011de4c

Change-Id: I7bf976ebdafd8a7859c4c6aa6a6df08c6947316b
2019-03-14 18:21:09 -07:00
Stephen Hines
3c9be84a21 Merge "Add AVX/AVX2 supported archs in build system"
am: 5971f50a22

Change-Id: I674453855cd1527aca39c90eac706deec91a4006
2019-03-14 18:02:03 -07:00
Jiyong Park
f11943527d Create symlink for bionic files
This change creates following symlinks for bionic files.

/system/lib/libc.so -> /apex/com.android.runtime/lib/bionic/libc.so
/system/lib/libm.so -> /apex/com.android.runtime/lib/bionic/libm.so
/system/lib/libdl.so -> /apex/com.android.runtime/lib/bionic/libdl.so
/system/bin/linker -> /apex/com.android.runtime/bin/linker
...

This allows us to not have mountpoints under /bionic.

Bug: 125549215
Test: m and inspect the symlinks in the system partition.
Change-Id: I3a58bf4f88c967862dbf06065a1af8fc4700dda3
2019-03-15 03:04:52 +09:00
Shalini Salomi Bodapati
4a0459dd03 Add AVX/AVX2 supported archs in build system
This patch adds new arch features avx2 and avx512 and
their supported archictectures for x86 and x86_64

Bug: 123376719
Test: m checkbuild

Change-Id: I3c079741815b39d7dbb4072e12ef7c9c2c15f5fe
Signed-off-by: Shalini Salomi Bodapati <shalini.salomi.bodapati@intel.com>
2019-03-13 03:48:45 +00:00
Colin Cross
700de16c35 Annotate paths and deprecate ExtractSource(s)Deps am: 27b922f53e am: e5f6f175a8
am: 8a098ecc62

Change-Id: I7d879187c748038ad64c3526148eaff7b7ba1a53
2019-03-07 12:06:59 -08:00
Colin Cross
e5f6f175a8 Annotate paths and deprecate ExtractSource(s)Deps
am: 27b922f53e

Change-Id: I6b4bd574d9dabf006e16f67a5212c63a2a0c7550
2019-03-07 11:05:13 -08:00
Colin Cross
27b922f53e Annotate paths and deprecate ExtractSource(s)Deps
Add `android:"path"` to all properties that take paths to source
files, and remove the calls to ExtractSource(s)Deps, the
pathsDepsMutator will add the necessary SourceDepTag dependency.

Test: All soong tests
Change-Id: I488ba1a5d680aaa50b04fc38acf693e23c6d4d6d
2019-03-07 18:36:35 +00:00
Jooyung Han
23ebe8cfe4 cc_test: emit errors if there's duplicate in srcs am: a61ff2cec3 am: c7da1a6b81
am: f7b91be91f

Change-Id: Ie1c7c95979d43aab97bc0b80beb66a00d09ebae9
2019-03-06 18:21:09 -08:00
Jooyung Han
c7da1a6b81 cc_test: emit errors if there's duplicate in srcs
am: a61ff2cec3

Change-Id: Iace7509da2d9bf6cca8f5820ed4e7ac6b93f7316
2019-03-06 18:08:57 -08:00
Jooyung Han
a61ff2cec3 cc_test: emit errors if there's duplicate in srcs
In general "srcs" property allows duplication in the list.
But when cc_test's "test_per_src" property is set "true",
there will be variants according to "srcs" list.
Therefore, it should fail if there is a duplicate entry
in srcs list.

Bug: 113629474
Test: mma
Change-Id: I543624459c30dd296494a3a80e28ce5503a3ea2f
2019-03-07 01:57:57 +00:00
Peter Collingbourne
bd19db0da6 Remove workarounds for old compiler versions.
LLVM r349610 was released, so these workarounds are no longer required.

Bug: 112907825
Change-Id: Ia6ba0034881f2ab657d8420df3047c21757c7d9b
2019-03-06 10:48:36 -08:00
Jooyung Han
7e3b571136 Merge "Add checks for double_loadable dependencies" am: f14277fc3a am: 4b75790b30
am: ba30c798c9

Change-Id: I6b7be3f1d1fea09377db22f65ecc6e8aecfe1f0b
2019-03-05 20:24:20 -08:00
Jooyung Han
4b75790b30 Merge "Add checks for double_loadable dependencies"
am: f14277fc3a

Change-Id: Ida062e0df66d5cc4c0a6f5f895eff102c0788c76
2019-03-05 19:43:56 -08:00
Jooyung Han
a70f067899 Add checks for double_loadable dependencies
Vendor-available libs can be double-loaded if LLNDK libs depend
on them. Currently soong checks only 'direct' dependency bewteen
LLNDK and VNDK lib. With this change, soong checks if every dependencies
from LLNDK is also LLNDK or VNDK-SP or marked as 'double_loadable:true'.
This change causes many libs to be marked as 'double_loadable'.

Bug: 121280180
Test: m -j
Change-Id: Ibc1879b6fd465a3141520abe0150018c3051c0a7
2019-03-06 11:18:21 +09:00
Inseob Kim
c3afe8ea20 Add blueprint:mutated to sysprop properties am: b3f22ca48b am: fb4d873dd2
am: bc32f54c26

Change-Id: Ieb1d292ad0e4c862959674005a8bef0914b39cab
2019-03-04 23:09:09 -08:00
Inseob Kim
fb4d873dd2 Add blueprint:mutated to sysprop properties
am: b3f22ca48b

Change-Id: I10c895eef01153f724389de2794bd141c56b1c3c
2019-03-04 23:01:03 -08:00
Inseob Kim
b3f22ca48b Add blueprint:mutated to sysprop properties
Because this flag is used internally by sysprop_library.

Bug: N/A
Test: m -j
Test: build cc_library with setting sysprop property and fail
Change-Id: I478889b8923f99407a067e5b9efee9322c3e5ae8
2019-03-05 03:45:41 +00:00
Colin Cross
9a4a2f313a Replace *Escape with *EscapeList am: 0b9f31fb08 am: 5b6741d94d
am: 29560640a9

Change-Id: I04930d0949d8fb3317317aad7f577b75e47a9505
2019-03-04 10:30:20 -08:00
Colin Cross
5b6741d94d Replace *Escape with *EscapeList
am: 0b9f31fb08

Change-Id: I18edabe44493f077c1b63f354dfc28029a9641d5
2019-03-04 10:22:10 -08:00
Colin Cross
0b9f31fb08 Replace *Escape with *EscapeList
Follow the change to blueprint to make *Escape take and return a string
and add *EscapeList that take and return slices of strings.  Fix up
a few places that were unnecessarily converting a string to a slice
and back to a string.

Test: m nothing
Change-Id: I3fa87de175522205f36544ef76aa2f04aef1b936
2019-03-04 18:11:53 +00:00
bralee
4ee5df9e99 Merge "Build System: Collect native dependent information from cc.go." am: cc5b384ea5 am: ea119a86a4
am: ec4290ac19

Change-Id: Ia8c7e5fb0c21eabf3a3fab30cae5c72bfe41143f
2019-03-03 22:17:16 -08:00
bralee
ea119a86a4 Merge "Build System: Collect native dependent information from cc.go."
am: cc5b384ea5

Change-Id: I348e7f4a26080f779e3a6c1a9fb1d0e9c2f21d82
2019-03-03 22:09:10 -08:00
bralee
3f49f4d469 Build System: Collect native dependent information from cc.go.
Bug: 126957990
Test: 1. m aidegen
      2. $ANDROID_HOST_OUT/bin/aidegen-dev frameworks/native -v
      3. open out/soong/module_bp_java_deps.json
         check *.a and *.so files are added.

Change-Id: I82ba49d023621908f0be12abf529553aee45fa5b
2019-03-04 06:58:15 +08:00
Julien Desprez
9d52cc480d Merge "Autogenerate some extra_options based on some build properties" am: afbddd8ddd am: 706f181876
am: 551b210548

Change-Id: I0b6955b9ee43e6d79320321609b47584194029eb
2019-03-01 17:24:22 -08:00
Julien Desprez
706f181876 Merge "Autogenerate some extra_options based on some build properties"
am: afbddd8ddd

Change-Id: Ic0daecc6b3151e8b917aee9dbbbbf0447ba92a93
2019-03-01 17:00:32 -08:00