sign_target_files_apks: rewrite build.prop correctly in eng builds

In eng builds, ro.display.id has many space separated items and was
resulting in an error when trying to rewrite it as 'value' gets
turned into a list and never converted back to a string.

Change-Id: I6c8633ed2eb52c56a4097992a32d53d80df4f844
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>

Conflicts:
	tools/releasetools/sign_target_files_apks
Enable NX protections

Add -Wa,--noexecstack and -Wl,-z,noexecstack as default
flags when compiling host-side applications.  This enables
NX protections, which prevent code from executing on the
stack or heap.  NX protections make exploiting memory
corruption issues more challenging and is an important
security feature.

Change-Id: Iae580abe887e01f9029ec2a4e0fc0aae496724a4
Fix regex for finding symbol data.

The new output of debuggerd removed a space between the #00 and the rest
of the line. The regex is very restrictive, so fixing it to handle the new
output.

Change-Id: I5259ae1e56a351608b330dfd858a2021e6d89358
Add DEXPREOPT support for ART

Change-Id: I24d0d7b2a23a769f5d69bd4dc14be22e1475b759

Conflicts:
	core/dex_preopt.mk
Add an explicit definition of __ANDROID__=1

Once the aarch64 toolchain is refreshed this will be removed.
Also removed some CFLAG duplications.

Change-Id: I42fd86931263af82042ea696196fb25e948fe9cb

Conflicts:
	core/combo/TARGET_linux-aarch64.mk
enable PIE for dynamically linked Linux host executables

Compile all host programs for Android with -fPIE and -pie. This
enables PIE (Position Independent Executables), which helps
protect these applications from exploitation due to memory
management bugs.

Note: PIE *static* executables are not supported at this time. darwin
and windows are also not supported.

Change-Id: I67c1be297711ea23064c349f97ebd02eef3eff09
Allow clang to build host binaries.

Change-Id: I7e4f9dc6f69a97cfefdfa2ed55c5d7b8ad496da7

Conflicts:
	core/llvm_config.mk
Create the dest dir before copying over files.

Change-Id: I8ad79704558d7a10099e64fc1d032c8ddd3330b9
Simplify the calculation of LOCAL_UNSTRIPPED_PATH

Also this fixes the LOCAL_UNSTRIPPED_PATH if the module is installed to
the vendor dir via LOCAL_PROPRIETARY_MODULE.

Bug: 11289169
Change-Id: Ib07e5761411210963076487fe0e148c259e1e082
envsetup.sh: cd to toplevel in get_build_var

dumpvar doesn't work right if we're not called from the toplevel;
due to the way the build system works internally, -C does not
suffice. This was already done in get_abs_build_var.

Redundant -C calls removed since we're at the toplevel already.

Change-Id: Iaaa48982547d099186922cc3ddc417a82c85e9a5
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Remove a non-existent directory from the include path.

Brings aarch64 in line with the other architectures.

Change-Id: Iba3fd33e34e3b5bc071f55cfe09de9e55a023cf7
add BUILD_NATIVE_BENCHMARK

Similar to BUILD_NATIVE_TEST, but links against libbenchmark
instead of libgtest.

Change-Id: I97d44db4807a79efa9bca56c108082ac45c943b8
Allow clang to build host binaries.

Change-Id: I7e4f9dc6f69a97cfefdfa2ed55c5d7b8ad496da7

Conflicts:
	core/binary.mk
	core/executable.mk
	core/llvm_config.mk
	core/shared_library.mk
Remove LOCAL_SRC_FILES as precondition of enabling dexpreopt

Because a library or app can be built from mere static libraries,
or generated java files. For example, framework is built from only
static library framework-base but without LOCAL_SRC_FILES.
Also added framework2 to PRODUCT_PACKAGES.
Previously framework2.jar was installed by dependency explicitly
established in frameworks/base/Android.mk. That's not enough for the
.odex file.
This fixed the boot failure reported in bug 12382916.

Bug: 12382916
Change-Id: If1a70261ab2bb7fef77cf7b7b995bdc029be0fc3

Conflicts:
	core/dex_preopt_odex_install.mk