Commit graph

275 commits

Author SHA1 Message Date
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
Ying Wang
fea1ffeff3 Get rid of the liblog hack.
Bug: 8580410
Change-Id: I3ece860673eb52a2db1421db4492c9b1807dda6e
2013-04-10 17:34:57 -07:00
Ying Wang
c04a828222 Revert "Get rid of the liblog hack."
This reverts commit 7636578729

Change-Id: I32f2acce5f99cb97eae986dfeba6d5d25378aefa
2013-04-10 22:11:43 +00:00
Ying Wang
7636578729 Get rid of the liblog hack.
Bug: 8580410
Change-Id: I4b437d10522ee66c7883faacfaf7e30abede394c
2013-04-09 23:27:57 -07:00
Ying Wang
cd3190a9f5 Revert "Add liblog"
This reverts commit 8722580d90

Change-Id: Iafdbb7f540a53ddc9dc2e21c0afddb62c44c4af8
2013-04-10 05:32:21 +00:00
Ying Wang
8722580d90 Add liblog
Bug: 8580410
Change-Id: I45e17b786b8d221a071b5de2432bb1367e245fb4
2013-04-09 21:41:48 -07:00
Torne (Richard Coles)
aace2024d7 Support build rules which generate .o files.
webviewchromium has some build rules which use a custom tool to create
.o files from other input (i.e. they are not prebuilt and so can't be
included in LOCAL_PREBUILT_OBJ_FILES). Support adding .o files to
LOCAL_GENERATED_SOURCES and doing the right thing with them (including
them in the static/dynamic library or executable being built).

Bug: 7714333

Change-Id: I3b1d29eeff30aebeafe33398f9bef2eb6972d997
2013-03-05 10:35:57 +00:00
Ying Wang
9485a57bb2 Untwist the target/host shared library dependencies.
Before this, if there are duplicate module names in both the host and
target spaces, LOCAL_SHARED_LIBRARIES results in mixed dependencies.

Bug: 7026946
Change-Id: I5407e3d078a8903c94978cc6d3e256851c52340f
2013-02-22 14:32:30 -08:00
Ying Wang
9c3aa053f5 Order-only deps on LOCAL_C/CXX and BCC_COMPAT
So if the host binaries are updated, we don't run the rules again.
Bug: 8234097

Change-Id: I6c888d2b3ae39db1f91411da630ac098273f139d
2013-02-20 13:34:05 -08:00
Shih-wei Liao
c8dfc169c8 Fix libcompiler-rt. Use the official name libcompiler_rt.
Rename libcompiler-rt to libcompiler_rt.

Change-Id: I62e77d4dc83458bc238bd8320b70ddb7efe0dd12
2013-02-07 13:46:29 -08:00
Tim Murray
a7aa8005d2 Add support for RS in C++.
Change-Id: Ib8008d6301584bd0a2cd91c4c1294e0df8ac3b73
2012-11-01 15:07:27 -07:00
Mike Lockwood
0cbacc4b21 am 86e2fd92: am daf5e22d: Add new embedded target for a super minimal android build
* commit '86e2fd9215faaffed47ab0373b2955d9a1892113':
  Add new embedded target for a super minimal android build
2012-10-26 08:47:40 -07:00
Mike Lockwood
daf5e22dba Add new embedded target for a super minimal android build
Remove obsolete BUILD_TINY_ANDROID

Change-Id: Ic0f3a5b3250ea80529f5099653068f118a13b12e
2012-10-25 15:28:37 -07:00
Ying Wang
91fd1231c3 Support to build executables against the NDK
Use "LOCAL_SDK_VERSION := <number>" to build against the NDK when you
include $(BUILD_EXECUTABLE).

Bug: 7170098
Change-Id: I4cebeae3355e79a4d2f2f5549ef0613ced77e3f0
2012-10-08 14:12:41 -07:00
Ian Rogers
e88d5af2ab am 318330dd: am 9acbbf12: am 76a6dc3a: Fix common typo in comments, warning and error messages.
* commit '318330dd920977733f20eeda338d3c36892373f6':
  Fix common typo in comments, warning and error messages.
2012-10-01 17:28:18 -07:00
Ian Rogers
76a6dc3a19 Fix common typo in comments, warning and error messages.
s/can not/cannot/g

Change-Id: I1bac31157732666deb46f6f20389ff539977ffb9
2012-10-01 16:36:23 -07:00
Ying Wang
c6ffc00b9f Support to build executables against the NDK
Use "LOCAL_SDK_VERSION := <number>" to build against the NDK when you
include $(BUILD_EXECUTABLE).

Bug: 7170098
Change-Id: I4cebeae3355e79a4d2f2f5549ef0613ced77e3f0
2012-09-25 18:33:53 -07:00
Ying Wang
3eea132abf am 88ed4fb1: am 732b2ba7: Merge "Don\'t include system/core/include/arch/<arch>/Android.mk for apps-only build." into jb-mr1-dev
* commit '88ed4fb1f3456d6fec4df87a56d66a5c58e2f0d8':
  Don't include system/core/include/arch/<arch>/Android.mk for apps-only build.
2012-08-16 16:53:39 -07:00
Ying Wang
da4bf42514 Don't include system/core/include/arch/<arch>/Android.mk for apps-only build.
Bug: 6994483
Change-Id: I76c4d96264cf94a79d59fdeb52bb37c07a9458dd
2012-08-16 16:45:01 -07:00
Ying Wang
7429e21c2e Add LOCAL_CONLYFLAGS.
To pass compiler flags
LOCAL_CFLAGS: to both C and C++ files;
LOCAL_CONLYFLAGS: to only C files but not C++ files;
LOCAL_CPPFLAGS: to only C++ file.
LOCAL_CPPFLAGS and LOCAL_CONLYFLAGS can override flags in LOCAL_CFLAGS.

Bug: 6967573
Change-Id: I88d9de0980e451b94bc7ae8c741ea2030eada3e1
2012-08-15 11:02:28 -07:00
Ying Wang
27d51bf6d3 Force out LOCAL_NDK_VERSION.
Change-Id: I0a9f1a630ef2019bed38d420525eac9510b09798
2012-08-14 13:06:22 -07:00
Ying Wang
54fdb473b6 Retire LOCAL_NDK_VERSION.
We are now unifying the NDK versions of unbundled native code to always
use the latest NDK.
We don't need the variable LOCAL_NDK_VERSION now.
To build native code with NDK, you need set just LOCAL_SDK_VERSION.

Bug: 6932421
Change-Id: I86f05a264249cda6bae97b4b1616f03700cd9dfa
2012-08-14 11:58:13 -07:00
Ying Wang
7f8d0ba6bd Adopt the new prebuilts/ndk/<number> paths.
Bug: 6932421
Change-Id: Iba7200aacef2201001f92c6ffa020881f0b528ea
2012-08-14 11:55:46 -07:00
Ying Wang
fe1bfe7dc9 Force out LOCAL_NDK_VERSION.
Change-Id: I0a9f1a630ef2019bed38d420525eac9510b09798
2012-08-14 11:08:03 -07:00
Ying Wang
848020f22a Retire LOCAL_NDK_VERSION.
We are now unifying the NDK versions of unbundled native code to always
use the latest NDK.
We don't need the variable LOCAL_NDK_VERSION now.
To build native code with NDK, you need set just LOCAL_SDK_VERSION.

Bug: 6932421
Change-Id: I86f05a264249cda6bae97b4b1616f03700cd9dfa
2012-08-14 10:16:02 -07:00
Ying Wang
239d0495de Merge "Don't pass LOCAL_CFLAGS when compiling assembly code." 2012-08-11 13:18:21 -07:00
Ying Wang
65d785274e Don't pass LOCAL_CFLAGS when compiling assembly code.
Bug: 6967574
Change-Id: Id428884dde3026c32fa6abcabbc88d188b7e9a38
2012-08-10 18:10:15 -07:00
Ying Wang
f0dd8584fd Adopt the new prebuilts/ndk/<number> paths.
Bug: 6932421
Change-Id: Iba7200aacef2201001f92c6ffa020881f0b528ea
2012-08-10 10:57:37 -07:00
Stephen Hines
bec4a4b980 Disable libcompiler-rt-extras for BUILD_TINY_ANDROID.
Change-Id: I05aa9e43f987ef422d98f43b3734dfbc261feb4b
2012-06-26 16:38:21 -07:00
Jean-Baptiste Queru
471d6d8b11 am 4a65f812: am 6e587f53: Merge "Profiling use aprof, enable by LOCAL_ENABLE_APROF or LOCAL_ENABLE_APROF_JNI"
* commit '4a65f812373e1ecfa6e7058d635e998429a4cf17':
  Profiling use aprof, enable by LOCAL_ENABLE_APROF or LOCAL_ENABLE_APROF_JNI
2012-06-22 14:32:49 -07:00
Jean-Baptiste Queru
4a65f81237 am 6e587f53: Merge "Profiling use aprof, enable by LOCAL_ENABLE_APROF or LOCAL_ENABLE_APROF_JNI"
* commit '6e587f53152127370c6b45204f6529dd7b0ce32a':
  Profiling use aprof, enable by LOCAL_ENABLE_APROF or LOCAL_ENABLE_APROF_JNI
2012-06-22 14:31:05 -07:00
Kito Cheng
70dc3e1d3d Profiling use aprof, enable by LOCAL_ENABLE_APROF or LOCAL_ENABLE_APROF_JNI
Change-Id: Ia95dc7318e17c0804867b22e239edccc5cbec0af
2012-06-15 15:16:50 +08:00
Ying Wang
022a7b32ef Fix arm mode for the generated protobuf code.
Change-Id: Ic644ab9e1b83d9616dd9ca93362805cdd17f36a7
2012-06-13 11:38:10 -07:00
Ying Wang
8e53708ab1 Don't add COMPILER_RT_CONFIG_EXTRA_STATIC_LIBRARIES if we build against NDK.
Change-Id: I732be02bb4b9ee7a2d11ed89f409487f0bc37d0f
2012-06-12 15:52:58 -07:00
Stephen Hines
c72f39664d EXPERIMENTAL: Add libcompiler-rt-extras.a to device builds.
Change-Id: I463217aef573a28069469514ad94cd85a7f38bea
2012-06-12 13:34:50 -07:00
Ying Wang
68f1c77a8d Make export_includes depend on the module's definition makefile.
Bug: 6383397

Note that LOCAL_MODULE_MAKEFILE is calculated in the macro my-dir,
which must be called at the beginning of your Android.mk to calculate
 LOCAL_PATH.

Change-Id: I7aa079e37253fbda25ffb85c2e5bbf0663340e27
2012-04-23 21:29:18 -07:00
Ying Wang
616e596385 Write out export_includes whenever the module is built.
Bug: 6362268
Change-Id: If872cf8fe597a02e6ca740a181cea85f486df98e
2012-04-18 17:35:55 -07:00
Ying Wang
c32af65886 Revert "Write out export_includes whenever the module is built."
This reverts commit 40c34f3778
2012-04-18 16:55:07 -07:00
Ying Wang
40c34f3778 Write out export_includes whenever the module is built.
Bug: 6362268
Change-Id: Ic5d028c108423c694736a06c05ec13093d42f1b8
2012-04-18 16:30:17 -07:00
Evgeniy Stepanov
f50f4c5299 More Clang tweaks to the build system.
Adds arm_neon.h to the include path when building with Clang.
Filters out 3 additional compiler flags when building with Clang.
Filters out unsupported flags from TARGET_(arm|thumb)_CFLAGS, as well.

Change-Id: I5e23a95356e0b10c31c9aa3cb4905f6a674709e4
2012-04-10 16:33:37 +04:00
Ying Wang
4394aaef7e Merge "Build system support to export include paths" 2012-04-09 12:43:09 -07:00
Evgeniy Stepanov
6cc9c06854 Add support for building with AddressSanitizer.
Change-Id: I559d21bbeb9f869f51e48ce18247ceaf766768b4
2012-04-03 14:59:01 +04:00
Evgeniy Stepanov
a7095e9192 Include Clang headers from ".../include" directory.
Do it with -isystem instead of -I.

Change-Id: I70fd55772e59a35f0b5a56816d61120f4921f4a4
2012-04-03 14:58:57 +04:00
Narayan Kamath
2109487a29 Changes to C++ protocol buffer compilation.
Generate C++ code for all .proto files before attempting
to compile them. This takes care of the case where generated
.pb.cc files include other header / c++ files due to proto
imports in the original .proto files.

Change-Id: I26513842618fd31f0b33a3f10df2a5e556094515
2012-04-02 18:39:31 +01:00
Colin Cross
9ad36ef929 Remove base_intermediates from LOCAL_C_INCLUDES
base_intermediates is not used anywhere in the main build system,
and should not be part of LOCAL_C_INCLUDES.  It is used by
external/webkit/Android.mk as a local variable, which causes
the libwebcore_intermediates directory to be added to the include
path for every module.

Change-Id: Iddeee880add4b6f694a15d1900c588e1c547b9df
2012-03-30 19:32:37 -07:00
Ying Wang
dfbe79b803 Don't expose the compiler dependency.
Change-Id: Ia472eaab3e8e883a32e8b441a2480562db278e45
2012-03-22 11:26:22 -07:00
Evgeniy Stepanov
b71e2df30a Add LOCAL_CLANG variable to switch C/C++ build environment to Clang.
Change-Id: I8ca1c24f51aa5546ac9618d31566a52e4fdb1436

Conflicts:

	core/clear_vars.mk
2012-03-22 07:31:27 -07:00
Steve Block
d14d3b4e64 Add a comment about publishing licenses for third-party code
Change-Id: I21bee0bb78ab42b4f7b6a938f94653c7e21e8503
2012-03-21 17:05:11 +00:00
Steve Block
495e58502a Revert "Remove unused notice_files target"
This broke the PRODUCT-sdk-(win_)sdk target of SDK builds

This reverts commit 620a5270fc.

Change-Id: I81afe68ae98b5daac5fe136ec8d04f6fba5af9b4
2012-02-29 20:09:09 +00:00
Steve Block
620a5270fc Remove unused notice_files target
The notice_files target generates $(TARGET_OUT_INTERMEDIATES)/NOTICE.txt and
$(TARGET_OUT_INTERMEDIATES)/NOTICE.html. The former is not needed and the
latter is an explicit dependency of $(TARGET_OUT_INTERMEDIATES)/NOTICE.html.gz.
We can therefore remove the target and the logic to generate NOTICE.txt.

Change-Id: I6179c049bebe590c7298e8be0a30e30265423468
2012-02-29 16:00:58 +00:00
Ying Wang
5f074803fb Build system support to export include paths
Bug: 5573756
With this change, we can set LOCAL_EXPORT_C_INCLUDE_DIRS in the module
definition to export include dir paths.
Paths in LOCAL_EXPORT_C_INCLUDE_DIRS should be relative to the top dir
of the source tree.
If a library (shared or static) exports some include paths, any module
using it will import the include paths and add them to the compiler
command line.

Change-Id: I49aabc589d2cf214044d13ccd5532ef68209adf0
2011-11-17 10:52:32 -08:00
Ying Wang
704c0c9fca Use LOCAL_REQUIRED_MODULES to add dependency of installed shared libraries
Bug: 5200343
Before this change the build system assumes that shared libraries will
be installed to $(TARGET_SHARED_LIBRARIES). That's not true if the
module uses custom LOCAL_MODULE_PATH.
With this change we defer the evaluation of the dependency to after all
Android.mks are loaded and all modules have their installed path
determined.

Change-Id: Ib6628ed44154a90e8668d31691fbbac67125be6c
2011-09-15 14:05:49 -07:00
Ying Wang
d9020c2e9a Add ABI specific include path for NDK.
Change-Id: I37a935126b9a1e544fc5a7471cf6ca224fc89cf3
2011-09-07 14:31:47 -07:00
Ying Wang
a7d9ca371e Use the LOCAL_* as dependency.
PRIVATE_* should be used only in the build commands.

Change-Id: Ie1d8db7c78012a8615b893d3ef3be893da7466f4
2011-07-13 14:29:33 -07:00
Jeff Brown
e33ba4c49e Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: Ie814f4c8d3aa1e7cc7f5735822ab25542f36cf62
2011-07-11 23:51:37 -07:00
Doug Kwan
e3c3c6d4fe Allow per module RTTI setting. This fixes a bug in previous check-ins.
Change-Id: I5fcac192a7945720fd7667f7497078d310370bc5
2011-06-07 10:55:48 -07:00
Doug Kwan
9a8ecf970b Allow enabling RTTI in a module.
Change-Id: Ie8ce920e3ccb7e53bdf917d8ac5a386df3e7836a
2011-05-10 21:50:58 -07:00
Ying Wang
fcdabd4bdb Add LOCAL_GROUP_STATIC_LIBRARIES
Set LOCAL_GROUP_STATIC_LIBRARIES := true to group the static libraries,
in case we need gcc flags "-Wl,--start-group" and "-Wl,--end-group" to
fix circular references.

Change-Id: I03c4901670112fcdd2bb0fe660b6924e5776fcf8
2011-04-25 14:22:41 -07:00
Ying Wang
cce4c973e4 Support stl variants when LOCAL_NDK_VERSION is set.
LOCAL_NDK_STL_VARIANT can be set to system, stlport_static, stlport_shared
or gnustl_static. It defaults to system.

Change-Id: I2840d30ff732a00bc0ea70eab8a8179aea0abbdf
2011-03-04 10:48:28 -08:00
Ying Wang
2f76c6d11b Add stl include path if LOCAL_NDK_VERSION is set
Since NDKr5 the stl headers reside in a separate directory.

Change-Id: I98f37b593560a1a2a55418f8ba413ca842ed37ef
2011-02-23 10:07:03 -08:00
David 'Digit' Turner
d6b413a904 am 3be47af9: am b3f59bde: am 86a90364: Merge "core/binary.mk: Add missing Objective-C objects to the build."
* commit '3be47af9491b7fd93b74122cb7f979f2b86c1634':
  core/binary.mk: Add missing Objective-C objects to the build.
2011-02-15 11:03:57 -08:00
David 'Digit' Turner
5ca286d58b core/binary.mk: Add missing Objective-C objects to the build.
For some reason, all_objects was not listing objects generated from
objective-C sources. We need these for the emulator (which builds its
own version of SDL which uses Quartz on OS X).

+ Fix a typo in transform-host-m-to-o definition.

This also explains why https://review.source.android.com/#change,21074
had to be reverted, since it gets rid of the prebuilt SDL libraries when
building the emulator.

Change-Id: I173811cf11cdb5b045073aade59364236145bc77
2011-02-11 17:52:52 +01:00
Jeff Brown
703e7c6d50 Build system tweaks for Valgrind.
Added LOCAL_NO_CRT to enable building executables that do not link
to the C runtime library.

Removed support for LOCAL_MODULE_SUBDIR since it was broken
and unused.  (Was going to use it but ended up using LOCAL_MODULE_PATH
instead.)

Change-Id: I3b6f5ab7e5ae6aaa7119899adccece2b4ab1cbb3
2011-02-08 16:38:56 -08:00
Jean-Baptiste Queru
c61d4c91b6 Extra protobuf-related support
Change-Id: I375d32f0bcb695ccb0603743133034941d584163
2011-01-27 13:49:30 -08:00