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
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
Remove cc.Customizer, its functionality has been replaced by
android.PropertyCustomizer, and it is not used.
Change-Id: Ice32d554015b0800707bc042b187984f73df7979
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
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
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
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
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