Commit Graph

2014 Commits

Author SHA1 Message Date
Dan Willemsen 0a6a7bc066 Native Coverage support in Soong (gcov) am: 581341d4f2
am: a57d0d2f0d

Change-Id: Ie372f0c32e498768ff797992ab415dc1ca83fe4c
2017-02-15 00:39:16 +00:00
Dan Willemsen a57d0d2f0d Native Coverage support in Soong (gcov)
am: 581341d4f2

Change-Id: Ie2d314780bd8a4476216c41285c35c11bdcbd3f1
2017-02-15 00:36:45 +00:00
Dan Willemsen 581341d4f2 Native Coverage support in Soong (gcov)
This is configured the same as make -- a global NATIVE_COVERAGE=true
flag to allow native coverage, then COVERAGE_PATHS=path1,path2,... to
turn it on for certain paths.

There are .gcnodir files exported to Make and saved in $OUT/coverage/...
files which are `ar` archives containing all of the compiler-produced
.gcno files for a particular executable / shared library.

Unlike the Make implementation, this only passes links the helper
library (automatically through --coverage) when one of the object files
or static libraries being used actually has coverage enabled.

Host support is currently disabled, since we set -nodefaultlibs, which
prevents libclang_rt.profile-*.a from being picked up automatically.

Bug: 32749731
Test: NATIVE_COVERAGE=true COVERAGE_PATHS=system/core/libcutils m -j libbacktrace libutils tombstoned
      $OUT/coverage/system/lib*/libcutils.gcnodir looks correct (self)
      $OUT/coverage/system/lib*/libbacktrace.gcnodir looks correct (static)
      $OUT/coverage/system/lib*/libutils.gcnodir doesn't exist (shared)
      $OUT/coverage/system/bin/tombstoned.gcnodir looks correct (executable)
Test: NATIVE_COVERAGE=true COVERAGE_PATHS=external/libcxxabi m -j libc++
      Confirm that $OUT/coverage/system/lib*/libc++.gcnodir looks correct (whole_static_libs)
Change-Id: I48aaa0ba8d76e50e9c2d1151421c0c6dc8ed79a9
2017-02-14 13:05:48 -08:00
Vishwath Mohan 58a0cb31be Merge "Disble CFI for ARM32 processes." am: e13374d3c1
am: 9639d3b72c

Change-Id: Ia4ffc01104f56f526c8a0e2ce73d7892640b2983
2017-02-13 20:57:59 +00:00
Vishwath Mohan 9639d3b72c Merge "Disble CFI for ARM32 processes."
am: e13374d3c1

Change-Id: Ib9939f42e6f7d3f932b2b29b10ba539dd4cf6239
2017-02-13 20:56:01 +00:00
Vishwath Mohan e13374d3c1 Merge "Disble CFI for ARM32 processes." 2017-02-13 20:49:20 +00:00
Colin Cross c5e523eb88 Merge "Add soong_javac_filter tool" am: 040ffff84b
am: e8c9190547

Change-Id: I038f1c7d1376e0f7458d864bb1deca382d8d11c8
2017-02-10 08:58:30 +00:00
Colin Cross e8c9190547 Merge "Add soong_javac_filter tool"
am: 040ffff84b

Change-Id: I17af3f306e9b5df3e604384a9ed8e2312fb85f69
2017-02-10 08:56:00 +00:00
Treehugger Robot 040ffff84b Merge "Add soong_javac_filter tool" 2017-02-10 08:06:06 +00:00
Colin Cross 521534f3d8 Add soong_javac_filter tool
The soong_javac_filter tool will take the output of the javac tool
on stdin and produce a colorized version similar to what clang
produces on stdout.  It also strips the useless "warning there are
warnings" messages:
   Note: Some input files use or override a deprecated API.
   Note: Recompile with -Xlint:deprecation for details.
   Note: Some input files use unchecked or unsafe operations.
   Note: Recompile with -Xlint:unchecked for details.
Modules that want the warnings can pass the appropriate -Xlint
options.

Test: javac_filter_test
Change-Id: Ic8d337d95ae6c48146771f2982fd1316cb7d82be
2017-02-09 17:50:21 -08:00
Jack He 4e87a35798 Removed Bluetooth build variables from the soong build parser am: ee8e7a7a2c
am: 405b958886

Change-Id: Ia1e6b26bf7d328fbd1956452a3aa500fb58b989d
2017-02-10 01:01:50 +00:00
Jack He 405b958886 Removed Bluetooth build variables from the soong build parser
am: ee8e7a7a2c

Change-Id: Iad836fd6e45f78b0af4fc2e28743db0fdd2e6390
2017-02-10 00:58:21 +00:00
Jack He ee8e7a7a2c Removed Bluetooth build variables from the soong build parser
* Removed BLUETOOTH_HCI_USE_MCT
* Removed BOARD_BLUETOOTH_BDROID_HCILP_INCLUDED

Bug: 34951912, 35203653
Test: Code compilation, no visible user effects
Change-Id: I89af075a334f2ec7b2a3046a4aaa5bcc19d454e0
2017-02-09 14:36:09 -08:00
Vishwath Mohan 6d67e6e68e Disble CFI for ARM32 processes.
This CL disables CFI for 32-bit ARM processes, which is broken due to
a compiler error in the most recent version of clang.

Bug: 35157333
Test: ENABLE_CFI=true m -j40 does not enable CFI for 32-bit processes
Change-Id: I52ccf60d91ff1a2af4cf024376b7d70f87040674
2017-02-08 19:46:27 -08:00
Dan Willemsen fdf3f43c7d Merge "Ship the build log and trace on the build servers" am: 62944779e2
am: 62b3ed5b61

Change-Id: If4d564b9809842aed3a77f28b2af900b152b92e4
2017-02-09 02:37:22 +00:00
Dan Willemsen 62b3ed5b61 Merge "Ship the build log and trace on the build servers"
am: 62944779e2

Change-Id: I90a5a33d7ddbdf93c6fa875a69738154998f7657
2017-02-09 02:35:55 +00:00
Dan Willemsen 62944779e2 Merge "Ship the build log and trace on the build servers" 2017-02-09 02:10:07 +00:00
Jayant Chowdhary 8c54c2f20a Merge "Add RenderScript toolchain information to soong." am: 89a0d797d7
am: 3fa9724d7e

Change-Id: I3ebb02d564569fdf01c8cb76b7ed58c0250f9b38
2017-02-08 18:25:10 +00:00
Jayant Chowdhary 3fa9724d7e Merge "Add RenderScript toolchain information to soong."
am: 89a0d797d7

Change-Id: Idc70ad42629347b7573de5198b9840c78e9d4cf0
2017-02-08 17:59:41 +00:00
Jayant Chowdhary 89a0d797d7 Merge "Add RenderScript toolchain information to soong." 2017-02-08 17:45:38 +00:00
Dan Willemsen 8a073a8b7b Ship the build log and trace on the build servers
Test: m -j; m -j dist
Change-Id: I4718e7a0cda6719bbab4243038ea2666c212cf19
2017-02-07 16:51:11 -08:00
Fabien Sanglard c268f05010 Merge "Fix CMakeList generator CFlag bug" am: 1d83bc7866
am: 1d2221ed26

Change-Id: I383796cf200dde13d9767e6b792c46d3a91326f9
2017-02-07 23:46:49 +00:00
Fabien Sanglard 1d2221ed26 Merge "Fix CMakeList generator CFlag bug"
am: 1d83bc7866

Change-Id: I68e9011ae41464d26fa8d228df64032b6f47236a
2017-02-07 23:42:19 +00:00
Fabien Sanglard 1d83bc7866 Merge "Fix CMakeList generator CFlag bug" 2017-02-07 23:36:01 +00:00
Fabien Sanglard 28d0fb1407 Merge "Add support for CMakefile generation" am: 46d17c1c99
am: 38165b2b67

Change-Id: I7460c021303e86fd17486c4b8060f65eedecc9d5
2017-02-07 23:00:46 +00:00
Fabien Sanglard 38165b2b67 Merge "Add support for CMakefile generation"
am: 46d17c1c99

Change-Id: I894a6705e0288d5b55644a3bbe33a89bd13e238b
2017-02-07 22:58:46 +00:00
Fabien Sanglard 46d17c1c99 Merge "Add support for CMakefile generation" 2017-02-07 22:54:17 +00:00
Dan Willemsen 73d11a3256 Merge "ui: Fix soong-executed ninja wrapping" am: 24331da9c4
am: d27353f733

Change-Id: I3a3f658216c17d70b8fb20642c2e20e348a96e2d
2017-02-07 22:30:14 +00:00
Dan Willemsen d27353f733 Merge "ui: Fix soong-executed ninja wrapping"
am: 24331da9c4

Change-Id: I7530908e656331af627d047f0557e660b6918459
2017-02-07 22:27:13 +00:00
Treehugger Robot 24331da9c4 Merge "ui: Fix soong-executed ninja wrapping" 2017-02-07 22:23:20 +00:00
Jayant Chowdhary e622d20659 Add RenderScript toolchain information to soong.
Test: make -j64 from top of tree.

Change-Id: I9e853e64924f26719c0cd7ae8de4958fe97ca04e
2017-02-07 12:15:45 -08:00
Fabien Sanglard 5cb35194c2 Fix CMakeList generator CFlag bug
Properly process CFlags featuring quotes and double quotes.

Test: on libui and libgui
Change-Id: I8581cef9ccc595b6e05d77bee7bea82f2efd219b
2017-02-07 09:43:02 -08:00
Fabien Sanglard d61f1f4559 Add support for CMakefile generation
Test: Manually generated CMakeLists.txt for gui/ui/aapt2.

Change-Id: I7dedc300c1e50b8e39bc58091b650c0bbe2c62da
2017-02-07 09:43:02 -08:00
Nan Zhang b4eadada4c Added phony module type for soong. am: 6d34b308ff
am: c1b767c0d0

Change-Id: I3a74470683d74e06780a241d54340b7e4e450c41
2017-02-07 06:31:17 +00:00
Nan Zhang c1b767c0d0 Added phony module type for soong.
am: 6d34b308ff

Change-Id: Ie94dcb5347c7f09c68a771391c644e984c8809e4
2017-02-07 06:28:47 +00:00
Nan Zhang 6d34b308ff Added phony module type for soong.
The "required" field within "phony" module in .bp file has to be
non-empty. And "phony" module doesn't contain any "src" files.
Bug: b/32981153
Test: make -j out/soong/build.ninja

Change-Id: Iaa2009467c44702572b97ca9cbd02c1d368c8d83
2017-02-06 22:23:19 -08:00
Colin Cross 24ff243f57 Merge "Fix envDeps initialization and locking" am: ae853ae0c0
am: d84437067c

Change-Id: I5facd3f53ab7cd23e8bb3ca731062c7e340ca72c
2017-02-07 05:53:46 +00:00
Colin Cross d84437067c Merge "Fix envDeps initialization and locking"
am: ae853ae0c0

Change-Id: Ia837d4fe2e52c472ca2e64eab6d5dd410849e503
2017-02-07 05:50:45 +00:00
Treehugger Robot ae853ae0c0 Merge "Fix envDeps initialization and locking" 2017-02-07 05:47:26 +00:00
Dan Willemsen 223e3ae102 ui: Fix soong-executed ninja wrapping
For proper ninja smart terminal support, we need to pass stdin to
./soong. Otherwise it starts a new line if the terminal isn't wide
enough.

Test: `rm -rf out/soong/.bootstrap; m -j` in narrow terminal
Change-Id: I643a526001adc2323a420a03fa1df282554c7886
2017-02-06 20:59:11 -08:00
Dan Willemsen fbbb453a58 Add build tracing am: d9f6fa28d6
am: eced4df1ee

Change-Id: I879105d25890a9ab248a275959f2fbe4f58535c8
2017-02-07 02:26:12 +00:00
Dan Willemsen 56fd99b5fa Add multiproduct_kati am: c2af0bedc1
am: 5f1192a4ae

Change-Id: Ia9a5a254997e9699b3e78a3b16ebdc80d252cfaa
2017-02-07 02:26:10 +00:00
Dan Willemsen da4fca6898 Add microfactory to bootstrap a go program with minimal overhead am: 0043c0e767
am: 0c0d0bad74

Change-Id: I6eede41a336adb0a27caf3261533eca29fc0b686
2017-02-07 02:26:08 +00:00
Dan Willemsen 42e7471726 Add a Go replacement for our top-level Make wrapper am: 1e70446251
am: 42a007560c

Change-Id: Ia8c859a02a91a402a9ef6de1bd267f849d8c7000
2017-02-07 02:26:07 +00:00
Dan Willemsen eced4df1ee Add build tracing
am: d9f6fa28d6

Change-Id: I4f84d823dac9bcf7a86cd16a793fb92803cf2958
2017-02-07 02:22:10 +00:00
Dan Willemsen 5f1192a4ae Add multiproduct_kati
am: c2af0bedc1

Change-Id: Ic89e4380edb4562bf3e51850ab012274c86e0b26
2017-02-07 02:22:08 +00:00
Dan Willemsen 0c0d0bad74 Add microfactory to bootstrap a go program with minimal overhead
am: 0043c0e767

Change-Id: Idf596683d022b1e24c02e4eba8fd30d1be3cecbd
2017-02-07 02:22:07 +00:00
Dan Willemsen 42a007560c Add a Go replacement for our top-level Make wrapper
am: 1e70446251

Change-Id: I8544ef2abba891947e315b0966491bbae4f1ab38
2017-02-07 02:22:06 +00:00
Colin Cross c0d58b4a0f Fix envDeps initialization and locking
If Config.GetEnv was called when envDeps was uninitialized (for
example in a test) it would panic, which if recovered (for example in
a test) would cause it to continue without unlocking the mutex, and
could later deadlock.  Fix the initialization by initializing in
GetEnv if necessary, and use defer to avoid holding the mutex after
a panic.

Test: soong tests
Change-Id: I453522faaf47ff6fbc4702345cfe177100bdc522
2017-02-06 15:45:16 -08:00
Dan Willemsen d9f6fa28d6 Add build tracing
This creates a rotating build.trace.gz in the out directory that can be
loaded with chrome://tracing. It'll include start and end timings for
make/soong/kati/ninja, and it will import and time-correct the ninja log
files.

Test: m -j; load out/build.trace.gz in chrome://tracing
Test: multiproduct_kati -keep; load out/multiproduct*/build.trace.gz
Change-Id: Ic060fa9515eb88d95dbe16712479dae9dffcf626
2017-02-06 14:05:07 -08:00