Commit graph

319 commits

Author SHA1 Message Date
Stephen Hines
d11c18a4b0 Fix RS NDK usage so we always pull from "current" instead of NDK 8.
The 8 in this definition refers to NDK release 8, not the API level 8.
Setting it to "current" is better, since it still contains the relevant
target API level (9 in our case) for using/building our RS support APIs.

Change-Id: Ib216ea859e137643fba81c39c4b9d0077ec04455
2015-09-28 18:07:21 -07:00
Colin Cross
309b420d56 Fix windows build
The windows toolchain doesn't support color, only apply
-fdiagnostics-color to HOST and TARGET, not HOST_CROSS.

Change-Id: I17b999a2852b8d70b2d39a58befa10e2e32c4608
2015-09-25 17:00:14 -07:00
Colin Cross
63e3b0294f Enable color output from gcc and clang
Force gcc and clang to always output color diagnostics.  Ninja will
strip the ANSI color codes if it is not running in a terminal.

Bug: 24273983
Change-Id: Ic9252549bfacf3bbb3f4b9d20f63010fc24ac21d
2015-09-24 22:39:17 -07:00
Steve Fung
cb2e67fdb7 Generate breakpad symbols
When BREAKPAD_GENERATE_SYMBOLS is set to true, generate breakpad
symbols for binaries.

Bug: 23900817
Change-Id: I7b992d819350f4f80df5868d16f13016502dfca0
2015-09-24 16:49:40 -07:00
Dan Willemsen
3ad3549519 Don't add CFLAGS to CPPFLAGS
Except for kati, we never use COMMON_GLOBAL_CPPFLAGS without also using
COMMON_GLOBAL_CFLAGS, which leads to duplicate command line entries.

Change-Id: I25d625924e9d157175a9e88bc3f15b7214cfb4ed
2015-09-23 16:23:02 -07:00
Ying Wang
127da9e4aa Use md5sum as the build.ninja filename suffix if the suffix gets too long.
Use md5sum as the build.ninja filename suffix if the suffix is longer
than 64 characters. Also store the original suffix in a corresponding
.suf file for human lookup.
This fixes the "File name too long" error when kati tries to write to
build.ninja with the long original suffix.

Bug: 24302576
Change-Id: Ie04b0c14e1a9d593aa5c2a6b357b19a9e8a7158e
2015-09-22 16:16:12 -07:00
Dan Albert
5408ff73d6 Revert "Don't re-export libgcc symbols from every object."
For some reason shamu doesn't boot after this change.

Bug: http://b/24166967

This reverts commit e92d25f296.

Change-Id: Ibd90c0fccb1fe7446f959c937963d1aa4e43c37c
2015-09-21 19:19:02 +00:00
Dan Albert
e92d25f296 Don't re-export libgcc symbols from every object.
Target modules shouldn't re-export libgcc.a because we don't want
other binaries importing them when they should be getting their own
copy of the builtins.

Bug: http://b/24166967
Change-Id: Iaa208933885375da4a8e1b8935f76e9f3ea0647f
2015-09-17 17:18:12 -07:00
Dan Willemsen
057aaea54a Add HOST_CROSS_OS
Instead of using recursive make to change the HOST_OS when building the
windows SDK under linux, add the concept of cross-building to another
host os.

Bug: 23566667
Change-Id: I6dc525b601b6251d458d197c30bf4660d7485502
2015-09-09 18:12:29 +00:00
Elliott Hughes
43146118aa Remove AndroidConfig.h.
This change leaves soong references.

Change-Id: Iee32b6b97ad9711f69e999c9d01f01d71562b63f
2015-08-28 10:31:28 -07:00
Shinichiro Hamaji
ee482fd521 Use goma when USE_GOMA=true is set
With USE_GOMA, the path to gomacc in $GOMA_DIR or $HOME/goma
will be appended to CC_WRAPPER and CXX_WRAPPER.

Note this works only with USE_NINJA. Unlike ninja, GNU make
cannot change the parallelism depending on targets. Specifying
-j500 to GNU make would mean you may run 500 local jobs in
parallel, but with -j32 goma will just slow down the build.

Change-Id: I0f571454fd2a5b525ee29b445f7ab8715927ca00
2015-08-20 14:33:44 +09:00
Dan Willemsen
05d97fe723 Merge "Remove legacy windows platform build support" 2015-08-18 04:31:07 +00:00
Dan Willemsen
e65107508a Merge "Use repeatable timestamps" 2015-08-18 03:30:11 +00:00
Dan Albert
36b6f0472f Add BUILD(_HOST)?_FUZZ_TEST.
These are tests that use LLVM's libFuzzer for testing with a
sanitizer.

Bug: http://b/22850550
Change-Id: I6eeaff7877b7dd0c30f8910c6f27f5278b27a83d
2015-08-17 14:39:27 -07:00
Dan Willemsen
145ae32069 Remove legacy windows platform build support
We still support HOST_OS=windows for the SDK host tools cross-builds, but
that's only when USE_MINGW is set when running under linux.

Change-Id: I37da87dc9fbbd69ba10ce4d7f2668ab3f6482d92
2015-08-17 12:35:04 -07:00
Neil Fuller
bc7680c4d7 Merge "Include the okhttp.jar when compiling against internal classes" 2015-08-13 10:40:39 +00:00
Neil Fuller
f39a25bc28 Include the okhttp.jar when compiling against internal classes
If LOCAL_SDK_VERSION is unset we were compiling against
core-libart but not okhttp.

okhttp should be an implementation detail but
android.net.http.HttpResponseCache implements
com.android.okhttp.OkCacheContainer.

The OpenJDK 8 version of of javac now requires all interfaces of
implemented classes be made available at compile time even with
-source 1.7 -target 1.7.

This is not an issue when compiling against the android.jar because
the implementation of HttpResponseCache in the android.jar does not
implement com.android.okhttp.OkCacheContainer.

Bug: 23099154
Change-Id: I3fa1d0f73535b396623fed953cfc71189b797849
2015-08-12 09:30:58 +01:00
Dan Willemsen
ccc933e97b Use repeatable timestamps
This moves all of the date references under build/ to using a single
datetime that can be set manually using BUILD_DATETIME.

It also adds an option, OVERRIDE_C_DATE_TIME, that if set to true, will
redefine __DATE__ and __TIME__ for all C/C++ files so that it matches
BUILD_DATETIME.

Bug: 23117013
Change-Id: I7c17a32b794a5adf40b9cd69136fb0ff9f6084ec
2015-08-12 00:02:20 -07:00
Dan Willemsen
608aa91db7 Merge "Revert "Use repeatable timestamps"" 2015-08-12 01:02:19 +00:00
Dan Willemsen
92026f2d36 Revert "Use repeatable timestamps"
OSX `date` doesn't understand -d

This reverts commit 13ba6e00f4.

Change-Id: I5970032ff02cc07bd3b087e1eeb5f19b1e4194b4
2015-08-12 01:00:19 +00:00
Dan Willemsen
671b8ff545 Merge "Use repeatable timestamps" 2015-08-12 00:49:26 +00:00
Dan Willemsen
13ba6e00f4 Use repeatable timestamps
This moves all of the date references under build/ to using a single
datetime that can be set manually using BUILD_DATETIME.

It also adds an option, OVERRIDE_C_DATE_TIME, that if set to true, will
redefine __DATE__ and __TIME__ for all C/C++ files so that it matches
BUILD_DATETIME.

Bug: 23117013
Change-Id: I880ef103a26bca86bd7bf42d58e62e740a6228c8
2015-08-11 17:08:03 -07: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
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
bb1da5e614 Use unmodified MAKECMDGOALS in ninja.mk.
The build system removes targets like "PRODUCT-full-eng" from
MAKECMDGOALS in build/core/product_config.mk.
Without this change, such target isn't passed to kati.

Change-Id: I0b3949ed1f5557445d7f5d5bd59b7875c0b2ea7f
2015-07-29 12:21:54 -07:00
Ying Wang
bbd4755647 Cleanups.
- Deleted unused functions in definitions.mk.
- lint is never fully functional in the platform source tree.
- Retire LOCAL_DIST_BUNDLED_BINARIES: now the build system/framework
  supports JNI embedded in apk.

Change-Id: I6314cb20d1544c704ccbc4c1f9cccb9c54fb5a51
2015-07-21 16:03:19 -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
Mohamad Ayyash
19cfe7db4c Merge "Add img2simg in host and ota packages" 2015-06-25 18:44:03 +00:00
Mohamad Ayyash
9764892031 Add img2simg in host and ota packages
Change-Id: Ide660cf3cf69c74bbd15d0ac6642b60d58f076fa
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2015-06-24 16:08:15 -07: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
Yohann Roussel
f09e59eb52 [DO NOT MERGE] Compile using Jack.
This allows to compile dex targeted java sources using Jack and Jill.
Default is still to compile with the legacy toolchain. Default can be
switched to the new toolchain by setting environement variable:
export ANDROID_COMPILE_WITH_JACK=true
Toolchain can also be forced for one module by defining
LOCAL_JACK_ENABLED:=full # disabled, full, incremental
in the mk portion defining the module.

Jack execution environement can be controlled with:

Global variable ANDROID_JACK_VM allow to change the jvm executing Jack.
Global variable ANDROID_JACK_VM_ARGS allows to change default args given
to the jvm.
Global variable ANDROID_JACK_EXTRA_ARGS allows to define some default args
to give to Jack

LOCAL_JACK_VM_ARGS allows to override default args given to the jvm for
the module.
LOCAL_JACK_EXTRA_ARGS allows to override default args passed to Jack.

This includes cherry-picks of the following changes:
b4c49cba57
22c3fa6d73
138768c1bb
5dd3e1d312
83d5d04047
8bc90fd2d6
140274707e
0fbc9ff2a2
833b427d72
f9a27f45b4
2809666941
37822c443d
c6b44d43c3
d2a76c14bf
06744f60fc
95573d5036
b821391614
2794e7b582
801f2c44d0
c76d99dca1
f528e132d6
76a5e0bd1a
e25b3984ff Partially, only Jack related parts werekept
ec46a3b71f
abee3a9f41
77cbe10fd9
daf07db4cd
b6bfb5893a

Ie all Jack related changes untill
b6bfb5893a
except
a96cc59ab5 "Use Jack by default"

Change-Id: If9d47ef1c4fd1e6765ad2a47d816c1ad3cfab0e3
2015-05-19 18:31:05 +02:00
Dmitriy Ivanov
4c2d1a64fb Pack relocation tables for dynamic executables
Add replocation-packer step for dynmic executables.

  Enable it by default for arm and arm64 platforms.

Bug: http://b/18051137
Change-Id: I0c88fd31595bcea62a087f219acb9ecf9c80f2e5
2015-04-23 12:07:16 -07:00
Dimitry Ivanov
1eca10fa9d Revert "Pack relocation tables for all dynamic executables"
This reverts commit e7a1b8a0c6.

Change-Id: I1a2185e1c68d364941e3b3e525a8c4a7a42e0cc1
2015-04-23 04:22:33 +00:00
Dmitriy Ivanov
e7a1b8a0c6 Pack relocation tables for all dynamic executables
Bug: http://b/18051137
Change-Id: I277277d5f5eb450ef9b4a23cfec16d75d977eb89
2015-04-22 13:30:43 -07:00
Dmitriy Ivanov
4eb120b999 Remove unsupported *_COMPRESS_MODULE_SYMBOLS
Change-Id: Ibb7da2997a0bb5b9f435213c9d3206bc4aad18db
2015-04-20 12:24:12 -07:00
Ying Wang
f738b3bb9f Load cts/build/config.mk after build/core/config.mk
So that the cts config.mk can use global variables set by the core build
system config.mk.

Change-Id: I2571564abbb53257eee54485a3357ab1305eb870
(cherry picked from commit bacf5f8008)
2015-03-16 10:56:03 -07:00
Christopher Ferris
9de4d5ebb3 Make sure DEX2OAT_TARGET_CPU_VARIANT is not empty.
On non-arm architectures, there is no TARGET_CPU_VARIANT set. For x86,
art assumes that the CPU variant is actually the TARGET_ARCH_VARIANT.
Therefore, if no TARGET_CPU_VARIANT is set, use the TARGET_ARCH_VARIANT.
If TARGET_ARCH_VARIANT is not set, then use default as the value.

Change-Id: I17fc9e3ac7412462103b8f0b287fce106298b741
2015-03-06 10:19:12 -08:00
Mohamad Ayyash
b97746ef09 Allow flashing a squashfs system image
Change-Id: Ic51d11274784a8d2e9d57d5f0b821ebc89680e5a
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2015-03-03 18:54:50 -08:00
Dan Albert
876f45e73f Merge "Make some warnings impossible to override." 2015-02-25 23:13:13 +00:00
Colin Cross
a82f7db900 Merge "add BUILD_NATIVE_BENCHMARK" 2015-02-24 20:49:56 +00:00
Dan Albert
0c91fa84ff Make some warnings impossible to override.
These CFLAGS and CPPFLAGS will always be added last, and are
controlled by the build system. This way we can add warnings that
users are not allowed to disable.

Change-Id: Id71f69249078f62ca2687ecbf764aff0fd3a1c1b
2015-02-23 10:05:51 -08:00
JP Abgrall
7bb75e4f6c core: remove dependencies on genext2fs
We don't use EXT2 for bootimage anymore.
This will allow getting rid of external/genext2fs

Bug: 19282953
Change-Id: Ie56528c7877036d2501a09888a4420637f9cd647
2015-02-11 15:04:59 -08:00
Elliott Hughes
65d4186f85 Remove mkyaffs2image references.
Change-Id: I1d112515bc92353a5b48ec668e1cadfb51ecdaad
2015-02-04 19:58:09 -08:00
Miao Wang
ec27a8966c Add build rules for libRSSupportIO (Usage_IO lib for RS compat lib)
bug 12924018

Change-Id: I35af72c1f7788f9fd9cb24bfabdbbad09e865a8b
2015-01-09 09:43:09 -08:00
Miao Wang
e4359cf0f3 Add build rules for 64bit Renderscript Compat lib.
Change-Id: Iea168f8ecb3b4cf6b9ab6ffefc403eb77ee09000
2015-01-08 17:19:42 -08:00
Elliott Hughes
86e6b7ed51 Remove unused BUILD_RAW_EXECUTABLE and BUILD_RAW_STATIC_LIBRARY.
Change-Id: I1ba79197f3b9bb446ab34612bac8eb9485438709
2014-12-01 20:53:11 -08:00
Dan Albert
bf0426f474 Make gnu++11 the default standard version.
There are a _lot_ of users of `typeof` in the tree, and they'll need a
GNU flavored standard. Rather than fixing up all of these
individually, let's just use gnu++11 as the default.

Bug: 18466763
Change-Id: Ia1bd3adaa74fadba259fda3d37653fb8d5cff69a
2014-11-24 15:53:31 -08:00
Serban Constantinescu
3da4f32794 Remove TARGET_CPU_SMP.
There are no more users of TARGET_CPU_SMP in the current codebase.
Expert users should set "-smp" in DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES
for targets that run on a single-core CPU.

Change-Id: Ib94865f05a92c9a4622540cebc18ded4bdfa6363
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
2014-11-24 17:02:34 +00:00
Ian Rogers
a18a28305d Pass instruction set variant to dex2oat.
Also, add it to the ANDROID_BUILD_PROPERTIES.
Remove non-default instruction set features.
Bug: 18056890

Change-Id: I9169cdfecbb176f62b941852948222edc3f511fd
2014-11-08 17:07:23 -08:00
Neil Fuller
f7ce9508de am 4dfda1fa: Merge "Remove Java 6 build support"
* commit '4dfda1fa4201e41022396b77054168ffc73b590c':
  Remove Java 6 build support
2014-10-24 20:18:15 +00:00