Commit Graph

3324 Commits

Author SHA1 Message Date
Yi Kong
5a3f31b284 Merge "Turn on string-plus-int warning" 2019-03-20 21:33:46 +00:00
Pirama Arumuga Nainar
7ce5003033 Enable lld for windows am: 3c21c0b1d9 am: 74eef36e44
am: c389bb4fda

Change-Id: I9b2404abf3f61895a47ba9dc312bd47a064e0295
2019-03-20 14:29:56 -07:00
Pirama Arumuga Nainar
c389bb4fda Enable lld for windows am: 3c21c0b1d9
am: 74eef36e44

Change-Id: I03db7c8ead9961578c6e4cf5717244416ef540bd
2019-03-20 14:26:52 -07:00
Pirama Arumuga Nainar
74eef36e44 Enable lld for windows
am: 3c21c0b1d9

Change-Id: Ib45b147ca91af7d43b65576ed5b416f8b1b31aff
2019-03-20 14:22:49 -07:00
Pirama Arumuga Nainar
3c21c0b1d9 Enable lld for windows
Bug: http://b/110800681

The following flags that the binutils linkers support are not available
in lld for Windows:
  -soname
  --no-undefined
  -rpath

Windows also uses "import libraries", which are stub libraries used only
for linking.  The binutils linkers accepted a DLL and treated them as an
import library.  But lld issues the following error:

  lld-link: error: ...DLL: bad file type. Did you specify a DLL instead
  of an import library?

To resolve this, pass '-out-implib=libFoo.a' to lld when linking
libFoo.dll.  Add libFoo.a as an implicit output to the 'ld' build rule.

Rewrite the shared libraries for a library/binary to use the import
library instead of the DLL.  As a side-effect, this also (correctly)
uses the AdbWinApi.a that's alongside
development/host/windows/prebuilt/usb/AdbWinApi.dll

Test: Run Windows tests (go/android-llvm-windows-testing) and check
absence of regressions.

Change-Id: I15a178589aa6882caa6e7e38650cc6ef48109764
2019-03-20 21:07:47 +00:00
Peter Collingbourne
d592d7197e Pass -hwasan-allow-ifunc when building with hwasan. am: 967511a4e8 am: b34551b875
am: 7010be0096

Change-Id: Ibdc6ef96e03878b5a7e1f722f41ea348bab21037
2019-03-20 13:18:32 -07:00
Peter Collingbourne
7010be0096 Pass -hwasan-allow-ifunc when building with hwasan. am: 967511a4e8
am: b34551b875

Change-Id: I3816cfa924412b9f2be4ca64055f85e15b6c81bf
2019-03-20 13:14:30 -07:00
Peter Collingbourne
b34551b875 Pass -hwasan-allow-ifunc when building with hwasan.
am: 967511a4e8

Change-Id: Ia22447c870639cbb664e34783adfed79782d1c2b
2019-03-20 13:10:27 -07:00
Colin Cross
75bace9c07 Replace ctx.ExpandSources with android.PathsForModuleSrc am: 8a49795df1 am: 9bcee1f400
am: 3cafca1d18

Change-Id: I8945a8a775d5931489ef3f3614046207dd816f1e
2019-03-20 12:53:01 -07:00
Colin Cross
ecfa227f40 Remove ModuleSrcPath am: 07e51619a2 am: 734ad216fe
am: 055d480456

Change-Id: I386ab7a179da59477acc38571f63e652ac47d8a2
2019-03-20 12:52:44 -07:00
Colin Cross
3cafca1d18 Replace ctx.ExpandSources with android.PathsForModuleSrc am: 8a49795df1
am: 9bcee1f400

Change-Id: Ie94f2abc0526f8121e1edf3230bd63134e552ff2
2019-03-20 12:48:29 -07:00
Colin Cross
055d480456 Remove ModuleSrcPath am: 07e51619a2
am: 734ad216fe

Change-Id: I0d11c34f99116f08054cfd1cfb5abc7102c9700d
2019-03-20 12:48:15 -07:00
Colin Cross
9bcee1f400 Replace ctx.ExpandSources with android.PathsForModuleSrc
am: 8a49795df1

Change-Id: I42fc5461cff28f58039787b434527500d4e88eb6
2019-03-20 12:44:10 -07:00
Colin Cross
734ad216fe Remove ModuleSrcPath
am: 07e51619a2

Change-Id: I3afb1d6e16cd8d9492edf00616a856864a350340
2019-03-20 12:44:00 -07:00
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