Commit Graph

4280 Commits

Author SHA1 Message Date
Dan Albert b49987e2f8 Never use stlport on the host.
LOCAL_CXX_STL := stlport should just use the default STL on the host.

Change-Id: Iede1b2d8884e237a10e000e5835addb768c8f78d
2014-10-16 09:53:51 -07:00
Dan Albert e1b17e7ef5 Link compiler-rt in the correct order.
The compiler run-time library should always be the _last_ thing linked
when building static executables. This was being done correctly for
libgcc, but not when using compiler-rt.

Change-Id: I0689dc35f55caad2fe74c0cbb4cbe3008ded349a
2014-10-14 10:45:33 -07:00
Elliott Hughes 165fdf4204 Merge "Remove "-mstackrealign" option from all x86 builds." 2014-10-13 22:35:59 +00:00
Alexander Ivchenko ae2d47a47f Remove "-mstackrealign" option from all x86 builds.
For ndk docs change, please refer to:
https://android-review.googlesource.com/#/c/110100/

Change-Id: I8428e7a979eb02441066aeeee43ce693d4d0dc8d
Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
2014-10-13 19:08:01 +04:00
Ying Wang f1794738b1 Merge "Introduce per-product per-module dex-preopt config" 2014-10-10 02:13:10 +00:00
Chih-Hung Hsieh 29373be81d Merge "Add -fPIC as default Clang mips ASFLAGS." 2014-10-09 17:17:08 +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
Chih-Hung Hsieh ce6300a5db Add -fPIC as default Clang mips ASFLAGS.
For mips target, gcc passes -KPIC to assembler by default,
but clang passes -KPIC only if -fPIC or -fpic is given.

BUG: 17895505
Change-Id: I7803adaf8ad7b40c6473872b67f4e0b4c502b38a
2014-10-08 15:41:29 -07:00
Ying Wang 20ebd2ef08 Introduce per-product per-module dex-preopt config
- Added LOCAL_DEX_PREOPT_FLAGS to pass extra flags to dex2oat.
- Added macro add-product-dex-preopt-module-config to specify almost
  arbitrary dex-preopt config/flags to modules in product
  configuration:
  $(call \
  add-product-dex-preopt-module-config,<module_name_list>,<config_or_flags>)
  How <config_or_flags> is interpreted is decided by
  dex_preopt_odex_install.mk and dex2oat. For now if it's "disable" we
  disable dexpreopt for the given modules; otherwise pass it to dex2oat as
  command line flags.
- If there are multiple configs for the same module in the product
  inheritance, the first takes precedence.
- Added PRODUCT_DEX_PREOPT_DEFAULT_FLAGS so you can specify default
  dex2oat flags in product configuration.
- Added PRODUCT_DEX_PREOPT_BOOT_FLAGS to specify flags of building boot.oat.

Bug: 17791867
Change-Id: I1b2955e8e51039e94d1ff43a3265a8d03598632c
2014-10-08 10:11:17 -07: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
Nicolas Geoffray 4c0c390f30 Fix typo.
Change-Id: I738ad878a2961d118b5a89bf7d434606df2fad92
2014-10-07 11:17:09 +01:00
Nicolas Geoffray 4af753c1d1 Merge "Make which dex2oat version to use configurable." 2014-10-07 09:38:18 +00:00
Nicolas Geoffray 75c08b2118 Make which dex2oat version to use configurable.
Change-Id: Ic13cf6f9dfb117193a5101781945c501d138955c
2014-10-07 08:30:18 +00:00
Dan Albert 642c81ea45 Merge "Stash original values of CC and CXX." 2014-10-06 18:33:59 +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
Dan Albert ec1b90f81f Stash original values of CC and CXX.
This way we can still access the real compiler as opposed to a wrapped
one.

Change-Id: I17ba30416a3eb8eda056c67faaa8b5957e70caea
2014-10-06 10:43:29 -07:00
Dan Albert 2251ea40ba Remove HAVE_(GNU|BSD)_QSORT_R from AndroidConfig.h.
Change-Id: If2018529a6c067b63e1a59c16c911d63ec2ebbf4
2014-10-01 10:12:25 -07:00
Tim Murray 35dd358cc4 Merge "Update prebuilt RS clcore location." 2014-09-30 22:34:59 +00:00
Tim Murray 00fa757d7d Update prebuilt RS clcore location.
Change-Id: Iebf255d7cc093b74e08b1f1378d9b397fd9dd3b9
2014-09-30 15:08:03 -07:00
Chih-Hung Hsieh 78b6cea65e Clear all LOCAL_CLANG_*FLAGS*.
Although only some of these flags will be used for some
targets or hosts, they must all be cleared to avoid carrying
over from one project to another.

BUG: 17677366
Change-Id: I6d26fa7e5bf2ff11758728810d4874f3759aebe7
2014-09-30 21:50:58 +00:00
Ying Wang 8260562434 java_alternative_checked_module takes precedence.
java_alternative_checked_module takes precedence over
LOCAL_BUILT_MODULE.

Change-Id: I84f0d65dbc05f4686817aa835d003eb0101af146
2014-09-29 17:17:00 -07:00
Ying Wang 6c1d1cc712 Don't modify LOCAL_CHECKED_MODULE.
Use a temporary variable my_checked_module instead,
so that we don't override the 2nd_arch's checked module with the
1st_arch's in multilib build.
Note that by default we checkbuild 2nd_arch only for host modules,
but not for target modules.
We enable multlib for target modules by default, it would take too
much time to checkbuild for both archs. For 32-bit modules actually we
can checkbuild a 32-bit product.

Change-Id: I0a5ba75699225b7641442673483731a8fd360d61
2014-09-29 21:59:55 +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
Dan Albert 683c392e07 Fix detection of C++ STL for tests.
Target tests weren't approrpiately using the libc++ gtest for
libc++_static, and the hosts tests were still using the old check.

Change-Id: I13813d5f09673b144b2dfead93eb81cb4bae0e34
2014-09-26 15:45:33 -07:00
Stephen Hines 670018fdae Merge "Remove unnecessary CLANG_CONFIG_EXTRA_*_C_INCLUDES variables." 2014-09-26 17:53:34 +00:00
Stephen Hines 3cf2057079 Merge "Use new variable LLVM_PREBUILTS_VERSION to simplify path construction." 2014-09-26 17:53:22 +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
Ian Rogers 850a4cb72b Test __GLIBC__ is defined before using its value.
Avoids -Wundef warning.

Change-Id: I52d8223500fe31cdf7023e32e96df75e33eb2f7e
2014-09-25 17:34:40 -07:00
Lai Wei-Chih 8affa161fe Use new variable LLVM_PREBUILTS_VERSION to simplify path construction.
This removes the hard-coded '3.5' in the various paths and makes switching to
a new toolchain easier from the command line (m LLVM_PREBUILTS_VERSION=3.6).

Change-Id: I46b10eb2fc177a03528de9c7b433f8647f632081
2014-09-24 14:59:00 -07:00
Dan Albert 3302924802 Merge "Add option for generating coverage info." 2014-09-24 16:03:27 +00: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
Elliott Hughes 8fe8dc83e3 Remove unused HAVE_OFF64_T.
Change-Id: I24acf64efcd0fd84d5dda342d4c4293fa59fae1a
2014-09-23 13:36:01 -07:00
Elliott Hughes 76ab00f189 Remove the unused IPC macros.
There are still a couple of references to HAVE_WIN32_IPC to be dealt with
later.

Change-Id: Id131fbf2e96d4c1c7bb98629779045375bd5f85f
2014-09-22 20:43:32 -07:00
Todd Poynor 9c226d1f9e build: remove HAVE_OOM_ADJ
This define is no longer used.

Change-Id: I6615d6e4aa09f71b7c4c435ccb83a07bba91b6dc
2014-09-22 18:47:48 -07:00
Ying Wang b69b7d7fba Merge "Fix recovery image build for 32p" 2014-09-20 00:38:08 +00:00
Elliott Hughes e2f5470606 Merge "Remove unused HAVE_EPOLL." 2014-09-19 22:54:17 +00:00
Elliott Hughes 67839a58be Remove unused HAVE_EPOLL.
The only people who appear to be using this are actually using their own
one.

Change-Id: I349ed4ce3874c1b2f9bad56c93c8ccee88ae9432
2014-09-19 15:12:56 -07:00
Brian Carlstrom b97b1e5940 Merge "Enable dalvik.vm.lockprof.threshold on eng builds in addition to userdebug" 2014-09-19 21:41:01 +00:00
Brian Carlstrom 85d56eba99 Enable dalvik.vm.lockprof.threshold on eng builds in addition to userdebug
Bug: 17572009
Change-Id: I0cfc1aa2dd93a8dac21d23d813801c74ed37079a
2014-09-19 11:30:27 -07: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
Bruce Beare 7c02ec91e8 Fix recovery image build for 32p
When building for 32p, we need to be explicit that we wish to build the 32bit
version of the binaries that will be placed in the recovery image. The recovery
image doesn't actually care... but if we are not explicit in this, the makefiles
will ask for the 64bit binaries but the Android.mk for the binaries will supply
the 32bit images (causing the build to fail)..

Change-Id: I728912bc8e07726888fe8bed4352cbb373911cb7
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2014-09-15 18:36:47 -07:00
Ying Wang 96c2af033d Enable multilib odex only if TARGET_2ND_ARCH is defined.
Bug: 17507247
Bug: 14694978
Change-Id: I160a37bc0970315054606829aa112b67eaee7d49
2014-09-15 12:12:36 -07:00
Ying Wang 2e9f639282 Support to build apk odex for both arch.
Build odex for both arch in multilib build if an app has
LOCAL_MULTILIB := both.
Refactored the common setup code to a separate file setup_one_odex.mk.

Bug: 17409149
Bug: 14694978
Change-Id: I74c9426cd74fe0b0cb4811368f740a88ac2ae022
2014-09-15 12:12:18 -07:00
Dan Albert bfbd41edcb Missed one part of removing the vbox target.
Change-Id: I8edb5252b5e71de042b79cb9eb2a497d89efb773
2014-09-10 15:58:20 -07:00
Alexander Ivchenko 388dce3192 Refine TARGET_GLOBAL_CFLAGS for x86 and x86_64:
Remove -msse2 for x86 (-mssse3 should be provided by the compiler).
       Remove -fPIC (compiler provides by default).
       Remove -fno-inline-functions-called-once.

Change-Id: Ibb29934224c4eedfff926dc72c3b6342c1861ac9
2014-09-09 17:27:32 +04:00
Ying Wang 8b3476986a Add LOCAL_POST_LINK_CMD.
For now we support LOCAL_POST_LINK_CMD only for static executables.
This fixed the hack of building linker which need to insert additional
step after link.

Bug: 17403674
Change-Id: Iefdfe1e3fab3a30c5d4ad701d46f931481eab572
2014-09-05 15:47:59 -07: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
Tim Murray 039cd7e076 Merge "Add LOCAL_NO_FPIE." 2014-09-03 22:46:45 +00:00
Tim Murray 595d0dbd5b Add LOCAL_NO_FPIE.
Not all executables should be built with -pie.

bug 15814177

Change-Id: I402e8a531866b507ee80a0bf677f9f3551ca7693
2014-09-03 15:39:50 -07:00