Commit Graph

1005 Commits

Author SHA1 Message Date
Dan Willemsen b3454ab24d Add export_generated_headers
Similar to export_shared_library_headers, this will export headers
imported from a gensrcs or genrule.

Bug: 31742855
Test: Add export_generated_headers, ensure it's in out/soong/Android-*.mk
Change-Id: Ieadefd007ece8b249f011a258a9c5b27f5d3f594
2016-09-28 18:31:04 -07:00
Dan Willemsen 9c8681f4f9 Support multiple outputs for genrule
The underlying code to expose outputs to other modules has suppported
this already for gensrcs (which runs the command multiple times to
create multiple outputs). This allows a genrule to run a command once,
and output multiple files.

Bug: 31742855
Test: Add multi-output genrule; Inspect build.ninja
Change-Id: I72054cc39c0d0e3e44feebba72005e5af1a1709a
2016-09-28 18:31:04 -07:00
Dan Willemsen 3f4539b035 Parse genrule's cmd property
Instead of just passing this to ninja, use os.Expand to parse the
variable substitutions. While we're here, define a new "genDir" variable
that is the root of this module's generated directory.

Bug: 31742855
Test: Ensure invalid variables cause error
Test: Inspect commands in build.ninja
Change-Id: Iff6d0499ab57367669e73df52ab7c647358da13b
2016-09-28 17:38:57 -07:00
Dan Willemsen 4aa75ca244 Expose HostToolPath on the cc module to fix genrule.tool
Bug: 31742855
Test: Use `tool` in a genrule, ensure it runs properly.
Change-Id: Ib9ff35125edd66cdba8ede4f28aa6b753de0689b
2016-09-28 17:38:02 -07:00
Colin Cross 024c32e987 Update readme
Use go/Android.bp link, add a little more on androidmk conversions.

Test: none
Change-Id: Ibe2be4ad54b6d9a8954d7efbb40d04dc54c8dbf2
2016-09-26 15:44:29 -07:00
Colin Cross 0a249ce498 Merge "Revert "Revert "Move system/core/include from -isystem to -I""" 2016-09-26 01:07:09 +00:00
Colin Cross 81b4ca6817 Revert "Revert "Move system/core/include from -isystem to -I""
This reverts commit 763a26cef5.

Bug: 31492149
Change-Id: I322f5e31da306951ac13131f5113730e945dedd5
2016-09-23 19:20:54 +00:00
Colin Cross d85c0740e1 Merge "Revert "Move system/core/include from -isystem to -I"" 2016-09-23 15:50:55 +00:00
Colin Cross 763a26cef5 Revert "Move system/core/include from -isystem to -I"
This reverts commit e4bba1e835.

Bug: 31492149
Change-Id: If46d240274f1a59ac36579157c575b54f2ffd58f
2016-09-23 15:50:14 +00:00
Colin Cross fe040c48e6 Merge "Move system/core/include from -isystem to -I" 2016-09-23 14:47:52 +00:00
Colin Cross e4bba1e835 Move system/core/include from -isystem to -I
-isystem hides all warnings.  The warnings in system/core/include have
been cleaned up, so move it from -isystem to -I.

Test: lunch aosp_angler-eng && m -j
Test: lunch aosp_bullhead-eng && m -j
Test: lunch aosp_flounder-eng && m -j
Test: lunch aosp_fugu-eng && m -j
Test: lunch aosp_shamu-eng && m -j
Bug: 31492149
Change-Id: I29967428c2c45f753dabe21b65913fb08fdcabc4
2016-09-22 15:29:50 -07:00
Dan Willemsen fcebcd5c37 Add `debuggable` product variable with cflags
Allows changing cflags based on the build variant being `eng` or
`userdebug`. This is used by some modules to turn on asserts for these
builds, and used by adb to allow root on non-user builds.

Test: Use this flag in an Android.bp, check the ninja file.
Change-Id: I27a5081378e94920482b4a742d65c46065047573
2016-09-22 15:22:15 -07:00
Kenny Root b912349c03 Add pthread to Windows allowed ldlibs
The MinGW update now includes pthread.

Test: update BoringSSL to use pthreads on Windows and compile
Change-Id: Id85d9fd3e03a310e07e0093ca80cefaf10fe8930
2016-09-20 14:49:33 -07:00
Colin Cross 9b1d13db73 Fix checkbuild for modules with last variant disabled
The soong checkbuild target is created by the last varaint of each
module.  Don't return early if the variant is disabled, which would
prevent creating the checkbuild target.

Test: m -j checkbuild
Change-Id: Ib260bae7fb4be7255f5c1b34dfbd50225f308005
2016-09-19 16:50:35 -07:00
Colin Cross b0f28957ae Support mixed ASAN and non-ASAN host builds
Host builds may build binaries that must have ASAN disabled.  Convert
host ASAN to use variants.  Since there is only one install location for
shared libraries, don't install the non-ASAN variant at all for now.

Test: mmma -j art SANITIZE_HOST=address
Change-Id: Iacefecac93df44823316624b4c540c24f643fb80
2016-09-19 16:50:35 -07:00
Colin Cross f09c8437f9 Make ndk.timestamp optional
Singleton rules need to manually specify Optional: true, or they will be
built for any ninja invocation that has no targets specified.

Test: m -j on tradefed build
Change-Id: Ifc060b25bc32e664c48731eb8a0d963b73574591
2016-09-16 12:53:59 -07:00
Treehugger Robot 702b561ee5 Merge changes from topics 'ndk-libc++-libdl', 'ndk-compiler-rt_extras'
* changes:
  Always link libdl with libc++ for the NDK.
  Use libcompiler-rt_extras with NDK builds.
2016-09-16 06:40:32 +00:00
Colin Cross 0e19618906 Merge "Improve test support for art tests" 2016-09-15 21:47:07 +00:00
Colin Cross 1cfd89aca3 Split CommonGlobalIncludes for system includes
Split CommonGlobalSystemIncludes out of CommonGlobalIncludes in
preparation for moving global includes from -isystem to -I.

Bug: 31492149
Change-Id: Ib935ea038cdbf9515dc2ab68d7fff924c370906a
2016-09-15 09:33:57 -07:00
Treehugger Robot 98e7e66cb6 Merge "Sort NDK_MIGRATED_LIBS in make_vars" 2016-09-15 05:18:04 +00:00
Dan Willemsen 394e9dc876 Add Relocation Packer support
This only applies to shared libraries on the device, and like stripping,
we'll let make do the actual packing if we're embedded in Make.

Change-Id: I1585d74ecfc41e18dcbb5ffb70005adf007cc941
2016-09-15 03:39:05 +00:00
Dan Willemsen 65905f8f62 Sort NDK_MIGRATED_LIBS in make_vars
Otherwise this was changing every time, and causing Kati to find
make_vars-*.mk different every time.

Test: with https://android-review.googlesource.com/274439
Change-Id: I731b3b2fd434314bf6e8b7c2ec5310b9623512a5
2016-09-14 20:29:05 -07:00
Dan Albert 3895d5b246 Always link libdl with libc++ for the NDK.
Soong change to match
https://android-review.googlesource.com/#/c/274447/.

Test: make checkbuild tests
Bug: None
Change-Id: I25bfed6d99b97c406f40892ae4abc38f4e656e81
2016-09-14 16:50:48 -07:00
Dan Albert 83705c88d7 Use libcompiler-rt_extras with NDK builds.
Soong change to match
https://android-review.googlesource.com/#/c/274448/.

Test: make checkbuild tests
Bug: None
Change-Id: Ibc3732ce5b4a43a9151dca39a53572d248f86c45
2016-09-14 16:47:18 -07:00
Dan Willemsen 391cdde1da Remove extra LOCAL_CXX_STL := none
This was always being set in cc.Module.AndroidMk(), so we don't need to
declare it again. This was causing problems for cc_binary modules that
were using the NDK, since LOCAL_NDK_STL_VARIANT must be used instead.

Test: Manually put ifneq ($(LOCAL_CXX_STL),none); $(error) checks
Change-Id: If937b7b5ad30936e08c99f62ccf83b78d196dbfe
2016-09-14 16:12:29 -07:00
Colin Cross 600c9dfe7b Improve test support for art tests
Make gtest property a *bool so it can be overriden by defaults.
Make per-test install directory come after relative_install_path
property.

Change-Id: I2da38965c99c40415a39bf97b706b2d40bb082d6
2016-09-14 13:24:19 -07:00
Colin Cross d784cff36a Merge "Replace PropertyCustomizer with hooks" 2016-09-14 16:50:18 +00:00
Treehugger Robot dded092368 Merge changes I8dd0f858,I15c17d0d
* changes:
  Add entries in root.bp for hidl/hwbinder
  Fix lex/yacc path
2016-09-14 02:01:52 +00:00
Colin Cross 178a509855 Replace PropertyCustomizer with hooks
Replace PropertyCustomizer with a more extensible hooks mechanism.
Instead of passing an object that satisifies an interface, pass a
function pointer that takes a context interface as an argument.  Callers
can use lambdas to capture any other necessary parameters like property
structs.

Also add two new hooks, arch hooks that occur after splitting modules
into arch variants, and install hooks that occur each time a file is
installed to the output directory.

Change-Id: I3a3e34aa97f1a92d3a31e5004b4b1ba68869d242
2016-09-13 17:37:32 -07:00
Treehugger Robot 706ce019e2 Merge "Fix windows builds" 2016-09-14 00:02:17 +00:00
Dan Willemsen 2c173ee03a Add entries in root.bp for hidl/hwbinder
Change-Id: I8dd0f8585dc8214c43983112bd6b8e109ac030af
2016-09-13 16:58:03 -07:00
Dan Willemsen 76ef5abd9a Fix lex/yacc path
Test: It no longer panics when there is a .yy/.ll file to build
Change-Id: I15c17d0df9449eabbede5d8afef955156baaba3d
2016-09-13 16:57:15 -07:00
Colin Cross 628a88c951 Fix windows builds
Windows builds have the first arch set to x86 and the second set to
x86_64, and always prefers 32-bit.  Specify the 32-bit preference
manually, instead of relying on the architecture order for now.

Change-Id: I1900ec095e7773f68c0db293bfc48bd0815661b2
2016-09-13 15:15:51 -07:00
Colin Cross b4ce0ecad6 Remove cc.Customizer
Remove cc.Customizer, its functionality has been replaced by
android.PropertyCustomizer, and it is not used.

Change-Id: Ice32d554015b0800707bc042b187984f73df7979
2016-09-13 13:44:56 -07:00
Colin Cross 9fdbbb3c54 Merge "Fix binaries and symlinks for prefer32" 2016-09-13 19:43:00 +00:00
Colin Cross 8b74d17220 Fix binaries and symlinks for prefer32
Track the primary architecture selected for each class based on the
module's multilib setting and the global config.  Fixes building
binaries with multlib set to first and DevicePrefer32BitExecutables set,
and fixes symlinks to binaries with multilib set to prefer32.

Bug: 31452121
Test: mmma -j art HOST_PREFER_32_BIT=true
Change-Id: I75094df42f3273f6d613e4058eaa565957174c28
2016-09-13 10:01:45 -07:00
Dan Willemsen d2e4b1a7cd Add system/media/* to root.bp
Change-Id: I100612403e26c4373f0b047c622f6ffddc67be55
2016-09-12 16:23:19 -07:00
Dan Willemsen b1957a5021 Dynamically generate arch struct
Now we don't need to hardcode the list of OS/Arch/Variant/Features in
android/arch.go.

Change-Id: I0f9cc35d55baa31f036825fdf5b9dd30d076e56e
2016-09-08 13:50:36 -07:00
Colin Cross 42d1ba2d92 Add -z to valid multi-word linker flags
Art uses -z muldefs, allow it to be passed as a property.

Change-Id: Ief3b252d4b84762dbd49766ecdbebe00b333f523
2016-09-07 13:15:25 -07:00
Colin Cross 522e373a22 Allow CustomizeProperties to override linker
Allow CustomizeProperties to override the dynamic linker by setting a
DynamicLinker property.  Needed by art, which overrides the linker for
device-on-host testing.

Change-Id: Ia4cb5a85b9a995d8138da33eb13543addf3b38cc
2016-09-07 13:14:06 -07:00
Colin Cross 1e8ed27de3 Merge "Extend multilib" 2016-09-07 00:26:02 +00:00
Treehugger Robot ca06cc331d Merge "[mips] Disable compact branch generation" 2016-09-06 22:30:59 +00:00
Nikola Veljkovic 3d6a38d601 [mips] Disable compact branch generation
Bug: http://b/31317834

Clang generates invalid beqc compact branch instruction. Disable
compact branch generation until clang is updated to include r278824,
which fixes the issue.

Error:
/tmp/backtrace_test-6a4a4f.s:6603: Error: invalid operands
`beqc $zero,$1,$BB31_ 6' clang++.real: error: assembler command
failed with exit code 1 (use -v to see in vocation)

Test for mips and mips64: cd system/core/libbacktrace && mma
Change-Id: I0b0f189e126621dbadb317ba711993e45004348d
2016-09-06 21:38:24 +00:00
Colin Cross 69617d3b7d Extend multilib
Allow multilib to be set to "prefer32", which will compile as 32-bit if
available, otherwise as 64-bit.

Add target.device.compile_multilib and target.host.compile_multilib.  If
set, they override the top-level compile_multlib property.

Change-Id: If658a035b5f441547bc74526feb1d34f773776ff
2016-09-06 13:26:37 -07:00
Colin Cross 20780c80a0 Remove HostPrefer32BitExecutables
HOST_PREFER_32_BIT was used during the switch to 64-bit host tools to
keep the SDK building as 32-bit, but is never set any more.

Change-Id: I7c2db269d3f7fa1f4e0c022cbced789755a62d81
2016-09-02 14:06:30 -07:00
Treehugger Robot 72301d978a Merge "Add InstallerProperties to cc_defaults" 2016-09-01 21:45:56 +00:00
Josh Gao 1c0ee4ab6e Merge "Allow darwin targets to use -framework CoreFoundation." 2016-09-01 21:19:07 +00:00
Dan Willemsen 7424d61c95 Add InstallerProperties to cc_defaults
Test: Add relative_install_path to a cc_defaults
Change-Id: Id10f78afb3b82117b944b9b53fe7020fb672925b
2016-09-01 13:45:39 -07:00
Josh Gao 92da2b5e99 Allow darwin targets to use -framework CoreFoundation.
Bug: http://b/31245118
Change-Id: I5aa6162715b643af4a3073e6e403a6e1729f7c15
2016-09-01 11:53:42 -07:00
Dan Willemsen 28bda51400 Support shared cc_test_library
So that shared libraries can be installed under /data/nativetest[64] (or
the host equivalent)

Change-Id: I41b2860365985f36828bd4bf9b6dc651b210822c
2016-08-31 16:32:55 -07:00