Enable daemons exposing an interface over DBus to easily
build client libraries. Now daemons can write rules like:
include $(CLEAR_VARS)
LOCAL_MODULE := libdbus-binding-example-client
LOCAL_DBUS_PROXY_PREFIX := dbus-example-example
LOCAL_SRC_FILES := \
dbus_bindings/org.chromium.Example.Manager.dbus.xml \
dbus_bindings/dbus-service-config.json
include $(BUILD_SHARED_LIBRARY)
to expose a client library.
While here, add support for generating independent adaptor header
files on a per interface basis.
Bug: 22608897
Change-Id: I011f9afc234811c31e445898321c2731c482fa77
Apparently -w will disable all warnings on GCC regardless of ordering
(clang will still respect ordering so warnings that are enabled after
-w are still respected). This is insane. Strip -w from the cflags.
Anyone that wants this flag should be turning off the specific
warnings (or just fix them), not disabling all warnings.
Change-Id: I2ba065637dfdc192921da4d9adbdc63b728c166f
This also drops the NDK default back to C++98 (or C++11 for code using
libc++). The platform NDK build should match the normal NDK build.
Bug: http://b/23043421
Change-Id: I3a336767ce271e84f4dfdebdadb3a98e5689def9
Its presence requires #include directives to contain the build target
name, which is problematic because these directives can live in headers
that are shared by multiple build targets. Furthermore, having
LOCAL_MODULE in the generated header path is redundant because the
target directory is already private to the current build target (e.g.
.../<target_name>_intermediates/...).
Bug: 22608897
Change-Id: I059f71a1231e80f89c99441794a4491f2685036f
With this patch, we can now write Android makefiles like:
include $(CLEAR_VARS)
LOCAL_MODULE := dbus-binding-example
LOCAL_SRC_FILES := main.cpp \
dbus-service-config.json \
org.example.Daemon.Command.dbus.xml \
org.example.Daemon.Manager.dbus.xml
include $(BUILD_EXECUTABLE)
This will cause header files defining native DBus interfaces
to be generated. These can be included from main.cpp to
easily expose object oriented interface over DBus.
Bug: 22608897
Change-Id: Ic4304ac8de77de74d6955ed17789e5477be9a53e
- Don't overwrite [TARGET|HOST]_[CC|CXX] with the [CC|CXX]_WRAPPER prefix,
so that we can disable the wrapper per module.
- Disable ccache on a module when FDO is enabled.
Bug: 22612634
Change-Id: Ibc04a4742d589955066c7eceb43a0da9a2b893bc
(cherry-pick from commit c671a7cf5c)
Another change in bionic/linker adds linker_asan/linker_asan64 that
know where to find ASan shared libraries.
Also, include linker_asan to the required packages list when building
for ASan.
Change-Id: I8ebe7c0091bbeb0c135708a891d33d9844373d37
Clang is really aggressive at optimizing a handful of cases (read:
clang will ruin your day some if you write bad code). Fortunately, it
also emits a warning when it's about to do this.
To prevent anyone from suffering from these optimizations, make these
warnings errors and make them impossible to disable.
Change-Id: I5e10bb0fc2ca23190017da716b3b84635577a0bd
Clang will sometimes generate this call (dex2oat with ubsan is one
known case), and it doesn't exist in libgcc.
Change-Id: I2eb68e2a326eb0407dca03b5870077eeebca1c0a
"LOCAL_FDO_SUPPORT := always" enables FDO without user specifying
"BUILD_FDO_OPTIMIZE := true", i.e. it turns on FDO for a
module in any build configuration.
Change-Id: I05d8db2edb2b3f5db073fa14d5bf1083a04571c0
(cherry picked from commit 45d0143ab1)
Previously when a file in LOCAL_SRC_FILES starts with "../", the object
file may escape out of the module's intermediate directory, because we
insert the source file's path (but not with LOCAL_PATH) to the object
file's path. Even worse when two object files escape to the same destination
and cause conflict.
This change fixes the issue by removing the "../" inside the object
files' paths. To do that, we have to set up the compilation rules for
those files one by one, instead of using the one-for-all static
pattern rules.
Bug: 19641115
Change-Id: I19f3c48ece3244fa14acb2caa609deea710840d3
Note that this doesn't play nicely with acov out of the box. Clang
apparently generates .gcno files that aren't compatible with gcov-4.8.
This can be solved by installing gcc-4.6 and invoking lcov with
`--gcov-tool /usr/bin/gcov-4.6`.
http://stackoverflow.com/questions/17758126/clang-code-coverage-invalid-output
Change-Id: I79547e1c579fa79db47ff07d5e90c42cedbd5cbb
Don't remember why I didn't enable this for the host when I made the
first pass, but it works just fine.
Change-Id: I0892c0bc353bf8b60b432ba9f69f97281177d41d
So the build system regenerates import_includes when you modify
Android.mk to add a new dependency library.
Change-Id: Ic92b097b659bb68a9065e1d66da59e0dc7e2836a
The proto handling will modify the set of dependent libraries, but
this was not actually accounted for in dependency handling because
dependencies had already been established.
Change-Id: Iba1582f3c9eeeada19569e4b5358b6ec4168fccc
We had discussed the idea of making all host tools default to using
ASAN. Even if we don't make it the default, this makes it easy for the
user to switch all host binaries over.
Change-Id: I64a5c741b1b4e9aefed3a6be8dcd4f386e06b29c
Pass -fsanitize=address instead of manually specifying asan libraries
and other linker flags.
Note that we enable LOCAL_ALLOW_UNDEFINED_SYMBOLS by default for host
builds because ASAN only links symbols in the final executable, so
there will _always_ be undefined symbols in intermediate libraries.
Bug: 18208352
Change-Id: Ief55ab296e94974560eeb10507ec8d90f0025d5c
This will be necessary to support -std=gnu99 mode for clang 3.6, which
defaults to C11 mode (unlike prior releases that use C99).
Change-Id: Iea84582f9f12ba76b988463cbc0a20bd61042538