Commit Graph

4093 Commits

Author SHA1 Message Date
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
c4595868c4 Add global variable HOST_LIBRARY_PATH.
With multilib host build, the build system installs host
shared libraries to different directories depending on a
library's bitness:
- HOST_OUT_SHARED_LIBRARIES points to the library path of 64-bit;
- 2ND_HOST_OUT_SHARED_LIBRARIES points to the library path of 32-bit;
- If you don't care the bitness of the libraries and just want whatever
  version the librareies are built by default, use HOST_LIBRARY_PATH.

Bug:13751317
Change-Id:Id4c818941dc4ea35d795767c76f698529bd6aebb
2014-06-10 12:04:56 -07:00
Ying Wang
2713fcebba Switch to 32-bit-by-default host multilib build.
Also we don't need to force LLVM built from source, for we already force
LLVM to be built as 32-bit.

Bug: 13751317
Change-Id: Ifadf1988d28b60cb06316de50f5bdc1834f1acc0
2014-06-09 17:48:05 -07:00
Ying Wang
c02752473f Merge "build native tests for 32-bit and 64-bit" 2014-06-09 22:53:00 +00:00
Ying Wang
5ad17493cd Merge "Support .asm being compiled by yasm targeted for x86." 2014-06-09 21:43:56 +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
67ed25f3a6 Reenable ccache.
The previous commit 994c84fb virtually disabled ccache, due to the
deferred evaluation of CC_WRAPPER/CXX_WRAPPER.

Change-Id: Ie0d70a23a55190bd9b24b72edc9158b6976e1d5d
2014-06-06 11:18:04 -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
Tim Murray
e564c0cbd0 Merge "Switch name from tblgen -> llvm-tblgen for consistency with upstream tools." 2014-06-04 19:00:38 +00:00
Stephen Hines
5339640da6 Switch name from tblgen -> llvm-tblgen for consistency with upstream tools.
Change-Id: I7735fd88104ff95001dd5f88a1c387df9af993ad
2014-06-03 18:28:44 -07:00
Primiano Tucci
1d6506ca4b Merge "Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to the compiler." 2014-06-03 09:29:51 +00:00
Ying Wang
7f349dc968 am 40b7e342: Merge "Move sdk staging dir to a product-specific dir"
* commit '40b7e34240be756bbf1542b63eef6332024d067e':
  Move sdk staging dir to a product-specific dir
2014-06-03 01:22:51 +00:00
Ying Wang
d7af176199 Move sdk staging dir to a product-specific dir
So we can do incremental build across different SDK products.

Change-Id: If3f082e4b92d00e7ccda980610e1d967d44da622
2014-06-02 16:16:53 -07:00
Primiano Tucci
994c84fb40 Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to the compiler.
This is to make it possible to wrap the compiler invocations with
custom wrappers (e.g., distcc/goma) by setting the CC_WRAPPER,
CXX_WRAPPER, JAVAC_WRAPPER variables in the build environment (without
having to know in advance the path to the compiler)

Change-Id: Ide800c24f0c2ebbb1cfb358bd8f99ec8a9d41253
2014-06-02 20:12:57 +01:00
Stephen Hines
85e0dce5f4 am a8b65126: Merge "Add -shared to clang LDFLAGS."
* commit 'a8b65126cae5335d4c8b31fbf7700907fd2c48dd':
  Add -shared to clang LDFLAGS.
2014-05-30 23:04:37 +00:00
Stephen Hines
a8b65126ca Merge "Add -shared to clang LDFLAGS." 2014-05-30 22:59:48 +00:00
Nick Kralevich
329988c277 am a42e0f50: Merge "arm64: restore relro/now"
* commit 'a42e0f50162721bc54c113ef1ed3058cfb38ae67':
  arm64: restore relro/now
2014-05-30 22:56:11 +00:00
Nick Kralevich
45545761d2 arm64: restore relro/now
The bug which required this option has been fixed.

Bug: 11434996
Change-Id: I7ab7e2e8ba7b993281902832d01b3ee3ba9e06ef
2014-05-30 15:46:40 -07:00
Nick Kralevich
1df5b37b5b am 61cf065a: Merge "Use a separate policy for the recovery image."
* commit '61cf065ae9247a200208dc7df0234e03caff3605':
  Use a separate policy for the recovery image.
2014-05-30 18:23:41 +00:00
Nick Kralevich
61cf065ae9 Merge "Use a separate policy for the recovery image." 2014-05-30 18:20:48 +00:00
Andrew Hsieh
dc41aa3254 am 5c2c70de: Merge "Add -latomic to all target builds"
* commit '5c2c70de88a6c126460c88cfa64561d7cb2cc030':
  Add -latomic to all target builds
2014-05-30 07:46:14 +00:00
Andrew Hsieh
5c2c70de88 Merge "Add -latomic to all target builds" 2014-05-30 07:44:02 +00:00
Tim Murray
0f9276d4ba Add -shared to clang LDFLAGS.
TOT clang doesn't do the right thing with regards to -pie without this.

Change-Id: Ic14cfb25d96359eb18899c09ebaf1d311e937d01
2014-05-29 17:54:07 -07:00
Stephen Smalley
5520f28653 Use a separate policy for the recovery image.
Only the recovery image needs to include the recovery domain
in its policy, so create a separate policy for the recovery image
and replace the root policy with this one when building the
recovery image.

Depends on the change with the same Change-Id in external/sepolicy.

Change-Id: I444107f9821eabf4164ba07a44d03bd71e719989
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2014-05-29 16:42:49 -04:00
Brian Carlstrom
ab6f84e3d1 am e0df9d95: Merge "Only enable WITH_DEXPREOPT by default for libdvm.so"
* commit 'e0df9d9577c19975adbf6e5a3489946c8f91ad1e':
  Only enable WITH_DEXPREOPT by default for libdvm.so
2014-05-29 19:40:02 +00:00
Andrew Hsieh
4c952d72b7 Add -latomic to all target builds
Projects using stdatomic.h needs libatomic.a in case compiler can't
expand all __atomic* intrinsics. eg, __atomic_is_lock_free in
armeabi/mips.

Adding libatomic.a globally makes more sense than adding
"LOCAL_LDLIB += -latomic " in each project including <stdatomic.h>.
Projects don't need atomic operations won't get redundant DT_NEEDED
entry because libatomic.a is not a shared library.

Change-Id: I81dbf524544c848e667e18ab5eeabff75b5063ef
2014-05-29 11:40:46 -07:00
Brian Carlstrom
3f5ff08dc5 Only enable WITH_DEXPREOPT by default for libdvm.so
Bug: 14298175

(cherry picked from commit 9f8e214a91)

Change-Id: I96ba4e198b7bc1b7d9a502c432590f41c87d05c4
2014-05-29 09:38:04 -07:00
Ying Wang
d3ddfdf847 am b3bed595: Merge "Add a dummy build recipe for generated RS cpp files."
* commit 'b3bed5952b44e69dc9e1988beb4092303084ef61':
  Add a dummy build recipe for generated RS cpp files.
2014-05-28 23:38:46 +00:00
Ying Wang
b3bed5952b Merge "Add a dummy build recipe for generated RS cpp files." 2014-05-28 23:33:35 +00:00
Ying Wang
d40776aa88 am 65afd710: Merge "Add a dummy build recipe for the proto generated header files"
* commit '65afd710a592390671beb5da15a87b127a5f2125':
  Add a dummy build recipe for the proto generated header files
2014-05-28 23:28:58 +00:00
Ying Wang
65afd710a5 Merge "Add a dummy build recipe for the proto generated header files" 2014-05-28 23:26:01 +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
Brian Carlstrom
ed97938caa am 7df64f7c: Merge "Move to dalvik.vm.lib.2 to force default to libart"
* commit '7df64f7c0d933e3a5f18e0d15402f62b819ef8f0':
  Move to dalvik.vm.lib.2 to force default to libart
2014-05-28 22:31:44 +00:00
Brian Carlstrom
31f5db27c6 Move to dalvik.vm.lib.2 to force default to libart
Bug: 14298175

(cherry picked from commit 7e127ebe0b)

Change-Id: I0a94e01f46fcc074d8c8fd1e5558fb764ab47361
2014-05-28 14:49:34 -07:00
Ying Wang
8898f2e261 am f4999d3b: Merge "Fix pattern rules for for libdvm."
* commit 'f4999d3b8a0d09e790767176c543df1c2ad53c5a':
  Fix pattern rules for $(installed_odex) for libdvm.
2014-05-28 21:28:42 +00:00
Ying Wang
994c226b91 Fix pattern rules for $(installed_odex) for libdvm.
When the VM is libdvm, we don't put the odex files in an arch specific
subdirectory. The previous pattern rules don't work because of the extra
"/". With this change, % evaluates to empty string when it's built for
libdvm; % evaluates to "<arch_name>/" when it's built for libart.
Also removed use of $(create-empty-package), which may causes file name
(dummy) conflict with the rule of package.apk.

Bug: 15311527
Change-Id: I9f9089bc1896b78c1f47834afdb28a3a51d34480
2014-05-28 14:23:26 -07:00
Ying Wang
7e4c73d588 am aae7e3fa: Merge "Support LOCAL_CLANG with arch/bit suffix."
* commit 'aae7e3fa66ecf6bf796ba9a107d8f066498ab10b':
  Support LOCAL_CLANG with arch/bit suffix.
2014-05-28 16:14:54 +00: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
Dan Albert
a5b0b1303d am 3805f619: Merge "Revert "Fix for duplicate names in whole static libs""
* commit '3805f619156163eab8ad92fd51b4a431be1287bd':
  Revert "Fix for duplicate names in whole static libs"
2014-05-27 19:44:19 +00:00
Dan Albert
3805f61915 Merge "Revert "Fix for duplicate names in whole static libs"" 2014-05-27 19:41:46 +00:00
Dan Albert
3c12b5c02b Revert "Fix for duplicate names in whole static libs"
This reverts commit 0e5ce8be34.

Change-Id: I68b776cb915fd7be8299ddb2899907046dddadf3
2014-05-27 19:30:36 +00:00
Dan Albert
212772f632 am 31101623: Merge "Fix for duplicate names in whole static libs"
* commit '31101623b3e621436f6b46f49242ed4642d86164':
  Fix for duplicate names in whole static libs
2014-05-27 18:26:38 +00:00
Dan Albert
31101623b3 Merge "Fix for duplicate names in whole static libs" 2014-05-27 18:23:26 +00:00
Ying Wang
292673094c am 294301bb: Merge "Exclude libstdc++ and libgcc if libc++ is requested."
* commit '294301bb34b62d51305d70780ac031a905fa9efe':
  Exclude libstdc++ and libgcc if libc++ is requested.
2014-05-27 17:52:10 +00:00
Dan Albert
0e5ce8be34 Fix for duplicate names in whole static libs
_extract-and-include-single-(host|target)-whole-static-lib was written such that
only the first file of a given name would be extracted and included into the new
library. This patch iterates over each identically named archive member,
extracts them individually, and adds them to the new archive.

Bug: 15110069
Change-Id: Ia08c7be6f40bfc8403908a8808898ada479099b1
2014-05-23 18:23:47 -07: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
cdcb6926d4 am 6cb69bd4: Merge "Add HOST_PREFER_32_BIT to support 32-bit-by-default multilib build"
* commit '6cb69bd4f20ac3ae3a7d5b5cc323c4480cf8ef75':
  Add HOST_PREFER_32_BIT to support 32-bit-by-default multilib build
2014-05-23 17:44:31 +00:00
Ying Wang
6cb69bd4f2 Merge "Add HOST_PREFER_32_BIT to support 32-bit-by-default multilib build" 2014-05-23 17:39:40 +00:00
Colin Cross
828b518377 am e45c8607: Merge changes Ibc943b75,Ib4ccf373,I30ff439b,I7bde0130
* commit 'e45c8607b3e2cf7a428a91898aea2752a54389a1':
  set a prebuilt directory name for the 2nd arch
  add vendor directories to gdb shared library search path
  add 2nd arch gcc to the path
  fix paths when 2nd arch gcc is a different version
2014-05-22 19:31:26 +00:00