Commit Graph

538 Commits

Author SHA1 Message Date
Dan Willemsen 399c59f3aa am d5deac8d: Merge "Add _(darwin|linux|windows)"
* commit 'd5deac8db951ec0a1c9edd806ea1758b836f8c46':
  Add _(darwin|linux|windows)
2015-08-28 03:49:01 +00:00
Dan Willemsen 85ac8d2a00 Add support for LOCAL_SRC_FILES_(host)_(arch)
For boringssl, which has architecture specific host assembly files

Bug: 23566667

Change-Id: Ia4602d28e93a1b3d1400cf95417b5e446c5fb84b
2015-08-28 03:38:43 +00:00
Dan Willemsen 7a5498568f Add _(darwin|linux|windows)
So that we can support building both linux and windows binaries at the
same time on a linux host. This replaces the ifeq($(HOST_OS),...) checks
in Android.mk files.

Bug: 23566667

Change-Id: I693e11984e36d55bb6f09fa0d49bc485463e16fb
2015-08-28 03:36:22 +00:00
Christopher Wiley 3f7c5424db am 2b2c9dff: am 4e719eaf: Merge "Change .dbus.xml extension to .dbus-xml"
* commit '2b2c9dff35304c21ebe1e793a16443a882920f75':
  Change .dbus.xml extension to .dbus-xml
2015-08-21 22:24:31 +00:00
Christopher Wiley 9b17dea308 Change .dbus.xml extension to .dbus-xml
Work around gyp's inability to handle compound extensions by expecting
a similar looking simple extension for XML files definine DBus
interfaces.  We'll need to rename these sources in the places we're
using them already.

Bug: 23380180
Change-Id: Ieb2050f3ef05456cd70de65c3e128d57a6a508f8
2015-08-20 09:36:08 -07:00
Christopher Wiley 9c49f0affa am 688b4a3d: am 4d2b79f9: Merge "Generate DBus proxies and adaptors separately"
* commit '688b4a3db72b58e8908ecdb24e6c4d64a44fdbc6':
  Generate DBus proxies and adaptors separately
2015-08-19 22:31:03 +00:00
Christopher Wiley 529f176ee1 Generate DBus proxies and adaptors separately
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
2015-08-19 11:14:16 -07:00
Ying Wang f050c2f1c7 Rename libnanopb-c-2.8.0 to libprotobuf-c-nano.
Bug: 20093047
Change-Id: I787925fde97d1a3965cb8a9bf012f3c5a45a6aed
2015-08-18 14:32:07 -07:00
Ying Wang b28ed234aa Consolidate the nanopb-c and regular protobuf build rules.
Bug: 20093047
Change-Id: I38ebd748aacce6d215403da481ad04833810a995
2015-08-18 14:27:45 -07:00
Dan Albert 401faa3513 am 8d61be6c: am f9b75b1b: Merge "Don\'t filter on a non-existent variable."
* commit '8d61be6c781277ae3f5423c805092220a961b102':
  Don't filter on a non-existent variable.
2015-08-17 20:24:05 +00:00
Dan Albert 1b2187d871 Don't filter on a non-existent variable.
This used to be used for aarch64
(https://android-review.googlesource.com/#/c/80126/), but has since
been removed and now does nothing. This was then reimplemented more
generally with my_illegal_flags
(https://android-review.googlesource.com/#/c/166405/). Drop
*GLOBAL_UNSUPPORTED_CFLAGS in favor of that.

Change-Id: I3347726dd92f9d3a16783e0d9d3b685a828400b4
2015-08-17 10:36:09 -07:00
Yang Ni 9d1eaaea61 am dcfb0c80: am 36600a6b: Merge "Include target api version in build system for rscpp."
* commit 'dcfb0c8018ec9e81fa79f3251a3d49a4cc90ddf4':
  Include target api version in build system for rscpp.
2015-08-15 02:18:57 +00:00
Yang Ni 36600a6bf9 Merge "Include target api version in build system for rscpp." 2015-08-14 18:39:47 +00:00
Noah Presler 4796a8c524 Include target api version in build system for rscpp.
b/23161320

Change-Id: Ibc23309abed092e7648168fbf4b80891a44929a6
2015-08-13 17:07:56 -07:00
Dan Albert dc0e7244a6 am 2c00d629: am 727b462a: Merge "Never allow -w."
* commit '2c00d62940e7f88b2168ccf3a29a1d3e84f59bfa':
  Never allow -w.
2015-08-13 17:02:13 +00:00
Dan Albert df3fd1d128 Never allow -w.
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
2015-08-12 14:54:16 -07:00
Dan Albert 92d6efc595 am 96f480c9: am 4f20869b: Merge "Bump the default C++ standard up to C++14."
* commit '96f480c93a318fc6550ef2c4d13e6e67574bfb96':
  Bump the default C++ standard up to C++14.
2015-08-10 20:53:59 +00:00
Dan Albert c7d307d873 Bump the default C++ standard up to C++14.
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
2015-08-10 13:37:42 -07:00
Gilad Arnold 09905505f7 am 5070204e: am 7b49da7e: Merge "Remove LOCAL_MODULE from generated DBus header path."
* commit '5070204e117d5a20f06fa337c652e36884f29d86':
  Remove LOCAL_MODULE from generated DBus header path.
2015-08-06 22:10:29 +00:00
Gilad Arnold 7b49da7e9a Merge "Remove LOCAL_MODULE from generated DBus header path." 2015-08-06 21:55:47 +00:00
Dan Albert a1df0e6717 am 100422b2: am 2e4b90e5: Merge "Dedup system shared libraries."
* commit '100422b2311a96fbbdb1ba62a9945c2637c9e861':
  Dedup system shared libraries.
2015-08-06 21:40:18 +00:00
Dan Albert 2e4b90e5f1 Merge "Dedup system shared libraries." 2015-08-06 21:25:45 +00:00
Dan Albert 7ba582aec3 Dedup system shared libraries.
These shouldn't differ by target. Right now only mips64 does, and
that's a bug.

Change-Id: Ic941ede85ba1bc07d3316a55639ba71a6afc9630
2015-08-06 14:18:55 -07:00
Gilad Arnold 54e92d0061 Remove LOCAL_MODULE from generated DBus header path.
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
2015-08-06 12:50:23 -07:00
Christopher Wiley a3dbe51f42 resolved conflicts for merge of 7d1be400 to mnc-dev-plus-aosp
Change-Id: Ifc2b669bc573f059f35085d11693ea3d2cac11ec
2015-08-05 10:18:16 -07:00
Christopher Wiley bc2be461e4 Add build rules to generate native DBus interfaces
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
2015-07-31 11:14:35 -07:00
Ying Wang 57d9060ffd Split [CC|CXX]_WRAPPER from [TARGET|HOST]_[CC|CXX]
- 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)
2015-07-21 14:07:50 -07:00
Ying Wang c7a57e0756 am c671a7cf: Split [CC|CXX]_WRAPPER from [TARGET|HOST]_[CC|CXX]
* commit 'c671a7cf5cae42b61991d9b72e53d9d8a6ace84e':
  Split [CC|CXX]_WRAPPER from [TARGET|HOST]_[CC|CXX]
2015-07-21 21:01:37 +00:00
Ying Wang c671a7cf5c Split [CC|CXX]_WRAPPER from [TARGET|HOST]_[CC|CXX]
- 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
2015-07-20 21:26:53 -07:00
Evgenii Stepanov 436a2fb9e3 am 275e3c8c: am 2d0ec893: Merge "Use a different linker for ASan binaries."
* commit '275e3c8c105e5702b25868f80983c82c668e5664':
  Use a different linker for ASan binaries.
2015-07-15 21:27:42 +00:00
Evgenii Stepanov 8f5e67a98c Use a different linker for ASan binaries.
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
2015-07-14 11:10:40 -07:00
Ying Wang 1f59fcb23d am 8f908ade: am 2e26f896: Merge "Simplify LOCAL_NO_CRT."
* commit '8f908ade58fd21d5bb27b7a42f8f07553c237df6':
  Simplify LOCAL_NO_CRT.
2015-07-04 02:58:23 +00:00
Ying Wang 491fca9809 Simplify LOCAL_NO_CRT.
Change-Id: If2486e4861071df6b225fe7f387530a38f554484
2015-07-02 15:58:34 -07:00
Dan Albert 8b36f7fcc7 am 2bb996f6: am 46cb2ee3: Merge "Force some clang Werrors that *will* break things."
* commit '2bb996f6a58dd4b9e682f9c59a7dad94412bdd86':
  Force some clang Werrors that *will* break things.
2015-06-13 02:25:20 +00:00
Dan Albert d160041149 Force some clang Werrors that *will* break things.
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
2015-06-10 17:24:38 -07:00
Dmitriy Ivanov 7fa5ba1d22 am 6a2b812b: am cda3d433: am eacc8a05: am 529943c7: Merge "Disable packed relocations for NDK builds"
* commit '6a2b812b8cc5ac7ea051d2c09651e12d08217919':
  Disable packed relocations for NDK builds
2015-04-24 05:30:47 +00:00
Dmitriy Ivanov 3b51f20be9 Disable packed relocations for NDK builds
Bug: http://b/20537715
Change-Id: I1289a88d5eb694980b026b695cb25edd8ba76ed5
2015-04-23 18:55:23 -07:00
Dan Albert c2ac7201a7 am 803cf699: am 5e7e6d75: am 2d215e38: Merge "Use libcompiler_rt-extras on the host too."
* commit '803cf699262275a771e3211751e77d2817718656':
  Use libcompiler_rt-extras on the host too.
2015-04-14 23:08:47 +00:00
Dan Albert 30a9c351d6 Use libcompiler_rt-extras on the host too.
Clang will sometimes generate this call (dex2oat with ubsan is one
known case), and it doesn't exist in libgcc.

Change-Id: I2eb68e2a326eb0407dca03b5870077eeebca1c0a
2015-04-09 16:38:55 -07:00
Ying Wang 8a0d53e7f5 Rename libnanopb-c-2.8.0 to libprotobuf-c-nano.
Bug: 20093047
Change-Id: I787925fde97d1a3965cb8a9bf012f3c5a45a6aed
2015-04-08 09:54:34 -07:00
Ying Wang faeb693174 Consolidate the nanopb-c and regular protobuf build rules.
Bug: 20093047
Change-Id: I38ebd748aacce6d215403da481ad04833810a995
2015-04-07 12:49:50 -07:00
Ying Wang 11e923a0e5 am ea517854: am aacc8bb4: am 18ecae31: Merge "Convert bc depfiles to .P files."
* commit 'ea5178545bf939fb65f77cd54eba9f274512638b':
  Convert bc depfiles to .P files.
2015-04-04 01:49:47 +00:00
Ying Wang b931956076 Convert bc depfiles to .P files.
So you don't need clean step when a header file gets moved or deleted.

Change-Id: Iec0d63b89ba17c4ef0ad75f4a52b6759f2bff58a
2015-04-03 16:55:09 -07:00
Dan Albert 57d71306a5 am 8f7338d9: am dc8d7092: am 0064c51e: Merge "Use prebuilt libclang_rt.profile."
* commit '8f7338d9b145379ea9c51b7e551509a2d8f0f24e':
  Use prebuilt libclang_rt.profile.
2015-04-02 18:49:26 +00:00
Dan Albert 343ed674e3 Use prebuilt libclang_rt.profile.
Bug: 17574078
Change-Id: I4838cd5d125a0b2bf76aad2fdaef1ee3122687e8
2015-04-01 19:03:22 -07:00
Etan Cohen 5c92a46ea3 Merge commit '597cfdb' into merge
Change-Id: I4df718345626439ece9fdad242cccea7d6930819
2015-03-30 16:42:42 -07:00
Ying Wang d791463511 Support "LOCAL_FDO_SUPPORT := always".
"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)
2015-03-13 11:36:15 -07:00
Ying Wang 08b32584f4 am 4e32ac83: am dedff62c: Merge "Contain obj of ../ source files in their intermediate dir."
* commit '4e32ac834299da0c5892e9fb15777ca2cd335492':
  Contain obj of ../ source files in their intermediate dir.
2015-03-13 02:59:09 +00:00
Ying Wang 25c894bf70 am ec447f36: am 168357ae: Merge "Support .asm being compiled by yasm targeted for x86_64."
* commit 'ec447f368a0622781a0b6f95d422d30f480a24b5':
  Support .asm being compiled by yasm targeted for x86_64.
2015-03-12 15:35:53 +00:00
Wink Saville 597cfdb9db Add support for PB_ENABLE_MALLOC in nanopb-c
There will be two version of the the nanopb-c library,
libnanopb-c-2.8.0 which doesn't support automatic malloc
and libnanopb-c-2.8.0-enable_malloc which does.

There will be two version of the the nanopb-c library,
libnanopb-c-2.8.0 which doesn't support automatic malloc
and libnanopb-c-2.8.0-enable_malloc which does.

Set LOCAL_PROTO_OPTIMIZE_TYPE=nanopb-c which doesn't support
malloc and set it to nanopb-c-enable_malloc which does.

For client code details see nanopb-api:
  http://koti.kapsi.fi/jpa/nanopb/docs/reference.html

Change-Id: If238412463aabb5e1d556dfc9c464bcaf9e3333a
2015-03-11 23:59:50 +00:00
Wink Saville 042d4dc4a1 nanopb-c
Change-Id: I584d0a1e228338ea4ec3e5e2875d1ed329bc37f2
2015-03-11 22:00:09 +00:00
Ying Wang dedff62c8e Merge "Contain obj of ../ source files in their intermediate dir." 2015-03-11 20:43:41 +00:00
Ying Wang 168357aeda Merge "Support .asm being compiled by yasm targeted for x86_64." 2015-03-11 16:37:25 +00:00
Ying Wang fb22a42d4f Contain obj of ../ source files in their intermediate dir.
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
2015-03-10 19:05:15 -07:00
Ying Wang fe1e5c3453 Support .asm being compiled by yasm targeted for x86_64.
Change-Id: Ia6425c38dd2f7ad2dc697213cd61b7515b9e7aff
2015-03-09 18:57:40 -07:00
Ying Wang e25b3984ff Improved nothing-to-do-build
- Removed unnecessary dependency of
  "$(my_symlink) :  $(LOCAL_INSTALLED_MODULE)"
  We can generate symlink to nonexistent file.
  Actually in multilib build $(LOCAL_INSTALLED_MODULE) points to file
  that may not be the target file of the symlink and leads to always
  obsolete $(my_symlink) in the above dependnecy.
- Touch by-product in the dummy rule, to make sure the by-product is
  newer than the main-product.

Change-Id: I2f0e0cc197c49f920fa1f6794083b21cdc333c20
2015-02-26 18:47:21 -08:00
Dan Albert 0d963dc94f am f633e281: am 172cd765: Merge "Allow coverage with clang."
* commit 'f633e28168a65a0d7a59fed069c90ca54b47de9f':
  Allow coverage with clang.
2015-01-24 23:48:47 +00:00
Dan Albert b89760a76b am 3723af1b: am 9ba25d6b: Merge "Enable host coverage."
* commit '3723af1b4e8de4941d7b9be569f209d88f565964':
  Enable host coverage.
2015-01-24 23:48:46 +00:00
Dan Albert f633e28168 am 172cd765: Merge "Allow coverage with clang."
* commit '172cd7653e4dfb628065349ea915329076e44e1d':
  Allow coverage with clang.
2015-01-24 23:42:11 +00:00
Dan Albert 3723af1b4e am 9ba25d6b: Merge "Enable host coverage."
* commit '9ba25d6bfd983655dc9c0584887db2b6cb3be999':
  Enable host coverage.
2015-01-24 23:42:09 +00:00
Dan Albert 2c03e04480 Allow coverage with clang.
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
2015-01-24 15:18:01 -08:00
Dan Albert 43e128acfc Enable host coverage.
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
2015-01-24 13:24:19 -08:00
Ying Wang 28aa610860 am de9b91b0: am 6aa932ca: Merge "Add dependency of import_includes on LOCAL_MODULE_MAKEFILE"
* commit 'de9b91b01bc9baff333ea7fbb438e0e838fac204':
  Add dependency of import_includes on LOCAL_MODULE_MAKEFILE
2015-01-23 03:11:04 +00:00
Ying Wang de9b91b01b am 6aa932ca: Merge "Add dependency of import_includes on LOCAL_MODULE_MAKEFILE"
* commit '6aa932cabf6ed14c35ae49b78464e2504af87c58':
  Add dependency of import_includes on LOCAL_MODULE_MAKEFILE
2015-01-23 00:50:39 +00:00
Ying Wang 14d02a39b0 Add dependency of import_includes on LOCAL_MODULE_MAKEFILE
So the build system regenerates import_includes when you modify
Android.mk to add a new dependency library.

Change-Id: Ic92b097b659bb68a9065e1d66da59e0dc7e2836a
2015-01-22 15:44:04 -08:00
Ying Wang 4d97b27c51 am c0ff83ae: am 17967eb7: Merge "[MIPSR6] Adjust prebuilts/ndk libraries for mips32r6"
* commit 'c0ff83aebd4ce2ac80247f9b809c27fbf4fc1524':
  [MIPSR6] Adjust prebuilts/ndk libraries for mips32r6
2015-01-16 20:06:46 +00:00
Ying Wang c0ff83aebd am 17967eb7: Merge "[MIPSR6] Adjust prebuilts/ndk libraries for mips32r6"
* commit '17967eb72f0eb7f495800d5065b64db4a0174362':
  [MIPSR6] Adjust prebuilts/ndk libraries for mips32r6
2015-01-16 18:32:18 +00:00
Duane Sand 1a07487493 [MIPSR6] Adjust prebuilts/ndk libraries for mips32r6
Change-Id: Ice2d0f65eced4fb7dd209fb15610ba555dd45f2c
2015-01-16 18:13:17 +00:00
Jeff Davidson 861f88765b am 0c949bd8: am 64606bd5: Merge "Update protobuf library from 2.3 to 2.6."
* commit '0c949bd86773c5d39df11cd824c9df372dc00342':
  Update protobuf library from 2.3 to 2.6.
2015-01-16 00:06:05 +00:00
Jeff Davidson 0c949bd867 am 64606bd5: Merge "Update protobuf library from 2.3 to 2.6."
* commit '64606bd5b0b702b7f6d7fd1088486b5380ccc25f':
  Update protobuf library from 2.3 to 2.6.
2015-01-15 23:01:59 +00:00
Jeff Davidson 64606bd5b0 Merge "Update protobuf library from 2.3 to 2.6." 2015-01-15 22:49:00 +00:00
Jeff Davidson 516a656bbe am ee65f03b: am dd198b77: Merge "Move installed module dependency setup after proto handling."
* commit 'ee65f03b3c35e481d1bd1a6f4e8374953d20fe98':
  Move installed module dependency setup after proto handling.
2015-01-09 02:55:32 +00:00
Jeff Davidson ee65f03b3c am dd198b77: Merge "Move installed module dependency setup after proto handling."
* commit 'dd198b77a1bae9974b741cc7d1dad328dce3c3b6':
  Move installed module dependency setup after proto handling.
2015-01-09 02:51:41 +00:00
Jeff Davidson 680f071ca4 Move installed module dependency setup after proto handling.
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
2015-01-08 18:25:30 -08:00
Jeff Davidson b1055a195a Update protobuf library from 2.3 to 2.6.
Change-Id: I02d308b01f635307dbb63ea9610db2e56eb1f31b
2015-01-08 16:35:11 -08:00
Dan Albert 827967b696 am 023fd1fc: am e98755f9: Merge "Add a SANITIZE_HOST flag."
* commit '023fd1fca8b200d73d0b2628180a602750ae59ee':
  Add a SANITIZE_HOST flag.
2014-12-09 23:44:32 +00:00
Dan Albert 565f87011d am ee582aac: am cd814343: Merge "Let clang decide ASan linker flags for the host."
* commit 'ee582aac416040240bb8959a966173f435178855':
  Let clang decide ASan linker flags for the host.
2014-12-09 23:44:31 +00:00
Dan Albert 023fd1fca8 am e98755f9: Merge "Add a SANITIZE_HOST flag."
* commit 'e98755f9d6619ff141d099f9da655d141da72b8e':
  Add a SANITIZE_HOST flag.
2014-12-09 13:18:44 +00:00
Dan Albert ee582aac41 am cd814343: Merge "Let clang decide ASan linker flags for the host."
* commit 'cd814343e897ae8b6d19874163eec8d89c6ae37f':
  Let clang decide ASan linker flags for the host.
2014-12-09 13:18:43 +00:00
Dan Albert 4ae5d4b331 Add a SANITIZE_HOST flag.
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
2014-12-05 22:20:37 -08:00
Dan Albert b58fb4aac6 Let clang decide ASan linker flags for the host.
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
2014-12-05 14:52:56 -08:00
Stephen Hines e3d102807c am b2f55103: am 4bad2d21: Merge "Add more support for GLOBAL_CONLYFLAGS."
* commit 'b2f5510365be26e279a8d02770a9f46e57741d54':
  Add more support for GLOBAL_CONLYFLAGS.
2014-12-02 19:01:41 +00:00
Stephen Hines b2f5510365 am 4bad2d21: Merge "Add more support for GLOBAL_CONLYFLAGS."
* commit '4bad2d2156bcb589c2d1bb223a074edc39aa428c':
  Add more support for GLOBAL_CONLYFLAGS.
2014-12-02 18:52:12 +00:00
Stephen Hines 1568029218 Add more support for GLOBAL_CONLYFLAGS.
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
2014-12-01 15:36:26 -08:00
Dan Albert 73e8a52436 am 49d06286: am 7dcbc563: Merge "Fix a typo in my_cppflags assignment."
* commit '49d062864b0cc4211377678ba5337acb20aa86fa':
  Fix a typo in my_cppflags assignment.
2014-12-01 18:16:38 +00:00
Dan Albert 49d062864b am 7dcbc563: Merge "Fix a typo in my_cppflags assignment."
* commit '7dcbc563f8811259809b754d0c0edc717e1476e6':
  Fix a typo in my_cppflags assignment.
2014-12-01 18:11:05 +00:00
Dan Albert d2fa96d7c6 Fix a typo in my_cppflags assignment.
Make strikes once again...

Change-Id: I295b4157fc7566b1a2cb925b06918dc0a96a7bce
2014-11-28 14:00:12 -08:00
Dan Albert 8e25667f12 am a4ad6442: am 9b0ccb74: Merge "Fix the libgcc/libatomic link order."
* commit 'a4ad6442d6a54c9eaf771a0d4ab7f7ab9de163ac':
  Fix the libgcc/libatomic link order.
2014-11-18 00:07:22 +00:00
Dan Albert a4ad6442d6 am 9b0ccb74: Merge "Fix the libgcc/libatomic link order."
* commit '9b0ccb7480a0b86d27bb6c7352b5cd5e79bfbf82':
  Fix the libgcc/libatomic link order.
2014-11-18 00:03:54 +00:00
Dan Albert 9b0ccb7480 Merge "Fix the libgcc/libatomic link order." 2014-11-17 23:55:57 +00:00
Dan Albert a569b83842 am 330f808b: am f63ca1e9: Merge "Disable gnu style linker hash for NDK builds."
* commit '330f808b24dd3ee1b90bdd8b0e7e36ccca32e8b3':
  Disable gnu style linker hash for NDK builds.
2014-11-17 20:39:45 +00:00
Dan Albert 330f808b24 am f63ca1e9: Merge "Disable gnu style linker hash for NDK builds."
* commit 'f63ca1e9ea392d6aea7e2cfd6239d904e6ae017d':
  Disable gnu style linker hash for NDK builds.
2014-11-17 20:35:06 +00:00
Dan Albert d3d894da74 Disable gnu style linker hash for NDK builds.
This feature is now available in AOSP, but not for any shipped
release. We don't have an API version for the release that this will
be available in yet, so for now the check is commented out.

Bug: 18395015
Change-Id: I247233d047ed5a7564d6602d47c9ad962313c8dc
2014-11-15 01:50:52 +00:00
Dan Albert 741b36e922 Fix the libgcc/libatomic link order.
The previous position of libgcc.a/libatomic.a on the link line causes
the linker to prefer satisfying dependencies from these libraries from
other libraries that might include them, rather than from libgcc.a (or
libatomic.a) itself. This imposes an ABI requirement that those
intermediate shared libraries _always_ export those symbols, which is
undesirable.

Change-Id: Ib593236b475d3e98356b2b1be6f96cee2b67378f
2014-11-13 21:29:28 -08:00
Dan Albert 6da20991fd am 5245bc8b: am 201f6b3e: Merge "Make modules depend on their makefile."
* commit '5245bc8b3421b3a9676a9ad650d0804d8d9e2787':
  Make modules depend on their makefile.
2014-11-11 23:00:40 +00:00
Dan Albert 5245bc8b34 am 201f6b3e: Merge "Make modules depend on their makefile."
* commit '201f6b3e92a2ef2f3a117f33cd399d5304dd385a':
  Make modules depend on their makefile.
2014-11-11 22:56:01 +00:00
Dan Albert 954b5bdcf4 Make modules depend on their makefile.
This should obviate much of the need for cleanspecs, and also make it
unnecessary to continue adding LOCAL_ADDITIONAL_DEPENDENCIES for this
sort of thing all over the tree.

Change-Id: I97aa8fd280ae868a5f6364f8b7bf3c2fe235d6ce
2014-11-11 14:30:54 -08:00
Dan Albert 655f7c9a82 am a9abc487: am 1f637158: Merge "Use platform protobuf unless building with NDK."
* commit 'a9abc487a8fdf3a82932df3f70efd9aab7fb9d35':
  Use platform protobuf unless building with NDK.
2014-11-11 20:05:56 +00:00
Dan Albert a9abc487a8 am 1f637158: Merge "Use platform protobuf unless building with NDK."
* commit '1f6371583ef6ce3a384262ebb291515f5ca3a7b6':
  Use platform protobuf unless building with NDK.
2014-11-11 19:58:42 +00:00
Dan Albert c3031c70f7 Use platform protobuf unless building with NDK.
The NDK protobuf library depends on the final target linking stlport
(since it is a static library). Since the platform stlport is going
away, we need to use a separate version of the protobuf library that
is compiled for the platform against libc++.

Note that this should be the case for _all_ libraries built with the
NDK. If a library needs to be used by both an NDK built final target
and a platform built final target, there should be both an NDK and
platform version of the library.

Bug: 15193147
Change-Id: I0ead61c2d1cd9d0248b304ab7d8682dedd6e8366
2014-11-11 11:05:27 -08:00
Jeff Davidson 79ddea19f6 am 4e466096: am ed9981d9: am 427d1e98: Merge "Pull in latest protolib when using LOCAL_PROTOC_OPTIMIZE_TYPE."
* commit '4e4660961b6c704d13c6c521f36958f436ec40f3':
  Pull in latest protolib when using LOCAL_PROTOC_OPTIMIZE_TYPE.
2014-10-29 20:52:18 +00:00
Jeff Davidson 4e4660961b am ed9981d9: am 427d1e98: Merge "Pull in latest protolib when using LOCAL_PROTOC_OPTIMIZE_TYPE."
* commit 'ed9981d927cb24b106df9b3c350b6b63e570026f':
  Pull in latest protolib when using LOCAL_PROTOC_OPTIMIZE_TYPE.
2014-10-29 20:42:11 +00:00
Jeff Davidson ed9981d927 am 427d1e98: Merge "Pull in latest protolib when using LOCAL_PROTOC_OPTIMIZE_TYPE."
* commit '427d1e98eceb78f5cb8f1e50d00d342fc7f359c6':
  Pull in latest protolib when using LOCAL_PROTOC_OPTIMIZE_TYPE.
2014-10-29 17:40:05 +00:00
Jeff Davidson 427d1e98ec Merge "Pull in latest protolib when using LOCAL_PROTOC_OPTIMIZE_TYPE." 2014-10-29 17:35:17 +00:00
Dan Albert 47bb921e00 am d905ec2a: am ef8912d9: am d274e04a: Merge "Don\'t sort shared library link order."
* commit 'd905ec2ac6b1277d59b21b74f8632c34fdf1b9a9':
  Don't sort shared library link order.
2014-10-29 17:32:10 +00:00
Dan Albert d905ec2ac6 am ef8912d9: am d274e04a: Merge "Don\'t sort shared library link order."
* commit 'ef8912d93f5ca3722d761da6c0b0f05e2480a41d':
  Don't sort shared library link order.
2014-10-29 17:11:50 +00:00
Ying Wang 45d0143ab1 Support "LOCAL_FDO_SUPPORT := always".
"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
2014-10-28 14:50:59 -07:00
Dan Albert ef8912d93f am d274e04a: Merge "Don\'t sort shared library link order."
* commit 'd274e04ac4317d7cfc2de02ca215e064c018c234':
  Don't sort shared library link order.
2014-10-28 04:46:53 +00:00
Dan Albert 04eead7e2b Don't sort shared library link order.
Only sort the list of shared libraries used for naming dependencies,
not the order they are actually linked in. The order in which shared
libraries appear to the linker affects which symbols get used if there
is a multiply defined symbol.

Also link system shared libraries _after_ user provided libraries,
since a user will want their functions to override the system's if
they exist.

Change-Id: I071059d940d40a648d69d90e0699073ef520138a
2014-10-23 14:04:02 -07:00
Jeff Davidson b8ddd55b55 Pull in latest protolib when using LOCAL_PROTOC_OPTIMIZE_TYPE.
If a module is explicitly depending on a versioned protolib, we strip
the dependency and log a warning so the unneeded dependency can be
removed.

Change-Id: I949d32fb5126f1c05e2a6ed48f6636a4a9b15a48
2014-10-23 07:20:16 -07:00
Dan Albert 94d4214094 am cc0aa4da: am 28c265dd: Merge "We also need -rdynamic for host ASAN."
* commit 'cc0aa4dabd4bae2b17bc9de8f88e04e862d030b2':
  We also need -rdynamic for host ASAN.
2014-10-20 22:42:23 +00:00
Dan Albert 96983cba42 am cc0aa4da: am 28c265dd: Merge "We also need -rdynamic for host ASAN."
* commit 'cc0aa4dabd4bae2b17bc9de8f88e04e862d030b2':
  We also need -rdynamic for host ASAN.
2014-10-20 22:42:11 +00:00
Dan Albert 4ffe3f5b9f We also need -rdynamic for host ASAN.
Change-Id: Iee33ca85c25d9bf126be8318a3b837074ab10076
2014-10-20 13:54:27 -07:00
Dan Albert 7162996734 resolved conflicts for merge of 96c22133 to lmp-mr1-dev-plus-aosp
Change-Id: Ia94c5ad273c3578433d3eb226e8e8de7c1921d34
2014-10-20 13:38:43 -07:00
Dan Albert 66acb2a8ae resolved conflicts for merge of 96c22133 to lmp-dev-plus-aosp
Change-Id: I35a2f403e9e664536b45b5ac9185adf1e1a02442
2014-10-20 13:37:18 -07:00
Dan Albert 2daceaa83c Add support for ASAN in host modules.
Change-Id: Id9ed83499e0eb995f06e845c3153a50677d768b8
2014-10-20 11:37:18 -07:00
Dan Albert 358d9c0d69 am 24c1d149: am a01fa4f8: Merge "LOCAL_NATIVE_COVERAGE should imply -O0."
* commit '24c1d149678dcd03f679bfa0fc29386cee779935':
  LOCAL_NATIVE_COVERAGE should imply -O0.
2014-10-09 01:28:25 +00:00
Dan Albert 6adf02580b am 24c1d149: am a01fa4f8: Merge "LOCAL_NATIVE_COVERAGE should imply -O0."
* commit '24c1d149678dcd03f679bfa0fc29386cee779935':
  LOCAL_NATIVE_COVERAGE should imply -O0.
2014-10-09 01:14:58 +00:00
Dan Albert 4c12c0303c LOCAL_NATIVE_COVERAGE should imply -O0.
Optimization can lead to incorrect coverage results.

Change-Id: I8ade9ab246e292d26ac18821baf9970e29dc1a1f
2014-10-08 17:05:19 -07:00
Ying Wang 230afab744 am e4e50f9b: am 8330c4c5: Merge "Apply LOCAL_CXX_STL to also prebuilts."
* commit 'e4e50f9bb4ae8af11aaddf9825a09ff33241b204':
  Apply LOCAL_CXX_STL to also prebuilts.
2014-10-07 23:23:15 +00:00
Ying Wang 4019305580 am e4e50f9b: am 8330c4c5: Merge "Apply LOCAL_CXX_STL to also prebuilts."
* commit 'e4e50f9bb4ae8af11aaddf9825a09ff33241b204':
  Apply LOCAL_CXX_STL to also prebuilts.
2014-10-07 23:20:51 +00:00
Ying Wang 75e8fcbb6c Apply LOCAL_CXX_STL to also prebuilts.
Because LOCAL_CXX_STL modifies a module's required shared libaries,
we need this for also prebuilt shared libraries and executables.

Change-Id: I418c26143999a613c40aadf990f131b123e0ac3d
2014-10-07 13:07:00 -07:00
Dan Albert 0c68be8c42 resolved conflicts for merge of 55c2adff to lmp-mr1-dev-plus-aosp
Change-Id: Iaa9ac54a065109e877a2f3f88ef740193f97398c
2014-10-06 11:48:44 -07:00
Dan Albert 15cb27748f am 55c2adff: am b6361968: Merge "Remove unused my_compiler_dependencies."
* commit '55c2adfffac9b40992316938699cb36e0818fbbb':
  Remove unused my_compiler_dependencies.
2014-10-06 18:46:02 +00:00
Dan Albert a8fd66822a Remove unused my_compiler_dependencies.
my_compiler_dependencies was never assigned to, but the way it was
included in the rules prevented the user from being able to use | in
LOCAL_ADDITIONAL_DEPENDENCIES. Since it is unneeded, just remove it.

Change-Id: I74bb59e81b97756296060eea5b7a42909be50130
2014-10-06 10:45:44 -07:00
Dehao Chen 2b0596cfa2 am 295a6d27: Add global option filtering for FDO builds.
* commit '295a6d27f6a2ea04d4ba6072738db7832fa9896f':
  Add global option filtering for FDO builds.
2014-10-02 12:38:03 +00:00
Dehao Chen 295a6d27f6 Add global option filtering for FDO builds.
Change-Id: I95e797f7f5945bb34061d17e49156ca8c8a19854
(cherry picked from commit c7ed00fc00)
2014-10-01 22:10:21 +00:00
Chih-Hung Hsieh 916a954d8c am b9b2d21c: am 4a8d5c1a: Merge "Add local Clang+target specific flags."
* commit 'b9b2d21c04d0ba65ad56a26f8306e9afa7d99694':
  Add local Clang+target specific flags.
2014-09-27 03:00:29 +00:00
Chih-Hung Hsieh 1184754c22 am b9b2d21c: am 4a8d5c1a: Merge "Add local Clang+target specific flags."
* commit 'b9b2d21c04d0ba65ad56a26f8306e9afa7d99694':
  Add local Clang+target specific flags.
2014-09-27 02:59:47 +00:00
Chih-Hung Hsieh 4a8d5c1aaf Merge "Add local Clang+target specific flags." 2014-09-27 02:40:28 +00:00
Chih-Hung Hsieh 619fdb8d77 Add local Clang+target specific flags.
BUG: 17677366
Change-Id: I75522fb56fdf4d27ea1f5f0ae15866b13ae6e206
2014-09-26 17:19:49 -07:00
Stephen Hines 7a5d35b22a am 145eddfd: am 670018fd: Merge "Remove unnecessary CLANG_CONFIG_EXTRA_*_C_INCLUDES variables."
* commit '145eddfd229b118fadd4f4f255dbecc1a79b5e2b':
  Remove unnecessary CLANG_CONFIG_EXTRA_*_C_INCLUDES variables.
2014-09-26 19:53:06 +00:00
Stephen Hines 92ca2234b3 am 145eddfd: am 670018fd: Merge "Remove unnecessary CLANG_CONFIG_EXTRA_*_C_INCLUDES variables."
* commit '145eddfd229b118fadd4f4f255dbecc1a79b5e2b':
  Remove unnecessary CLANG_CONFIG_EXTRA_*_C_INCLUDES variables.
2014-09-26 19:53:06 +00:00
Stephen Hines f00896663e Remove unnecessary CLANG_CONFIG_EXTRA_*_C_INCLUDES variables.
These aren't needed now that we only use the compiler/headers that exist in
the prebuilts/clang directory.

Change-Id: I9978efb10815e92577d45629db324e0a5094f880
2014-09-25 22:35:16 -07:00
Dan Albert b43af8807f resolved conflicts for merge of 326f9450 to lmp-mr1-dev-plus-aosp
Change-Id: I10e578a3d10a03312cbc4058a92f02ccaba1739c
2014-09-24 09:51:05 -07:00
Dan Albert 7655a97984 resolved conflicts for merge of 326f9450 to lmp-dev-plus-aosp
Change-Id: I66360da623a6e7ac04610c3252f24ed69f7e4b1e
2014-09-24 09:42:39 -07:00
Dan Albert 4bbc6c790b Add option for generating coverage info.
To enable building with coverage, the environment variable
NATIVE_COVERAGE must be set to true.

Set `LOCAL_NATIVE_COVERAGE := true` to generate coverage information for
a given component.

This is currently not supported for clang (b/17574078, b/17583330).

If static library A is included in a binary B (dynamic or static
executable, or shared library), and A is built with coverage
information, B is required to link with libgcov.a. Since the make does
not offer a good way to track this dependency, link libgcov.a even if
LOCAL_NATIVE_COVERAGE is not set (but still guarded by NATIVE_COVERAGE).
This ensures that all of the libgcov dependencies will always be
resolved, and causes no change in the resulting binary if coverage is
not used.

Bug: 10134489
Change-Id: Id5a19f2c215e4be80e6eae27ecc19b582f2f6813
2014-09-23 15:19:02 -07:00
Dan Albert 220b01ba27 am 92421720: am 98f7742a: Merge "Move selection of C++ STL into the build system."
* commit '9242172094691c7203ba7cf0a5e5db611ca9032b':
  Move selection of C++ STL into the build system.
2014-09-19 00:16:16 +00:00
Dan Albert 46edd9b103 am 92421720: am 98f7742a: Merge "Move selection of C++ STL into the build system."
* commit '9242172094691c7203ba7cf0a5e5db611ca9032b':
  Move selection of C++ STL into the build system.
2014-09-19 00:15:23 +00:00
Dan Albert b05f2ca150 Move selection of C++ STL into the build system.
Preparing for migration from stlport to libc++. STL selection is done
with LOCAL_CXX_STL (valid values are default, none, libc++,
libc++_static, stlport, stlport_static, bionic).

The selection of the STL is as follows:

    if LOCAL_CXX_STL == 'default'
      ifdef LOCAL_SDK_VERSION
        Use whatever STL the other NDK options have selected.
      else
        Use bionic's libstdc++ for target, GNU libstdc++ for host. This
        is compatible with the existing build options.
      endif
    else
      if LOCAL_CXX_STL == 'stlport'
        Use stlport.
      else if LOCAL_CXX_STL == 'libc++'
        Use libc++.
      else if LOCAL_CXX_STL == ''
        Don't use any STL.
      endif
    endif

Bug: 15193147
Change-Id: If712ba0ae7908d8147a69e29da5c453a183d6540
2014-09-18 16:38:20 -07:00
Ying Wang 634e7df1c8 am acaada12: Use existing my_32_64_bit_suffix.
* commit 'acaada12731639e3feba1dd83d7e44765ec8556c':
  Use existing my_32_64_bit_suffix.
2014-09-10 23:32:46 +00:00
Ying Wang acaada1273 Use existing my_32_64_bit_suffix.
Change-Id: I75d9733870c37a44ce55ae6cbcfb3f67e1387e9d
2014-09-10 16:11:41 -07:00
Tim Murray c0bdd15b10 am fabd3c00: Merge "Pass -m32 or -m64 to llvm-rs-cc when reflecting C++." into lmp-dev
* commit 'fabd3c00b461c921cb745acd62e7b07b4e938241':
  Pass -m32 or -m64 to llvm-rs-cc when reflecting C++.
2014-09-10 22:58:37 +00:00
Tim Murray f0020c6157 Pass -m32 or -m64 to llvm-rs-cc when reflecting C++.
bug 17417839

Change-Id: Iea4aede874f751ac732c3e3ae7a11e18613edcf5
2014-09-10 15:11:01 -07:00
Chih-Hung Hsieh ace83ae389 am 2202dc0a: am 1051d5dc: Merge "Add LOCAL_CLANG_*FLAGS for clang only flags."
* commit '2202dc0af3ab86e2a73bf816012aaea65fb93d91':
  Add LOCAL_CLANG_*FLAGS for clang only flags.
2014-09-05 02:34:31 +00:00
Chih-Hung Hsieh 9aa69a6752 Add LOCAL_CLANG_*FLAGS for clang only flags.
To be used only for some modules.

Change-Id: I107ec37f11f738f860598f0c86c4ad7ec20c9011
2014-09-04 18:43:16 -07:00
Dehao Chen 19aa0acbf4 am 2d83365c: Merge "Add TARGET_FDO_LDFLAGS to make sure -lgcc is always linked after -lgcov." into lmp-dev
* commit '2d83365c9d852874bee790e2047178959933133e':
  Add TARGET_FDO_LDFLAGS to make sure -lgcc is always linked after -lgcov.
2014-08-21 17:52:54 +00:00
Dehao Chen f4294cd816 Add TARGET_FDO_LDFLAGS to make sure -lgcc is always linked after -lgcov.
Change-Id: I33a94abe58391a8564ada14417b0158ddd7ed2d6
2014-08-20 16:48:17 -07:00
Dan Albert 37d058859b am 473dc3d4: am be0af1f7: Merge "Strip my_clang on assignment."
* commit '473dc3d416a29371085237c26f5df391d9698ec1':
  Strip my_clang on assignment.
2014-08-18 19:34:52 +00:00
Dan Albert db905e7b11 Strip my_clang on assignment.
There were a few cases that my_clang was being used without being
stripped. This was causing uses like the following to fail because it
would be partially applied (use clang as the compiler, but don't strip
out incompatible cflags).

    LOCAL_CLANG := true # explanation

To avoid this problem in the future, just strip my_clang when it is
assigned.

Change-Id: I41c2f36a4d4c3aa305a25b4a151c066dad5ffe0f
2014-08-18 11:14:38 -07:00
Dehao Chen ec1a73943b am 5b81106e: Merge "Explicitly check if LOCAL_FDO_SUPPORT is true (instead of empty). Change-Id: Icff260c7f866236254091b035782607a31e5a109" into lmp-dev
* commit '5b81106eb5c5c9a616874caae5ea91b45a45e9d6':
  Explicitly check if LOCAL_FDO_SUPPORT is true (instead of empty). Change-Id: Icff260c7f866236254091b035782607a31e5a109
2014-08-15 11:51:02 +00:00
Dehao Chen f7a909db63 Explicitly check if LOCAL_FDO_SUPPORT is true (instead of empty).
Change-Id: Icff260c7f866236254091b035782607a31e5a109
2014-08-14 17:54:14 -07:00
Tim Murray 96a8c9bc9f am 68301526: am b771d956: Merge "Add flag to enable default clang builds--USE_CLANG_PLATFORM_BUILD."
* commit '6830152675bf4daa9c118c686bf522498c4df3a3':
  Add flag to enable default clang builds--USE_CLANG_PLATFORM_BUILD.
2014-08-13 19:41:00 +00:00
Tim Murray 06659bc9b7 Add flag to enable default clang builds--USE_CLANG_PLATFORM_BUILD.
bug 17007253

Change-Id: Ib11c017bf8aee384e6780e2a1252221fbff3327a
2014-08-13 12:18:30 -07:00
Dan Albert 47b755b486 Fix Windows SDK build.
Bug: 16823325
Change-Id: Ia2a318957aa525f0e72b556a693a20f513146b64
(cherry picked from commit 95994def18)
2014-08-08 08:16:04 -07:00
Dan Albert 04cf315970 Inhibit implicit -Bsymolic in -shared.
Bug: 16853291

Change-Id: Id70488b077256a70137c4417f21be2c2d1d4341c
(cherry picked from commit b6bb71b85d)
2014-08-08 08:15:19 -07:00
Dan Albert 908ab54fda Fix uses of -fPIC and -fPIE.
We've been using -fPIC and -fPIE together in the global cflags all this
time. These options are incompatible. The only reason we haven't been
hit by this before is because of the forced -Bsymbolic in GCC. To fix
this, pass -fpic when compiling objects for shared libraries and -fpie
when compiling objects for executables. For static libraries, also use
-fpic. We have to do this because static libraries might be included in
either a shared library or an executable. Code compiled with -fpie
cannot be included in a shared library, but code compiled with -fpic
may be included in an executable.

We've also been using -fpic and -fPIC together. These are different
options, and only the latter will take effect.
http://stackoverflow.com/a/967010

The final thing this fixes is that we had -f(PIC|PIE) flags being passed
to link commands. These are compile time flags, and don't do anything at
link time.

Bug: 16823325
Change-Id: Ic76f47e63dc2c81b7e1a8058bae1b3dc8565d606
(cherry picked from commit 4803ce2696)
2014-08-08 08:15:14 -07:00
Ying Wang 5a5d443f15 am 8ac188ff: am 6dbbb159: Merge "Consistent use of USE_MINGW"
* commit '8ac188ff0e739ea75ea02166c54428245200f088':
  Consistent use of USE_MINGW
2014-08-08 03:26:07 +00:00
Dan Albert 493c61af6a am 868b22dd: am 76c942c1: Merge "Fix Windows SDK build."
* commit '868b22dd277392cce899d9a980270fbaf8d2f9de':
  Fix Windows SDK build.
2014-08-08 02:28:11 +00:00
Dan Albert 9d6aa51a0f am e99d8947: am cbc742a1: Merge "Inhibit implicit -Bsymolic in -shared."
* commit 'e99d8947c09731d71db7e95a280cf81f51f4049a':
  Inhibit implicit -Bsymolic in -shared.
2014-08-08 00:23:56 +00:00
Dan Albert d423e5fbdb am 897cd3d4: am afae9fd8: Merge "Fix uses of -fPIC and -fPIE."
* commit '897cd3d494272b8a6a12f0fb6d02bfe7426a309c':
  Fix uses of -fPIC and -fPIE.
2014-08-08 00:23:55 +00:00
Ying Wang 594a10ae77 Consistent use of USE_MINGW
Change-Id: I05e212e5a99639d0196006b9c2ec35072c54f399
2014-08-07 20:08:04 -07:00
Dan Albert 95994def18 Fix Windows SDK build.
Change-Id: Ia2a318957aa525f0e72b556a693a20f513146b64
2014-08-07 18:29:11 -07:00
Dan Albert 4803ce2696 Fix uses of -fPIC and -fPIE.
We've been using -fPIC and -fPIE together in the global cflags all this
time. These options are incompatible. The only reason we haven't been
hit by this before is because of the forced -Bsymbolic in GCC. To fix
this, pass -fpic when compiling objects for shared libraries and -fpie
when compiling objects for executables. For static libraries, also use
-fpic. We have to do this because static libraries might be included in
either a shared library or an executable. Code compiled with -fpie
cannot be included in a shared library, but code compiled with -fpic
may be included in an executable.

We've also been using -fpic and -fPIC together. These are different
options, and only the latter will take effect.
http://stackoverflow.com/a/967010

The final thing this fixes is that we had -f(PIC|PIE) flags being passed
to link commands. These are compile time flags, and don't do anything at
link time.

Bug: 16823325
Change-Id: Ic76f47e63dc2c81b7e1a8058bae1b3dc8565d606
2014-08-07 10:20:58 -07:00
Dan Albert b6bb71b85d Inhibit implicit -Bsymolic in -shared.
Bug: 16853291

Change-Id: Id70488b077256a70137c4417f21be2c2d1d4341c
2014-08-07 15:43:16 -07:00
Tim Murray 4f8e50d8e5 am d161be2d: am 77d93bce: Merge "fix build"
* commit 'd161be2d063565ecab6d1fce4440d496d8928abc':
  fix build
2014-07-25 01:03:35 +00:00
Tim Murray 71ecd1dd0f am eb9563f9: am 16d43086: Merge "Fix Windows SDK build to not use clang."
* commit 'eb9563f9ab610ca09bf99c6975f70c14c35683bd':
  Fix Windows SDK build to not use clang.
2014-07-25 01:03:32 +00:00
Tim Murray f3ca3d560a fix build
Change-Id: I28799d5523e1d2d2500a82b3d323c58486aacdbc
2014-07-24 15:20:18 -07:00
Tim Murray 5ca1dc15a1 Fix Windows SDK build to not use clang.
bug 16172793

Change-Id: I7bf76cae49ec17bf50eb657b0e38234b7cb55e85
2014-07-24 14:43:33 -07:00
Tim Murray 72c70d14d4 resolved conflicts for merge of 2812b27c to lmp-dev-plus-aosp
Change-Id: I770fbf16affbd43b0750b50426298038e4b573b7
2014-07-24 14:27:05 -07:00
Ying Wang 8478ab00d0 am ebe0bacc: am 6837ac67: Merge "Refactor FDO support code to ensure arm64 can also be built with FDO."
* commit 'ebe0bacc8063f74da5bacb80c5e0b97a00a7351c':
  Refactor FDO support code to ensure arm64 can also be built with FDO.
2014-07-23 23:41:18 +00:00
Tim Murray 92d79cbb41 Switch host builds to use Clang by default.
If LOCAL_CLANG is not set to false for a host module, clang will be used instead of gcc.

This also enables the integrated assembler by default for Darwin host builds.

bug 16172793

Change-Id: If7484c5dbcccce7d925bec97bff0a3e4c30e9434
2014-07-24 09:25:58 -07:00
Dehao Chen 7092c79a14 Refactor FDO support code to ensure arm64 can also be built with FDO.
Change-Id: I752c9f411b0a046a15c72b4837efc1fb0503b470
2014-07-23 16:34:07 -07:00
Dehao Chen 25671e15cc Refactor FDO support code to ensure arm64 can also be built with FDO.
Change-Id: I752c9f411b0a046a15c72b4837efc1fb0503b470
2014-07-23 16:23:46 -07:00
Ying Wang 01c4f4622b am dceddd91: am 79b46720: am 02f98a26: Merge "Fix loophole in module expansion."
* commit 'dceddd91d9a6516346e752b9f942747bea931cfa':
  Fix loophole in module expansion.
2014-06-11 20:49:20 +00:00
Ying Wang 541b1d0f7c am fe9ad097: am b1f65358: am 5ad17493: Merge "Support .asm being compiled by yasm targeted for x86."
* commit 'fe9ad0975ade10219a5fa9a77d034ba77735e393':
  Support .asm being compiled by yasm targeted for x86.
2014-06-11 17:44:54 +00:00
Ying Wang e1b867dde7 Fix loophole in module expansion.
Previously we only expanded product_MODULES with LOCAL_REQUIRED_MODULES,
but not modules introduced by LOCAL_SHARED_LIBRARIES; Later we did a further
shared libary expansion in vendor_module_check.mk.
It couldn't track C in the following case:
A : B, by LOCAL_SHARED_LIBRARIES; B : C, by LOCAL_REQUIRED_MODULES.

With this change, we transformed the LOCAL_SHARED_LIBRARIES dependencies
into LOCAL_REQUIRED_MODULES dependencies before doing the required
module expansion and the loophole is closed.
All module names are now expanded to product_MODULES now and it makes
vendor_module_check.mk simpler.

Change-Id: I8835a478d2ce0ce10601a8449f446f07b01c2b7f
2014-06-10 14:30:30 -07:00
Ying Wang 5ad17493cd Merge "Support .asm being compiled by yasm targeted for x86." 2014-06-09 21:43:56 +00:00
Stephen Hines d17e71f185 am 69d5bd7c: am e266873b: am 1a8f0d3b: Merge "Move comment out of recipe section"
* commit '69d5bd7cbc873c86685c463ac3dc7ab8de9e71e7':
  Move comment out of recipe section
2014-06-06 21:33:48 +00:00
Stephen Hines 8ff9252680 Move comment out of recipe section
If we keep a comment in the recipe, it prints out whenever that component
gets built.

Change-Id: Idb99a9edc02cfb87e35e59b7fd37588b928b98a5
2014-06-06 12:51:47 -07:00
Ying Wang 7b913ce6fa Support .asm being compiled by yasm targeted for x86.
Change-Id: Icd6626a082facf920b0e49e2fbe8861e94400552
2014-06-06 11:00:36 -07:00
Ying Wang 8b73a86834 am 834ec0ea: am d3ddfdf8: am b3bed595: Merge "Add a dummy build recipe for generated RS cpp files."
* commit '834ec0ead591cf64a5f660af0210e95728e08c4f':
  Add a dummy build recipe for generated RS cpp files.
2014-05-28 23:45:29 +00:00
Ying Wang 81ab8339fe Add a dummy build recipe for generated RS cpp files.
Previously the RS cpp files are generated by the timestamp rule. Though
we have the generated RS cpp files depend on the timestamp file, we
don't have a build recipe. In such case gmake does some "optimization"
that it skip recompiling the generated cpp files, because it assumes the
generated cpp files are already up to date even if the rs files have
been updated.

Bug: 15313144
Change-Id: Ie69ecd2c788057d3619f9c7d2a125d44c4a534a1
2014-05-28 16:17:09 -07:00
Ying Wang 5186dac02b Add a dummy build recipe for the proto generated header files
This fixed issue that gnumake skip updating the cpp file that includes
the generated header file when the .proto file gets updated.
For example:
Say a.cc includes b.pb.h, since b.pb.h is just byproduct of the rule
that generates b.pb.cc, and though we have dependency "b.pb.h :
b.pb.cc", but we don't have build recipe for that rule.
Gmake stupidly thinks that b.pb.h must not be updated in that case so
it skips all targets that depends on b.pb.h!
With the dumy build recipe, gmake now doesn't skip the depedent targets.

Bug: 13009798
Change-Id: I39adc09b7656bdd023f578fb8933667944fd974c
2014-05-28 16:15:13 -07:00
Ying Wang 9df5043594 resolved conflicts for merge of 536d4a76 to master
Change-Id: Ib655d08e5c9272aef1fd1e130b5fb2b63148a55e
2014-05-28 11:05:47 -07:00
Ying Wang 824344af00 Support LOCAL_CLANG with arch/bit suffix.
Precedence: LOCAL_CLANG_<arch> > LOCAL_CLANG_<32|64> > LOCAL_CLANG.

Bug: 15257067
Change-Id: I86b72f3bec162834591287d3b5231b5f40f9a431
2014-05-27 13:06:08 -07:00
Ying Wang bccdab8737 am 65475feb: am 29267309: am 294301bb: Merge "Exclude libstdc++ and libgcc if libc++ is requested."
* commit '65475feb5999068096b287faac9199d1c8e18340':
  Exclude libstdc++ and libgcc if libc++ is requested.
2014-05-27 17:59:11 +00:00
Ying Wang d90de32951 Exclude libstdc++ and libgcc if libc++ is requested.
Bug: 15174002
Change-Id: I24fe428c3520f76cd61f0660b59ba18a1f2d2dad
2014-05-23 16:42:37 -07:00
Ying Wang 8200231ae1 am e50f2d9f: am 40b49d30: am a74ade94: Merge "Support host multilib build"
* commit 'e50f2d9f32a27d8290692dbf99ab8b247ef9d553':
  Support host multilib build
2014-05-15 01:09:49 +00:00
Ying Wang 6feb6d5607 Support host multilib build
This change basically ported our target multilib to the host side.
It supports 2 host build modes: x86 and x86_64 multilib build.
For now you need to set "BUILD_HOST_64bit=true" to switch to x86_64
multilib build. Later we'll default to x86_64 build and have a flag
to force 32-bit only build, which may be needed by SDK build.

In host module definition, like in target ones, you can use the
following
LOCAL variables to set up multilib configuration:
LOCAL_MULTILIB: can be "both", "first", "32" or "64".
It also supports the same set of arch or 32-vs-64 specific LOCAL
variables.
By default, it builds only for the first arch.

To keep path compatibility, in x86_64 build files are still output to
out/host/linux-x86; Both 32-bit and 64-bit executables are in
out/host/linux-86/bin;
In x86_64 build 32-bit shared libraries are installed to
out/host/linux-x86/lib32
and 64-bit shared libraries are installed to out/host/linux-x86/lib;
32-bit object files are output to out/host/linux-x86/obj32 and 64-bit
object files
are output to out/host/linux-x86/obj.

Bug: 13751317
Change-Id: I6044f83b7db369a33e05209e8c588eb6dc83409f
2014-05-14 16:55:04 -07:00
Ying Wang 4908595634 Automatically export generated .pb.h files.
- Automatically export the include path of the generated .pb.h files
- Set up the dependency to make sure the .pb.h files get generated
  before any dependent c/c++ files get compiled.
With this change, any module that links a proto library doesn't need
any extra setup.

Bug: 14563418
Change-Id: Iea7d19e9d8dce8e7d479c386b7a6151a95a0a0df
2014-05-06 13:06:08 -07:00
Andrew Hsieh 293ccf9ae6 am d815dbd1: am f14ba5b9: am 8afa2555: Merge "Rename my_ndk_version_root to my_ndk_sysroot; and _include and _lib"
* commit 'd815dbd1343d05aae5f5430dc38d8846107d202b':
  Rename my_ndk_version_root to my_ndk_sysroot; and _include and _lib
2014-04-29 00:23:52 +00:00
Andrew Hsieh 140761af09 Rename my_ndk_version_root to my_ndk_sysroot; and _include and _lib
prebuilts/ndk/current/platforms/android-19/arch-x86_64/usr/lib
is renamed to usr/lib64 to be more consistent with rest of
lib paths in x86_64 toolchain, which is multilib

See https://android-review.googlesource.com/#/c/92441/

Change-Id: I4e59245505d0fa87ae3608e81e715ccfcecc5ec8
2014-04-25 23:47:10 -07:00
Stephen Hines 46df181815 am f0dda8d0: am 9661b09f: am 9956bb6a: Merge "Build changes necessary for LLVM 3.5 switch."
* commit 'f0dda8d0cbb249be24a71776289b1d9ebe17faaf':
  Build changes necessary for LLVM 3.5 switch.
2014-04-25 22:51:38 +00:00
Tim Murray 43d5e1bbc4 Build changes necessary for LLVM 3.5 switch.
Change-Id: Icb6065daada7cb1d7425206830a4ef9e23454c03

Conflicts:
	core/clang/arm.mk
2014-04-24 13:14:32 -07:00
Evgeniy Stepanov 5d8029f234 Update ASan configuration.
Change runtime library name to keep in sync with upstream.
Enable frame pointers in instrumented code for fast stack unwind.

Change-Id: I815912bb856c56c399639ea76ad4cb6b97961840
2014-04-16 10:52:10 +00:00
Ben Cheng 19b7c4d5c9 am e4d787bf: am 7e793040: am eec11d97: Merge "Decouple platform compiler and NDK library versioning."
* commit 'e4d787bfbbde83bc4b868ed804c94118c2ea0080':
  Decouple platform compiler and NDK library versioning.
2014-04-11 17:10:37 +00:00
Ben Cheng 4de6fa4069 Decouple platform compiler and NDK library versioning.
TARGET_GCC_VERSION: select compiler from prebuilts/gcc/...
TARGET_NDK_GCC_VERSION: select libraries from prebuilts/ndk/...

Change-Id: I4422a42cdc97aa92b40798014cba82c3c123bbd2
2014-04-10 22:46:26 -07:00
Colin Cross c93c10a75b am 8295d6cd: am ce087413: am 36a67a90: Merge topic \'tests\'
* commit '8295d6cd62ba73ea66e64204d2d0ea27b4b34889':
  add support for LOCAL_MODULE_STEM_32 and LOCAL_MODULE_STEM_64
  add support for LOCAL_MODULE_PATH_32 and LOCAL_MODULE_PATH_64
2014-03-25 23:48:13 +00:00
Colin Cross 87974056d9 add support for LOCAL_MODULE_PATH_32 and LOCAL_MODULE_PATH_64
Some executables will need to be built for both 32-bit and 64-bit.
For tests, it will be convienient to keep the name of the executable
the same, but install them in a different location.  Add
LOCAL_MODULE_PATH_32 and LOCAL_MODULE_PATH_64 to allow a module
to specify different paths for 32-bit and 64-bit executables.

Change-Id: I3be830e899c6d485fe55c25c66b20b3fe64c795e
2014-03-25 13:48:40 -07:00
Andrew Hsieh 1477080e34 am cde91b3e: am 0adc6431: am c550cd45: am fa97fe67: Merge "Pick gnu-libstdc++ based on TARGET_GCC_VERSION"
* commit 'cde91b3e6a42e66cb45e75eb69111f37840dffec':
  Pick gnu-libstdc++ based on TARGET_GCC_VERSION
2014-03-25 03:34:29 +00:00
Andrew Hsieh 92d50c1a10 Pick gnu-libstdc++ based on TARGET_GCC_VERSION
Previously we have only one set of include/lib paths for
LOCAL_NDK_STL_VARIANT:=gnustl_static regardless of GCC
version, which is wrong because each GCC version
come with its own libstdc++.

Change-Id: I2a01c2120b6948aedce00e2f8d08dfc6932126dd
2014-03-25 09:46:27 +08:00
Ying Wang 595f996f0d am 7a93f683: am 82a2ae71: am 5a4c783c: am 8c60a1df: Merge "Complete installed shared library dependency"
* commit '7a93f68322eca5ccf32ca9544ba63ec64548e050':
  Complete installed shared library dependency
2014-03-24 19:36:32 +00:00
Ying Wang d8d3721240 Complete installed shared library dependency
Previously the installed shared library dependency doesn't include
modules introduced by LOCAL_SHARED_LIBRARIES_<arch>.
This change fix the problem.
It also cleans up use of the shared library variable.

Bug: 13528787
Change-Id: Id8d807cc57f0ec4a71f18b64545d91191efad8fb
2014-03-21 16:17:04 -07:00
Andrew Hsieh 96000a611a am 314b5c98: am 66a4ef8f: am d14f3cc7: am 5384c187: Merge "Add LOCAL_NDK_STL_VARIANT:=c++_static and c++_shared"
* commit '314b5c98cbd68d11e7484b5e35a1bea466cde66b':
  Add LOCAL_NDK_STL_VARIANT:=c++_static and c++_shared
2014-03-18 00:15:28 +00:00
Andrew Hsieh 73d800e519 Add LOCAL_NDK_STL_VARIANT:=c++_static and c++_shared
Add llvm libc++ static and shared libraries

Change-Id: I92af9b6ab21cbf8ea82e014a4c11aeb5455920f9
2014-03-17 20:30:45 +08:00
Ying Wang df925cefc1 am f91a014f: am 0a196075: am 446f00c9: am ce156811: Merge "Split WITHOUT_CLANG to WITHOUT_HOST_CLANG and WITHOUT_TARGET_CLANG"
* commit 'f91a014f6f2c176f6e1f99cb3bb90d707e0be31c':
  Split WITHOUT_CLANG to WITHOUT_HOST_CLANG and WITHOUT_TARGET_CLANG
2014-03-11 02:15:11 +00:00
Ying Wang ba8b377d89 Split WITHOUT_CLANG to WITHOUT_HOST_CLANG and WITHOUT_TARGET_CLANG
Still keep WITHOUT_CLANG, which enables both.

Bug: 13402154
Change-Id: I32cb668223997719875751bf3d64f592d6086830
2014-03-10 18:59:12 -07:00
Nicolas Geoffray b19e62b3f6 am 77d4e8ed: am 2801735a: am d85ef325: am 460ed38a: Merge "Extend YACC and LEX handling to .yy and .ll files."
* commit '77d4e8ed4456c0d033d0740881f0843f00893248':
  Extend YACC and LEX handling to .yy and .ll files.
2014-03-03 18:15:22 +00:00
Nicolas Geoffray 9484e2e13f Extend YACC and LEX handling to .yy and .ll files.
The external mclinker project has .yy and .ll files that
require the same rules as .y and .l.

Change-Id: I2b02df9a74bac9c215f8aeb8ee2ff0d2616526ed
2014-03-03 15:58:46 +00:00
Ying Wang 031e0fb308 Generate .pb.cc/.pb.h to arch-neutral generated_sources_dir
So a library can export the proto's include path that can be used with
both archs in multilib build.

Change-Id: Ia0f92f0b40e39dc3fa426c69c52139a0a8f04077
2014-02-25 16:12:16 -08:00
Ying Wang 2bc6328ff7 am ead8944e: Generate .pb.cc/.pb.h to arch-neutral generated_sources_dir
* commit 'ead8944e8da9a4b6dbe344b8d93b2c6b2a730f68':
  Generate .pb.cc/.pb.h to arch-neutral generated_sources_dir
2014-02-25 21:47:15 +00:00
Ying Wang ead8944e8d Generate .pb.cc/.pb.h to arch-neutral generated_sources_dir
So a library can export the proto's include path that can be used with
both archs in multilib build.

Change-Id: Ia0f92f0b40e39dc3fa426c69c52139a0a8f04077
2014-02-25 11:18:40 -08:00
Ying Wang 28edfe16f7 am 0c9c0bfc: am 9aadde67: Merge "Include in upper-level makefiles"
* commit '0c9c0bfcc6f2d10fa7235f48b0174a1a120ca599':
  Include $(BUILD_COPY_HEADERS) in upper-level makefiles
2014-02-21 04:19:45 +00:00
Ying Wang bf4a8d3069 Include $(BUILD_COPY_HEADERS) in upper-level makefiles
This makes sure copy_headers.mk only be included onces, no matter
it's for the 1st arch or the 2nd arch.

Change-Id: I80a558fbdb52861f176bd27a21c302069a5cc3ce
2014-02-20 13:54:43 -08:00
Ying Wang d3579f4ee0 Merge "Add a dummy build recipe for the proto generated header files" 2014-02-14 02:29:52 +00:00
Ying Wang 8c556594bf Add a dummy build recipe for the proto generated header files
This fixed issue that gnumake skip updating the cpp file that includes
the generated header file when the .proto file gets updated.
For example:
Say a.cc includes b.pb.h, since b.pb.h is just byproduct of the rule
that generates b.pb.cc, and though we have dependency "b.pb.h :
b.pb.cc", but we don't have build recipe for that rule.
Gmake stupidly thinks that b.pb.h must not be updated in that case so
it skips all targets that depends on b.pb.h!
With the dumy build recipe, gmake now doesn't skip the depedent targets.

Bug: 13009798
Change-Id: I39adc09b7656bdd023f578fb8933667944fd974c
2014-02-13 18:04:00 -08:00
Colin Cross 2d20670380 Add generated sources dir to the default include path
Change-Id: I71fed98dfbc0bf5efad069a251eee2e5ab2e5fe6
2014-02-13 15:36:41 -08:00
Colin Cross f4f2fbe220 don't use LOCAL_*_arch for host builds
The LOCAL_*_$(TARGET_ARCH) variables don't make sense for host
modules, only append use them for target modules.

Also complete the list of LOCAL_*_arch and LOCAL_*_32/64 to be
consistent.

Change-Id: I00c83e5c4e08ed9a844f9f99a79ce4bcc3f0bf11
2014-02-13 13:48:23 -08:00
Ying Wang 1f9828387d Refactor llvm_config.mk and support the 2nd arch
1. Following the setup of gcc in build/core/combo/,
we added the [HOST|TARGET]_<arch>.mk clang config files,
and load only the configs needed by the current product.
2. Added support for the 2nd arch.

Change-Id: I2a383418a9688a050b39492f8e489d40eeeb5f2d
2014-02-07 09:11:22 -08:00
Colin Cross 90353fe86f add support for more LOCAL_*_arch variables
Add support for:
LOCAL_SHARED_LIBRARIES_arch
LOCAL_STATIC_LIBRARIES_arch
LOCAL_WHOLE_STATIC_LIBRARIES_arch
LOCAL_GENERATED_SOURCES_arch
LOCAL_REQUIRED_MODULES_arch

Change-Id: Iad91702e140d8dba7dcaee13f236c77b1e626a34
2014-02-04 19:44:57 -08:00
Colin Cross 44a752659c build: support LOCAL_*_32 and LOCAL_*_64
Support the following new variables based on whether the current multilib
target is 32 bit or 64 bit:
LOCAL_CFLAGS_32
LOCAL_CFLAGS_64
LOCAL_LDFLAGS_32
LOCAL_LDFLAGS_64
LOCAL_ASFLAGS_32
LOCAL_ASFLAGS_64
LOCAL_C_INCLUDES_32
LOCAL_C_INCLUDES_64

Change-Id: Ia868d56dff114be301bf8297eec768675f186927
2014-01-29 18:35:23 -08:00
Colin Cross 8f47fc379e Add support for TARGET_GLOBAL_UNSUPPORTED_CFLAGS
To ease the transition between toolchains, allow a target to specify
a list of cflags that the toolchain does not support.  These will be
filtered out of the cflags provided by the module.

Add TARGET_GLOBAL_UNSUPPORTED_CFLAGS := -fstack-protector for the
aarch64 toolchain, it does not yet suport -fstack-protector.

Change-Id: I168d0c6f131326fad305ec86fad46e6a3e03295a
2014-01-27 18:21:12 -08:00
Colin Cross d826264621 add new gen/ directory for generated sources
Allow modules to generate source into $OUT/gen, which will then
be copied into $OUT/obj and $OUT/obj_$(TARGET_2ND_ARCH) as
necessary.  This allows a single build rule invocation that includes
generated source to build for the first and second architectures.

Modules will need to change calls to local-intermediates-dir into
local-generated-sources-dir.

Change-Id: I62504bad9454b3d9fde7b84ab9f0a487a2ecf0bf
2014-01-27 14:45:44 -08:00
Ying Wang dbdafdb865 Support arch-specific LOCAL_C_INCLUDES.
Bug: 11654773
Change-Id: I89c7ce7ff8bea15cb81f9cd9b0188b54beed3422
2014-01-27 10:27:19 -08:00
Colin Cross 6e087a339b build: use correct arm vs thumb arguments for 2nd arch builds
Set arm_objects_mode and normal_objects_mode when building a
module for arm when it is the 2nd arch.

Change-Id: I5f7df519b6e1dde6cbf92d106681f07a58e1f1f2
2014-01-24 13:42:01 -08:00
Ying Wang b8e0185489 Support arch-specific LOCAL_ variables
With those variables, you can set up different values for TARGET_ARCH
and TARGET_2ND_ARCH.
Also fixed a couple of variables.

Bug: 11654773
Change-Id: I4c7684a562cd5877d18f67d4f848b8df07d0103b

Conflicts:
	core/base_rules.mk
2014-01-24 13:38:34 -08:00
Ying Wang ec6d6262ac Replace all references to LOCAL_GENERATED_SOURCES with my_generated_sources
Now the RS generated sources are only appended to my_generated_sources.

Bug: 11654773
Change-Id: If8dbf3c08fed0b9945dd32b8c809331c17c4bc85
2014-01-24 13:35:47 -08:00
Ying Wang 6ef6519170 Set up rules to build static libraries for TARGET_2ND_ARCH
The rules for the 2nd arch are set up in the second inclusion
of static_library_internal.mk.
libfoo of the 2nd arch will be built into
$(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/libfoo_intermediates/libfoo.a.

Bug: 11654773
Change-Id: I1d92733968fc442e9225b4df5bd1b551a81d89f7
2014-01-24 13:35:09 -08:00
Ying Wang 4587455075 Remove aprof support from the build system.
This reverts the commit 70dc3e1d.

Change-Id: I480b005579805d2608d05dac41e32bb44642e813
2014-01-14 14:26:05 -08:00
Ying Wang 7fff9a1a56 Define PRIVATE_TARGET_ variables for only target modules.
Change-Id: I12c54bfffd9acb78a61d1032a087a0edaf3bf12c
2014-01-09 14:39:41 -08:00
Logan Chien e6f65438a4 Allow clang to build host binaries.
Change-Id: I7e4f9dc6f69a97cfefdfa2ed55c5d7b8ad496da7
2014-01-07 14:49:20 +08:00
Andrew Hsieh 246daf755a resolved conflicts for merge of 2b5d2c55 to klp-dev-plus-aosp
Change-Id: Icd9d5eff3f9acba042c100f694309f902c9d56cf
2013-09-10 18:07:23 -07:00
Andrew Hsieh 906cb78168 Add "WITH_STATIC_ANALYZER=1 m/mm/mmm/mma/mmma ..."
The new option WITH_STATIC_ANALYZER=1 instructs build system to
run static analyzer via "clang --analyze" on a successful build.
If analyzer finds any issue, instruction to open report is displayed.
See http://clang-analyzer.llvm.org/scan-build.html for details.

WITH_STATIC_ANALYZER trumps WITH_SYNTAX_CHECK if both exist.

Project use lots of GCC extensions (eg. nested function) not supported
by clang may opt out by adding LOCAL_NO_STATIC_ANALYZER:=true

Change-Id: I9970560560bd52ce5f0fd7129c3488629627c735
2013-09-10 17:37:14 +08:00
Andrew Hsieh 129847526a resolved conflicts for merge of fcdf653a to klp-dev-plus-aosp
Change-Id: I1d831bbb4649b2ddc89cdfb71e3b76712bc6469e
2013-09-04 17:14:33 -07:00
Andrew Hsieh a62334edaf Merge "Add "WITH_SYNTAX_CHECK=1 make ..."" 2013-09-04 21:57:52 +00:00
Ying Wang 1be5fb675a am 25f39b2f: am 62cd88d0: Merge "FDO: Only support locally"
* commit '25f39b2fbe9dee8ec6c680569c22c71fce9e595c':
  FDO: Only support locally
2013-09-04 11:56:03 -07:00
Andrew Hsieh 6cea59a4b9 Add "WITH_SYNTAX_CHECK=1 make ..."
The new option WITH_SYNTAX_CHECK=1 instructs build system to invoke
"clang -fsyntax-only" to utilize clang's better diagnostics before calling
LOCAL_CC/LOCAL_CXX for code generation.  The compilation time is slightly
longer, and the generated object file should be the same as w/o WITH_SYNTAX_CHECK

Project use lots of GCC extensions (eg. nested function) not supported
by clang may opt out by adding LOCAL_NO_SYNTAX_CHECK:=true

Change-Id: I5689586788ef049bd967364f71f31f1e359bd121
2013-09-04 09:26:25 +08:00
synergydev 7c4674205c FDO: Only support locally
The issues:
  - The size increase from utilizing FDO is quite large while
    utilizing runtime profiles in build.
  - By default, FDO is utilized globally if the target arch variant
    profiles exist.
  - Not all modules can show statistical significance in
    performance comparison, yet still suffer the size increase.

The solution:
  - Only enable FDO locally with LOCAL_FDO_SUPPORT
    for modules which may benefit enough to justify the size
    tradeoff.

Solution notes:
  - I've noted statistical significance in libwebcore and libskia
    thus far from utilizing FDO.
  - Analysis included sunspider, drawcanvas benchmarks, as
    well as gooda analysis on both arm and x86
  - To support runtime profile generation in modules which have
    LOCAL_FDO_SUPPORT specified,
    BUILD_FDO_INSTRUMENTATION is still used. Otherwise,
    if the target arch variant profiles exist, FDO is utilized for
    specified modules.

Change-Id: I7e95266943ff47c7d82b02e6200fd09911d0bb57
2013-09-03 20:53:20 +00:00
Torne (Richard Coles) baa01faf1d am 4f30a507: Merge "Fix handling of .o files in LOCAL_GENERATED_SOURCES." into klp-dev
* commit '4f30a5076bea324b8224e4af4cfcf291f787ed4c':
  Fix handling of .o files in LOCAL_GENERATED_SOURCES.
2013-08-30 02:42:55 -07:00
Torne (Richard Coles) a5afbe8ac6 Fix handling of .o files in LOCAL_GENERATED_SOURCES.
Rule-generated .o files (in gen_o_objects) were being given a dependency
on everything in LOCAL_GENERATED_SOURCES (except for other .o files);
unfortunately this can still create cycles in cases where there are
explicit dependencies between entries in LOCAL_GENERATED_SOURCES.

Instead, make handling of generated .o files consistent with other
generated files (which don't automatically get any dependencies on other
generated files) by excluding them from the target side of the rule.

Change-Id: I3fb5652dc3d85012c179a03b81887d16a85ab3bf
2013-08-29 15:36:34 +01:00
Ying Wang 0634a437a3 am 3208b615: am fc8b6338: resolved conflicts for merge of d65a7da3 to jb-mr2-dev-plus-aosp
* commit '3208b615c5cde2b682c3bbbcd2bb064b14b57489':
  No need to filter out AndroidConfig.h for unbundled build
2013-08-15 14:42:57 -07:00
Ying Wang 3208b615c5 am fc8b6338: resolved conflicts for merge of d65a7da3 to jb-mr2-dev-plus-aosp
* commit 'fc8b6338510690f1f87c57b9d9c470e25fc48bcd':
  No need to filter out AndroidConfig.h for unbundled build
2013-08-15 14:34:09 -07:00
Ying Wang f4723fa49b No need to filter out AndroidConfig.h for unbundled build
for now we have all AndroidConfig.hs in the build project.

Change-Id: Id713fecba1378fad81688f5937f61c779b618ac2
2013-08-15 11:01:10 -07:00
Ying Wang 25d64bea75 am 285045bd: Support for LOCAL_HAL_STATIC_LIBRARIES
* commit '285045bd83548196aa3695423c6cd500ebe6d6c1':
  Support for LOCAL_HAL_STATIC_LIBRARIES
2013-08-13 14:41:55 -07:00
Ying Wang 285045bd83 Support for LOCAL_HAL_STATIC_LIBRARIES
Now you can have a board config variable BOARD_HAL_STATIC_LIBRARIES,
which is a list of board-specific HAL static library names with pattern
"lib<library_name>.<board_specific_suffix>". LOCAL_HAL_STATIC_LIBRARIES
is a list of "lib<library_name>" and any matched
BOARD_HAL_STATIC_LIBRARIES will be added to the LOCAL_STATIC_LIBRARIES;
if no match is found, lib<library_name>.default will be used.

Bug: 10262105
Change-Id: Ic89d8d417d1dd65a227e4187a157fd3b77c4af34
2013-08-13 13:48:04 -07:00
Ying Wang 0790dcfd3b am 2e45116d: am 515e0465: Merge "FDO: do not support host modules"
* commit '2e45116d3a9c1ab055dd7a6a93bb4ab79414c081':
  FDO: do not support host modules
2013-08-09 12:47:16 -07:00
synergydev 4a60576029 FDO: do not support host modules
Summary:
If built with BUILD_FDO_INSTRUMENT alone, host modules will fail at runtime (during build)
due to failing to create /data in most standard unix user permission cases. If the user does
have full permission to /, /data/profile/ will be created and profiles will be generated there.
Any file generation in the Android Build System should be kept to $OUT.

This commit fixes this bug.

Test Plan:
Build with BUILD_FDO_INSTRUMENT without additional configuration, and host modules will no longer generate profiles
at their runtime.
2013-08-05 02:44:37 -07:00
Mike Lockwood 051a1740eb Add support for WITHOUT_CLANG
Change-Id: I12e776e44c69649bca34c35eff2ee7c75cfe62cd
2013-06-14 10:52:50 -07:00
Ying Wang d6b1d61d84 Do vendor check on modules installed by LOCAL_SHARED_LIBRARIES
Since commit 6c86a1 we have split LOCAL_SHARED_LIBRARIES out of
LOCAL_REQUIRED_MODULES and the vendor check does no longer cover the
installed modules introduced by LOCAL_SHARED_LIBRARIES.
This change brings back the coverage.

Change-Id: Ie78692e48f173a3350792eb2fee8127ff9433caa
2013-04-15 17:41:55 -07:00