Commit Graph

8070 Commits

Author SHA1 Message Date
Jayant Chowdhary
9156330ded Merge "Add arch, lib name to header-abi-diff invocation." 2017-05-22 23:47:15 +00:00
Treehugger Robot
6b8eb63fc2 Merge "Fix mips32r2-fp-xburst build" 2017-05-22 22:54:11 +00:00
Jayant Chowdhary
f54e0a79e2 Add arch, lib name to header-abi-diff invocation.
Test: mm -j64 in platform/bionic, platform/system/core/liblog.

Bug: 38325544

Change-Id: Ia2098c1facf2999ef51d55212acc1317e2bf98c1
2017-05-22 10:54:23 -07:00
Treehugger Robot
454fcd429d Merge "Make factory functions in cc/prebuilt.go public. Test: refactoring CL." 2017-05-18 18:58:33 +00:00
Christopher Ferris
10559e4648 Merge "soong: use optimal FPU on Cortex-A15" 2017-05-17 23:33:57 +00:00
Leo Li
74f7b97d3f Make factory functions in cc/prebuilt.go public.
Test: refactoring CL.

Change-Id: Icf4628df082d2b5a41a9108f85cb73dab42839ab
2017-05-17 16:33:20 -07:00
Treehugger Robot
d17602b76c Merge "Dedup exported flags from dependencies" 2017-05-17 22:52:44 +00:00
Colin Cross
dd84e056ed Dedup exported flags from dependencies
Soong command lines have gotten very long due to hidl modules
reexporting lots of libraries.  Dedup the include dir flags.

Test: m -j checkbuild
Change-Id: I6ada1251012da42344e2c00ae66001a649023d2c
2017-05-17 14:22:22 -07:00
Jake Weinstein
5916657a96 soong: use optimal FPU on Cortex-A15
* Cortex-A15 supports VFPv4 instructions

Test: make otapackage
Test: Built angler with 32 bit variant set to cortex-a15.
Test: Boot this version of the angler, ran bionic unit tests.
Change-Id: I94f00c9486ece201aa2c230308b9f90b0209dc4a
2017-05-17 14:11:33 -07:00
Treehugger Robot
04b830f133 Merge "Revert "Revert "Ensure environment dependencies are correct""" 2017-05-16 00:25:09 +00:00
Treehugger Robot
bdb02bd334 Merge "Clarify paths.go somewhat" 2017-05-16 00:20:29 +00:00
Dan Willemsen
6606872bf6 Revert "Revert "Ensure environment dependencies are correct""
This reverts commit 4068a5db6c.

Now the Mac xcode-select and xcrun goes through Config.HostSystemTool,
which will grab $PATH through Config.Getenv

Test: m -j (on mac)
Change-Id: I2632c4fdb2ec961e59944cf02ff165e0fd3c869d
2017-05-15 15:22:45 -07:00
Christopher Ferris
6df46f5d93 Add cortex-a73 support.
Also, update flags for cortex-a53.

Bug: 37647380

Test: Built target with cortex-a73 for both 32 bit/64 bit.
Test: Built target with cortex-a53.cortex-a57 for both 32 bit/64 bit.
Test: Ran bionic unit tests, ran art target tests.

(cherry picked from commit 1d9aa26d44)

Change-Id: I3325f60add7f424f8cca53c22919fc481ef5e787
2017-05-15 12:44:58 -07:00
Jeff Gaston
734e3809ad Clarify paths.go somewhat
Bug: 35562758
Test: make

Change-Id: I4cf05ffdd0962186f490467829e3576b4e269c47
2017-05-15 11:31:48 -07:00
Colin Cross
67a5c132c5 Prettify soong ninja build descriptions
Descriptions currently look like:
[  0% 4/29328] cc out-soong/.intermediates/external/clang/lib/Sema/libclangSema/android_arm_armv7-a-neon_denver_static_core/obj/external/clang/lib/Sema/SemaCodeComplete.o

This is not very helpful - most of the characters are used to show the
output path, which contains useful information like target architecture,
but also contains most of the path to the source files twice, and less
useful information like the exact variant name used by soong.
Make the descriptions look like:
[  0% 3/29329] //external/clang/lib/Sema:libclangSema clang++ SemaTemplateInstantiate.cpp

This is //path/to/module:modulename tool relative/path/to/source/file

Test: builds, looks pretty
Change-Id: I3087aa7d4eb1860ef6239d77407b8b35445616d7
2017-05-10 11:04:16 -07:00
Colin Cross
570e18ffaa Merge changes If90975c8,I2a873fc6
* changes:
  Use ctx.ModuleBuild for darwin ar
  Run gofmt
2017-05-10 17:28:21 +00:00
Treehugger Robot
f2a9a3c582 Merge "soong: add __clang_analyzer__ to clang-tidy" 2017-05-10 04:34:42 +00:00
Jayant Chowdhary
6e8115acb1 Work-around for crt objects with sdk: current
Test: convert libcups from Android.mk->Android.bp, mm -j64.

Change-Id: I4fddcfa5806d0ce27a229c37a078b0d93e9082a8
2017-05-09 14:38:10 -07:00
Colin Cross
5b52959c99 Use ctx.ModuleBuild for darwin ar
Test: builds
Change-Id: If90975c8545158012bc6201acadd136363c21260
2017-05-09 14:32:45 -07:00
Colin Cross
51d4ab2d5e Run gofmt
Test: builds
Change-Id: I2a873fc65cf414a14d6b58ef4ed6b9f5e57d75f7
2017-05-09 13:44:49 -07:00
Andreas Gampe
9707116867 Soong: Change Sanitize.Recover order
Add Sanitize.Order cflags after the general sanitizer options, so
it can override the global -fno-sanitize-recover=all.

Bug: 38128476
Test: m SANITIZE_HOST=address
Test: manual test
Change-Id: Ied5600507b66bd25d9d2a8bba428162ed4eb01e4
2017-05-08 23:37:51 +00:00
Colin Cross
8ff9ef4c30 Declare dependency on sanitizer runtime libraries
Moving the last users of a sanitizer runtime library to soong was
causing the runtime library to stop getting installed.  Declare
the dependency so make keeps installing it.

Test: builds
Change-Id: Ieeb9ad5c04ac8df0d1a74239da393dac5cab2b03
2017-05-08 15:57:05 -07:00
Treehugger Robot
6d9d964eb7 Merge changes I7270fef0,Ie8fba06c
* changes:
  Automatically add frameworks/rs includes to modules with .rs files
  androidmk: support cfi, diag, and misc_undefined properties
2017-05-08 19:54:40 +00:00
Colin Cross
2101f4aa06 Automatically add frameworks/rs includes to modules with .rs files
C++ sources generated from .rs files need includes in
frameworks/rs and frameworks/rs/cpp.  Add them automatically
instead of requiring modules to add them manually.

Test: builds
Change-Id: I7270fef0b36c1956475d6d83ab8aa2e3c362e688
2017-05-08 19:37:12 +00:00
Goran Jakovljevic
31e9947020 Fix mips32r2-fp-xburst build
Remove -Wa,-mmxu option because clang doesn't support it.

Test: successful build of mips32r2-fp-xburst arch variant
Change-Id: I0c3da5dee0bb3acb44e75991b4763b061acc86e1
2017-05-08 10:08:40 +02:00
Dan Willemsen
95f4dbb330 Ignore disabled modules when generating ndk sysroot
When linux_bionic is turned on, there are two host modules for the
preprocessed ndk headers, but only one is enabled. So exit early for the
disabled one.

Bug: 31559095
Test: Diff out/soong/build.ninja before/after, no change.
Test: Turn on linux_bionic, no longer see a panic.
Change-Id: I204a884a83ccf21c96088e97c19a0cffe029ec99
2017-05-05 23:26:01 -07:00
Colin Cross
03cc1b6d97 Use -isystem to export ndk stl includes
Hides:
In file included from frameworks/rs/cpu_ref/rsCpuExecutable.cpp:4:
In file included from prebuilts/ndk/current/sources/cxx-stl/llvm-libc++/include/fstream:169:
In file included from prebuilts/ndk/current/sources/cxx-stl/llvm-libc++/include/ostream:138:
In file included from prebuilts/ndk/current/sources/cxx-stl/llvm-libc++/include/ios:216:
In file included from prebuilts/ndk/current/sources/cxx-stl/llvm-libc++/include/__locale:21:
prebuilts/ndk/current/sources/android/support/include/locale.h:97:9: error: 'LC_GLOBAL_LOCALE' macro redefined [-Werror,-Wmacro-redefined]
       ^
out-soong/ndk/sysroot/usr/include/locale.h:115:9: note: previous definition is here
       ^

Test: builds
Change-Id: I766e8645db33e6e71f44a131aa0b1649d83e8c51
2017-05-05 18:22:30 -07:00
Colin Cross
2a252bef50 Support .rs and .fs files in cc_* module srcs lists
Translate .rs and .fs files to .cpp files using llvm-rs-cc.

Test: builds
Change-Id: I242cea0d09c9985730a512cec7705c3f1479f4ed
2017-05-05 18:22:30 -07:00
Josh Gao
06ec87082f Merge "Globally enable libcxx's thread safety annotations." 2017-05-04 23:47:32 +00:00
Colin Cross
37a2aeb95a Merge "Remove -isystem frameworks/av/include" 2017-05-04 04:09:43 +00:00
George Burgess IV
561a3fe4af soong: add __clang_analyzer__ to clang-tidy
We have code that acts slightly differently when the static analyzer is
running, so that it can produce more accurate diagnostics (e.g. less
false positives). It uses __clang_analyzer__ to detect the static
analyzer.

When the static analyzer is run via clang-tidy, __clang_analyzer__
doesn't get defined.

Bug: None
Test: WITH_TIDY=1 m. clang-tidy now acts as expected in code made for
the static analyzer

Change-Id: I460ff410640524633c0a60b71d34927d17e1ed98
2017-05-04 01:19:02 +00:00
Colin Cross
307d145ed5 Remove -isystem frameworks/av/include
Remove the last -isystem for global include directory (besides
bionic).

Bug: 31751828
Test: builds
Change-Id: I8f38332de8f0cffd5c56b9b5ebeacbaaf3a4faea
Merged-In: I8f38332de8f0cffd5c56b9b5ebeacbaaf3a4faea
(cherry picked from commit d13a457a45)
2017-05-03 23:56:47 +00:00
Colin Cross
bbc9f4d586 Export proto deps from reused libraries too
The deps have to be exported alongside the headers to make sure
the headers are in place when a module that depends on the shared
library builds.

Bug: 37555583
Test: use protos in a cc_library
Change-Id: I8f5b8d7937868458c1cf02b990a348aa395634da
2017-05-03 16:39:31 -07:00
Colin Cross
10d2231d44 Check reused source files in hasSrcExt
hasSrcExt is used to determine extra flags and dependencies when
generated files are used.  If the generated files are being handled
in a static library whose objects are reused in a shared library,
the flags and dependencies still need to apply.  Instead of clearing
the source files in the shared library, move them to an OriginalSrcs
property, and check that in hasSrcExt along with the Srcs property.

Also pass extra exported include directories from the static
library to the shared library.

Bug: 37555583
Test: use protos in a cc_library
Change-Id: I709779ec03b66b220b7bd58a1f6f0b9b5067d955
2017-05-03 12:28:27 -07:00
Colin Cross
5ff51b5caa Update protoc support for libplatformprotos
Allow properties to be overriden by arch variants.
Add include_dirs and local_include_dirs properties.
Pass -I . to fix:
   frameworks/base/proto/src/metrics_constants.proto: File does not
   reside within any path specified using --proto_path (or -I).  You
   must specify a --proto_path which encompasses this file.  Note that
   the proto_path must be an exact prefix of the .proto file names --
   protoc is too dumb to figure out when two paths (e.g. absolute and
   relative) are equivalent (it's harder than you think).

Test: m -j libplatformprotos
Change-Id: I3e02621ca25bfa7ca0a0e3b83377d70dd352668f
2017-05-02 14:08:29 -07:00
Colin Cross
f34d9d11d4 Merge "Add msa mips features" 2017-05-02 17:49:21 +00:00
Colin Cross
432c2860a0 Add msa mips features
References to an MSA architecture feature were added in
I3cadc29434dbd5fdb3aa780198414e90f9572ec5, but never added
to the build system.

Test: builds
Change-Id: I178813824a21475e013f7e8209d9473466ab821c
2017-05-01 16:43:41 -07:00
Treehugger Robot
f5464ba31a Merge changes Ic32cfb3e,I282be134
* changes:
  Add support for named versions in NDK map files.
  Generate stub libraries for unreleased API levels.
2017-04-30 21:31:24 +00:00
Dan Albert
3f6fb2db5f Add support for named versions in NDK map files.
Test: nose2
Test: make checkbuild
Bug: None
Change-Id: Ic32cfb3e0db767f695b617c787733a6ef75030aa
2017-04-28 16:11:13 -07:00
Dan Albert
49927d29d5 Generate stub libraries for unreleased API levels.
Generating released API levels and android-current is not sufficient
in a trunk-stable world. One branch will have the stable APIs and
possibly multiple unreleased API levels. We need to generate stubs
for each unreleased API level up to our current target.

I still need to add support for things like `# introduced=O` before
this is really done.

Whether or not we still need something like "current" that would map
to the absolute latest even it hasn't been assigned a code name yet
is uncertain.

Test: make ndk
Bug: None
Change-Id: I282be1347ab39c56fa887d4d71c03bb12c300dc5
2017-04-28 16:11:13 -07:00
Josh Gao
e0b933b74d Globally enable libcxx's thread safety annotations.
Add -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS to clang extra cppflags
to make libcxx always emit thread safety annotations. Note that this
won't generate additional warnings on projects that don't already use
-Wthread-safety.

Test: treehugger
Change-Id: I517a96571d77be119510c981bc2cbaddb41dee95
2017-04-27 18:13:21 -07:00
Colin Cross
ccf01e755e Prepend arch variant include directories
Arch variant include directories should override existing include
directories, add prepend_variant to the struct tags.

Test: m -j checkbuild
Change-Id: I4a758b42c19481f9496880d29dffea7836f613c5
2017-04-27 12:21:24 -07:00
Colin Cross
e90bfd157b Make generated_sources act like generated_headers
Make generated_sources dependencies honor the exported include
directories.

Test: m -j checkbuild
Change-Id: I6955cf5d985053071c2118f43fa1accdb4cc27ab
2017-04-27 12:21:24 -07:00
Colin Cross
dad8c954b2 Pass -I to yasm
external/libvpx needs -I flags to be propagated to yasm, but can't
handle all the other global flags (like -no-exceptions).  Add -I
arguments to YasmFlags as well as GlobalFlags.

Test: mega-device build of external/libvpx
Change-Id: I1607211c34b031fae8ffc1bd558b26019965a696
2017-04-27 12:21:24 -07:00
Colin Cross
0906f17f7e Add arm neon and mips dspr2 arch features
Current modules must use armv7_a_neon to specify source files that
compile only with neon.  If a future arch variant also supports neon,
all these modules will fall back to non-neon.  Support a neon arch
feature that modules can use instead.  Similarly, support dspr2 for
mips.

arm_device.go was also mixing armv7-a-neon with armv7_a_neon.  Use
armv7-a-neon consistently, and fix the - to _ when creating the
property structs.

Test: m -j checkbuild
Change-Id: I24d3764280ab3bcbb9a73c0934edc9b99fc7f6a0
2017-04-27 12:21:24 -07:00
Yi Kong
96247cef21 Merge "Fixups after llvm rebase" 2017-04-27 17:06:14 +00:00
Yi Kong
5cf3948310 Fixups after llvm rebase
Clang now generates a SHF_MERGE section that is rejected by GNU as on
Mips64. Change to use integrated assembler for Mips and Mips64.

Bug: 37423073
Test: external/clang/build.py
Change-Id: I8eae5cf370b930119eb6892db960f5f70777312f
2017-04-26 20:23:55 +00:00
Colin Cross
e28f4e2acf Support test_suites in cc_benchmark modules
Bug: 35394669
Test: m -j checkbuild
Change-Id: I0b521d866edb1706669b8058dc128d389b5582da
2017-04-24 18:10:29 -07:00
Vishwath Mohan
8f4fdd8f76 Disable CFI for ASAN targets. (Soong)
This CL disables CFI if both CFI and ASAN flags are enabled. This
allows ASAN to take precedence where needed, preventing build errors
that would otherwise arise.

Bug: 30227045
Test: SANITIZE_TARGET="address" m -j40
Change-Id: Id336bf2bf5498d4c3ea6492e36b366c76c06376e
2017-04-20 08:06:09 -07:00
Jayant Chowdhary
918b1d9105 Fix lots of warnings from abi dumping.
Also fix ndk libraries are always re-building. Fix this by having the
build system know the report's file path. This will need to be changed
once we go off "advisory mode" to keep the report if builds fail on abi
breakages.

Bug: 37451651

Bug: 37450828

Test: mm -j64 in bionic/libc produces abi-dumps without warning:
argument unused during compilation: '-Wa,--noexecstack'

Test: cd system/core/init; mma -j;  NINJA_ARGS="-d explain" mma -j; The
second mma does not show a dirty libc.so.

Change-Id: I824723fd9e76586831ee2278db0b61329b1475c0
2017-04-18 10:50:31 -07:00