After I92a838b07fe4116d5a4b8521fe1ce8d44e6e84e2 in build/,
LOCAL_STRIP_MODULE := keep_symbols will be honored for prebuilts, which
will trigger an error if it is set on a static library. Only set
LOCAL_STRIP_MODULE for binaries and shared libraries.
Change-Id: I4e17a78afa7c5810dbf9003166c14a1ff3a59c9e
With this change, sanitize: { address: false } disables
SANITIZE_TARGET=address for one target.
Also rename SafeStack to Safestack, because the former can not be
used as a target property.
Bug: 27729263
With this change, sanitize: { address: false } disables
SANITIZE_TARGET=address for one target.
Also rename SafeStack to Safestack, because the former can not be
used as a target property.
Bug: 27729263
Change-Id: I20f55c0e62b2fdd191ba66c0f661a039109bd78f
sanitize.begin() modifies the slice returned by Config.SanitizeHost()
and Config.SanitizeDevice(), return a copy so the global slice doesn't
get corrupted.
Bug: 29188876
Change-Id: I4c7a59b7e96529166519b23a1ebda39b8e060c58
Bug: http://b/29771478
Hand-coded assembly in various projects will fail to compile after Clang
switches to integrated assembler for Mips. Disable integrated-as for
Mips.
Test: Verified Mips builds on AOSP both with the old Clang prebuilts and
the new prebuilts (https://android-review.googlesource.com/#/c/243871/)
Change-Id: Idf441cb9c6c2afc8997d5ee56420885930087918
Modules defining sdk_version should only be allowed to link against the
ndk prebuilt libraries and other modules defining sdk_version. Implement
this, and expose the necessary information to Make so that it can be
implemented there as well.
Change-Id: I051498b595f8711883bc120f0394b8bfe2f65bce
This only translates the common case using $(LOCAL_PATH). If it doesn't
match here, Soong will throw an error with a suggested fix.
Change-Id: If64c8fca008a1a414fc12389e6b1bb40af0df899
Generalize the list splitting function used by include_dirs and
export_include_dirs to also support splitting sources.
Change-Id: I11b8f817fb32309511522074fe6b26052ae3d65f
Soong's multi-architecture building has grown complex, with the
combination of HostOrDevice+HostType+Arch necessary to determine how to
build a variant of a module, and three separate mutators to split each
into its variations.
Combine HostOrDevice+HostType into Os, which will be Linux, Darwin,
Windows, or Android. Store Os+Arch as a single Target.
Change-Id: I92f2e2dac53617d595a35cc285d2bd348baa0fbd
Soong's multi-architecture building has grown complex, with the
combination of HostOrDevice+HostType+Arch necessary to determine how to
build a variant of a module, and three separate mutators to split each
into its variations.
Combine HostOrDevice+HostType into Os, which will be Linux, Darwin,
Windows, or Android. Store Os+Arch as a single Target.
Change-Id: Iae677eff61a851b65a7192a47f2dc17c1abb4160
This lets modules declare logtags files, which will then be exported to
make using LOCAL_LOGTAGS_FILES. Make still generates event-log-tags and
the java code.
Bug: 28989759
Change-Id: Ie6be79d3ef8a17a74d42eba681a25a08b4c0e7ae
And install the tools into a more obvious location. soong_env is not
moved, since we need it to exist early, so that we can use it in
soong.bash in case there's a build failure.
Change-Id: I9bd1fa320d84d180b2cf3deb90782d380666f7a6
For the x86_arm target, which uses two 32-bit architectures, x86
libraries should be installed into ".../lib", and arm libraries should
be installed into ".../lib/arm".
This shouldn't be necessary for binaries, but non-native binaries aren't
supported in Make right now, so we can revisit this once it's necessary.
Change-Id: I4d883c85d3ef4945ff6149d9c4fc81af5023e12b
We don't actually need to do any changes to the path for the include
files, so we can just rely on the include_dir search to work.
It would still be useful to verify that the path isn't something bad,
like an absolute path, but we'll handle that by looking at the cflags in
another change.
Change-Id: I0bd609435969191c4ff91f2cd06eccfb75f5097c
Improve the androidmk makefile parser based on ideas from go/ast and
friends:
- Use type switching instead of the As* mess
- Don't store endPos for every node, compute it based on the last
known position in the node plus the length of the last token
- Store positions as only the offset into the file, and then unpack
them into Line/Column scanner.Position objects later
Change-Id: I87eb6661859951e6c2ea5a85db6229fa5561d615
Track the position in the input makefile and output blueprint file
separately. When parsing a new makefile line, increment the line in the
output position by the number of lines between the end of the last
makefile line and the beginning of this line. Any extra blank lines
will be discarded by the blueprint printer.
Change-Id: I85c6e006667b5733b15e03b56b91caf29fbc0ea0
Some checks for common errors with user-provided compiler and linker
flags:
* Using -I instead of include_dirs
* Using -l<lib> in ldflags instead of host_ldlibs (or shared_libs)
* Using -L in ldflags
* Splitting a multi-word flag into two flags
* Combining two flags into one list entry
* Using a path that could search outside the source or output trees
* Using a non-whitelisted library in host_ldlibs
Maybe some of the flag checks should happen during a static analysis
pass, but we don't have one right now, and this only adds ~1/2 second to
our 73 second Mega_device runs (recompile the changed code, run
soong_build, then report unknown target).
Change-Id: Icea7436260f1caa62c0cec29817a1cfea27b3e7c
LOCAL_*_x86_64 was sometimes recognized as a _64 suffix and other times
as the correct _x86_64 suffix, based on the random order of the
propertyPrefixes map. Replace the map with a slice so that the ordering
is consistent, and ensure 64 as after x86_64.
Change-Id: I1a4b4959f8ef4273ad4a1cdd0672ad557bf1891e
Host builds don't have a separate place to install asan modules, so only
create a single variant for them.
Change-Id: I81f7090debd7935db778f8600d8cbc86dd53b1cb
Create both sanitized and unsanitized variants inside make builds with
sanitizers enabled. Only export the sanitized version to make, and
always install the sanitized version in /data to match the make build.
Change-Id: I5a17bcbddc7a9d871c929c84d3c116228ef3258f