Commit Graph

6604 Commits

Author SHA1 Message Date
Christopher Wiley 5923fcd021 Merge "Add build rules to generate native DBus interfaces" 2015-08-05 15:40:00 +00:00
Ying Wang d86f39cab7 Merge "Ignore .*.java files when collecting .java files." 2015-08-04 19:52:06 +00:00
Ying Wang 4aedea90e8 Ignore .*.java files when collecting .java files.
Bug: 22934689
Change-Id: I6c9cc8f37d09eb190946e596e5d1ba0c3b318088
2015-08-04 12:46:13 -07:00
Ying Wang 0a0e6eae3f Build static ckati on Linux.
Bug: 22798670
Change-Id: I3aaf127627c1c478ab3af2549e49506d4d1f19df
2015-08-04 12:23:27 -07:00
Ying Wang eadaa954ce Fix writing clean_steps.mk in the first build.
Change-Id: Ieddc799f38e5d1522e329e8300bd9f49c26c70ae
2015-08-04 12:11:54 -07:00
Stephen Smalley d3a803e668 build: switch over to file_contexts.bin only
Change all uses of the file_contexts file to use the
file_contexts.bin file instead.

Depends on
   I75a781100082c23536f70ce3603f7de42408b5ba
   I43806d564b83d57f05f5c36c8eba7b1ff4831b04
   Id560d093440a2aba99cef28c20133b35feebf950
   I15660f4b3e4c5cb8ae0ec1498c74d6fcbb9a0400

Change-Id: Iaf8c4b2e420f610425a07f48db7af32bda3f5b3a
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-08-04 14:59:06 -04:00
Ying Wang 3e3d7b5ce5 Don't prepend CC_WRAPPER to CLANG.
We have deferred the CC_WRAPPER prepending to binary.mk per module.

Bug: 22612634
Change-Id: If2c0549503989d17ff7be619fdd49c26fd78f0a5
(cherry-pick from commit 66c8e8c756)
2015-08-03 14:08:54 -07:00
Ying Wang 2c0c1e56db Merge "Build 64-bit host tools in Linux/Mac SDK build." 2015-08-01 17:23:20 +00:00
Daniel Rosenberg e4fed421d5 Merge "build: core: Fix issue in recovery" 2015-08-01 00:10:09 +00:00
Daniel Rosenberg 46afd7f981 Merge "Add ro.build.system_root_image" 2015-08-01 00:05:05 +00:00
Daniel Rosenberg 7b82656984 build: core: Fix issue in recovery
Now that symlinks are created at build time, the rsync while
making recovery runs into issues around the etc symlink

Change-Id: Ie781507b22e4661629840075b274eaab2f712de6
2015-07-31 16:52:21 -07:00
Daniel Rosenberg 59156a6b7d Add ro.build.system_root_image
ro.build.system_root_image is true if the root directory is built
into the system image.

Change-Id: I17208ebd004c63aebb09db6c3e5f795619e73bd2
2015-07-31 16:52:21 -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 5c28bda966 Build 64-bit host tools in Linux/Mac SDK build.
With this we build 32-bit host tools in only MinGW Windows build.

Bug: 22776595
Change-Id: Icca02b0f629460449a3437ff1769d4d081e92413
2015-07-31 09:24:15 -07:00
Tao Bao be46a54589 build: Fix "adb shell" in recovery for system_root_image.
For system images that contain the root directory, "adb shell" in
recovery stops working if the image is mounted at "/system", because
sh now locates at /system/system/bin/sh. We fix the issue by mounting
the image on /system_root and create a symlink to /system_root/system
for /system.

Bug: 22855115
Change-Id: Ia6b257b75aeb67687c3909063d1725a23a5ccd60
2015-07-30 16:44:17 -07:00
Dan Albert 8427c5878c Merge "Make TSAN easier to use." 2015-07-30 18:44:19 +00:00
Elliott Hughes 524a7e4693 Merge "Remove HAVE_WINSOCK." 2015-07-30 17:24:06 +00:00
Dan Albert a6311b7212 Make TSAN easier to use.
TSAN is not supported on 32-bit architectures. For non-multilib cases,
make its use an error. For multilib cases, don't use it for the 32-bit
case.

Change-Id: I8e40be4002379cc2c9aa98ab8b812b337d6e077e
2015-07-30 10:17:33 -07:00
Elliott Hughes 7f80a9ed44 Remove the now-empty darwin AndroidConfig.h.
Change-Id: Icdbb06514c099653923aae936c31abfbaeaccf7a
2015-07-30 09:16:01 -07:00
Elliott Hughes cf427fb4ae Merge "Don't define S_IRGRP in AndroidConfig.h." 2015-07-30 03:43:38 +00:00
Elliott Hughes f07ddab187 Merge "Remove global Windows __BEGIN_DECLS/__END_DECLS." 2015-07-30 03:20:36 +00:00
Elliott Hughes 61c94258b1 Remove global Windows __BEGIN_DECLS/__END_DECLS.
Change-Id: Ic1ba634a0376c9c1b484098b4ca41cf7659f06b1
2015-07-29 20:14:59 -07:00
Elliott Hughes 47b557a9ca Don't define S_IRGRP in AndroidConfig.h.
Nothing seems to be relying on this anyway.

Change-Id: I24e2509e4d24bc445961430bb74f8ca04135bc37
2015-07-29 19:26:39 -07:00
Elliott Hughes 1de24c7f64 Remove HAVE_WINSOCK.
Change-Id: I362451b68775de0216c5b8736f5cc16a7933b6c2
2015-07-29 19:05:24 -07:00
Ying Wang 1a5a615a7b Merge "Update mac_sdk_versions_supported." 2015-07-30 00:37:38 +00:00
Ying Wang d1123ff4c5 Update mac_sdk_versions_supported.
Now we requires Mac OS X SDK version at least 10.8.
Also removed the unnecessary sort call in getting
mac_sdk_versions_installed.
Lexical sort doesn't make sense when 10.10 is added to that list.
Actually the next makefile line makes sure we always get the first
match in $(mac_sdk_versions_supported):
mac_sdk_version := $(firstword $(filter $(mac_sdk_versions_installed),
$(mac_sdk_versions_supported)))

Bug: 22825165
Change-Id: I4bfafabb11f94b66704d4799fe61fe3f16429538
2015-07-29 17:36:38 -07:00
Elliott Hughes 45e2a12bd7 Remove OS_PATH_SEPARATOR from AndroidConfig.h.
Change-Id: I4143be14e5117526bfa98d83e246cc4360209c13
2015-07-29 15:31:39 -07:00
Ying Wang 0c0b2e659f Merge "Use unmodified MAKECMDGOALS in ninja.mk." 2015-07-29 21:59:42 +00:00
Simon Wilson 37700c9ad1 Merge "Add compressor options for squashfs system images" 2015-07-29 21:35:57 +00: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 d864f43932 Merge "Remove $(DEX2OAT) from DEX2OAT_DEPENDENCY when USE_DEX2OAT_DEBUG is set." 2015-07-29 16:59:50 +00:00
Elliott Hughes b15b512825 Remove HAVE_WINDOWS_PATHS.
Change-Id: I11284ceddf08eb284af56360f0cf80f4725c98e9
2015-07-29 08:45:40 -07:00
Tao Bao f2cffbddb9 Support systems that use a full copy of recovery image.
If BOARD_USES_FULL_RECOVERY_IMAGE == true, a full copy of recovery
image will be carried as /system/etc/recovery.img instead of a patch
at /system/recovery_from_boot.p.

Bug: 22641135
Change-Id: Ie271d3e2d55d7b003f667ac5b44203d69b23c63b
(cherry picked from commit 8beab69bd5)
2015-07-28 12:20:36 -07:00
Fredrik Roubert 8a3dd242ac Remove $(DEX2OAT) from DEX2OAT_DEPENDENCY when USE_DEX2OAT_DEBUG is set.
Currently, DEX2OATD_DEPENDENCY is created by appending $(DEX2OATD) to
the value of DEX2OAT_DEPENDENCY and then if USE_DEX2OAT_DEBUG is set,
DEX2OAT_DEPENDENCY is set to DEX2OATD_DEPENDENCY, adding a dependency
on $(DEX2OAT) even in configurations where this will not be built.

This change removes DEX2OATD and DEX2OATD_DEPENDENCY entirely to instead
assign dex2oat or dex2oatd to DEX2OAT depending on USE_DEX2OAT_DEBUG,
making it possible to build with these flags set:

USE_DEX2OAT_DEBUG=true
ART_BUILD_HOST_NDEBUG=false
ART_BUILD_HOST_DEBUG=true
ART_BUILD_TARGET_NDEBUG=false
ART_BUILD_TARGET_DEBUG=true
make build-art-host

Change-Id: I4fa75d1b7e9751c73c43ec943fd8446cc231a070
2015-07-28 11:54:08 -07:00
Dan Albert d4ff228319 Merge "Disallow LOCAL_CXX_STL with LOCAL_SDK_VERSION." 2015-07-28 00:04:36 +00:00
Dan Albert ef3e7cfa5d Disallow LOCAL_CXX_STL with LOCAL_SDK_VERSION.
Change-Id: I2cd97b453ad24cc4e5d59b4035e861df41b8cbb9
2015-07-27 14:14:56 -07:00
Ying Wang cb03141459 Merge "Fix mmma uses like "mmma ./external/apache-harmony"" 2015-07-24 19:35:47 +00:00
Ying Wang a5184806be Fix mmma uses like "mmma ./external/apache-harmony"
Fix mmma uses like "mmma ./external/apache-harmony" by removing the
leading ./ in entries in BUILD_MODULES_IN_PATHS.

Change-Id: I414e734c8a29434fc89ddb2b745613c33709c5e3
2015-07-24 12:30:41 -07:00
Colin Cross f8f448b3ca Merge "Build with kati+ninja when USE_NINJA=true" 2015-07-24 18:43:58 +00:00
Colin Cross 3b324cb32e Build with kati+ninja when USE_NINJA=true
If USE_NINJA=true, use kati to translate makefiles into ninja files,
and then execute them with ninja.

Builds kati from source using simplified versions of the rules
in binary.mk and definitions.mk.

Adds two new goals when USE_NINJA=true: generateonly will regenerate
build.ninja but not rebuild (useful for comparing build.ninja output
between runs), and fastincremental will skip regenerating build.ninja
and go directly to running ninja, providing ~5 second incremental
builds.

Change-Id: Ib85399e730f1fbb1be7371fafeee7d1c31080771
2015-07-23 17:29:01 -07:00
Brian Carlstrom 1a71f951a7 Remove unneeded aapt dependency
Change-Id: Ie9b550367f7c6b91d46dc2506c420a45b0d39703
2015-07-23 17:12:10 -07:00
Ying Wang cd7dfdb4bf Merge "Cleanups." 2015-07-21 23:45:42 +00:00
Ying Wang 06332732a4 Create OUT_DIR before writing build_number.txt.
Change-Id: I6a84ec59194c48f4291480cb0c94db0da488518c
2015-07-21 16:39:46 -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
Colin Cross 1d0f6eb115 Merge "Read BUILD_NUMBER from file in rules" 2015-07-21 19:20:37 +00:00
Evgenii Stepanov db38e7b5d4 Merge "Disable relocation packer in SANITIZE_TARGET mode." 2015-07-21 17:30:03 +00:00
Shinichiro Hamaji 14da1424e0 Do not update previous_XXX.mk when there is no change
I'm adding a rule which regenerates ninja files to kati:

8666cfba20

With this regeneration rule, unnecessary re-generation will happen
when these .mk files are updated even if there are no changes in
their contents. With this patch, these .mk files are updated only
when the contents will be actually changed.

Change-Id: I4c796f9454502f6bb25019b3806ca577ea5258c1
2015-07-21 09:40:02 +09:00
Ying Wang d37b540a39 Auto-clean host tools when switching between apps_only and platform build.
For apps_only (also PDK build) we use prebuilt host tools in
prebuilts/sdk/tools; For platform build we use tools built from source.
Auto-clean intermediate files of these tools when build type change is
detected.

Bug: 20213206
Change-Id: I9173af322684c017fdb91a3abfbe39ecfe5650e9
(cherry-pick from commit 036b53b6de)
2015-07-20 17:31:08 -07:00
Evgenii Stepanov 4b396e47eb Disable relocation packer in SANITIZE_TARGET mode.
Workaround for
https://code.google.com/p/address-sanitizer/issues/detail?id=387.

Change-Id: I151c3f0eb7e2a4c92a64192a0b43ac17646eab5c
2015-07-20 16:32:53 -07:00
Dan Albert f4ffafb1a3 Merge "Revert "Revert "Hide unwinder symbols in each binary.""" 2015-07-20 23:11:59 +00:00
Colin Cross f37b455858 Read BUILD_NUMBER from file in rules
Using $(BUILD_NUMBER) inside a rule causes odd behavior, as the rule
is different every time make is run, but since make doesn't depend
on the command line it only ends up being built with the new value
if some other dependency has changed.

To allow ninja, which does depend on the command line, to provide the
same behavior, store the build number in out/build_number.txt, and
use a shell expansion to cat the file in rules that use it.  This will
cause the rule command to stay identical between builds, while still
getting the new build number if the rule is rerun for a dependency.

Also use the same trick for BUILD_FINGERPRINT, and the date in
droiddoc rules.

Change-Id: I6c5e6b6b3ef4c613563d7f5604df0e401575ba5f
2015-07-18 12:15:04 -07:00
Colin Cross b6da589f60 Move @echo to first command in rules
Move the @echo command that prints the rule description to be the
first command in each rule so that the kati tool can find it to
use as a ninja rule description.

Change-Id: I90f27c35bb719d327a7f2109f8d00d3589082f19
2015-07-16 17:14:27 -07:00
Tao Bao f737a12098 Merge "Enable verbose output for add_img_to_target_files." 2015-07-15 23:54:28 +00:00
Tao Bao 7055791db5 Enable verbose output for add_img_to_target_files.
Change-Id: I7246c59c79ccf6a7589c884391d0f690746fc129
2015-07-15 11:53:39 -07: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
Evgenii Stepanov ff7a781512 Disable detection of bugs on global variables.
This is a temporary change pending code cleanup.

We are already disabling detection of ODR violations. As it turns out,
an ODR between an ASan-instrumented library and a non-instrumented library
may actually crash ASan, and there is no obvious way out, and one of those
prevents us from booting a SANITIZE_TARGET image right now.

Bug: 21951850
Change-Id: I49508242ec96089a3d4d8b7e45f36323d62f2be9
2015-07-13 20:03:02 -07:00
Tao Bao 2c15d9eefe Pack file_contexts into target_files zip.
file_contexts (specified by SELINUX_FC) is needed both when building
and (re)packaging. We used to use the copy in out/ when building, and
looked for the copy in BOOT/RAMDISK/ when packaging from target_files
zip. With system_root_image enabled, the file_contexts needed for
building and packaging might be different from the one on device. So
we explicitly pack the file as META/file_contexts in target_files zip.

Also refactor out the overriding of selinux_fc property into
common.LoadInfoDict().

Change-Id: I94f9ea6671b3792c12c1c21573840743d63da39a
(cherry picked from commit aa7318c384)
2015-07-10 14:21:16 -07:00
Pirama Arumuga Nainar 2d5a50e686 Add -mfpu=neon-vfpv4 if cpu is krait
Upstream clang r239152 (http://reviews.llvm.org/D10239) caused a pretty
significant change in behavior.  Passing an FPU feature via -mfpu
disables any feature not supported by those flags (in addition to the
old behavior of enabling features supported by the flags).  For e.g.,
-mfpu=neon used to just pass +neon, +vfp3 as target features to the
backend.  Now, -mfpu=neon also passes -vfp4, -fp16, -fp-armv8.

The backend has always disabled implied feature bits if a feature is
disabled.  Upon seeing the target feature -vfp4, it will disable any
processor/feature that implies vfp4, including the bit that the
processor is a Krait.  Since Krait has both Neon and vfp4, it is safe to
pass '-mfpu=neon-vfpv4'.

Change-Id: Ibbb992e80b8cbc8dc36d5df556885d0912baea22
2015-07-09 12:55:00 -07:00
Elliott Hughes ba2f676410 Remove HAVE_WIN32_IPC.
Change-Id: I6c01ed5b059c230d7382dc6158103f31d4bf9dbb
2015-07-09 10:20:13 -07:00
Elliott Hughes 60dda9c44d Merge "Remove mkbootimg from the pathmap." 2015-07-08 23:13:32 +00:00
Elliott Hughes fd5692b32c Merge "Stop polluting the namespace with HAVE_MALLOC_H in AndroidConfig.h." 2015-07-08 23:11:18 +00:00
Elliott Hughes 3d949bbabc Remove mkbootimg from the pathmap.
It's only ever referred to directly. (Should probably move to
system/core/include, but that's orthogonal to this change.)

Change-Id: I353afff031a29206aaa5a0991fe0ccb39e4731e2
2015-07-08 16:05:17 -07:00
Elliott Hughes b248bf85ae Remove pathmap.mk entries for libc.
Change-Id: I9f4ce70696dd7df5922b3c80501fac9c7d4b7149
2015-07-08 14:10:23 -07:00
Elliott Hughes 5dbf4eab72 Stop polluting the namespace with HAVE_MALLOC_H in AndroidConfig.h.
Change-Id: If1cd88ee14bf9cbb4a0a1f608b0d015c9181c2c2
2015-07-08 13:12:38 -07:00
Simon Wilson 011ea06db7 Add compressor options for squashfs system images
Change-Id: I2a75f8754273f6e00b96ba6aca6741c4388f5da8
(cherry picked from commit f86e7eeabc)
2015-07-07 11:41:20 -07:00
Ying Wang 491fca9809 Simplify LOCAL_NO_CRT.
Change-Id: If2486e4861071df6b225fe7f387530a38f554484
2015-07-02 15:58:34 -07:00
Elliott Hughes cd26a2dd7e Merge "Remove HAVE_STDINT_H namespace pollution." 2015-07-02 18:50:26 +00:00
Ying Wang 75011b2003 Add LOCAL_NO_LIBGCC.
This can be used to compile independent libraries without the need for
libgcc.a.

Change-Id: I924200995569d9a978ddbaa6ec321d80734f1374
2015-07-02 11:05:27 -07:00
Elliott Hughes d47e01a3a1 Remove HAVE_STDINT_H namespace pollution.
Change-Id: I1e42d1616da0f3a90f8da189d2e919f781c4eb5a
2015-07-02 10:26:53 -07:00
Ying Wang bbaeaa5879 Merge "Configure synci generation explicitly" 2015-07-01 18:58:52 +00:00
Evgenii Stepanov 473dfdf71b Merge "Move sanitized vendor libraries to /data/vendor/lib(|64)." 2015-06-30 21:30:29 +00:00
Evgenii Stepanov bf140974b2 Move sanitized vendor libraries to /data/vendor/lib(|64).
Sanitized RPATH now mentions /system/vendor/lib to preserve overlay
in the case when a sanitized version of a vendor library can not be
built.

Bug: 22199458
Change-Id: I3222d2e1d6c08fdd1e0404fcb7db347aa4a92bb7
2015-06-30 14:04:45 -07:00
Tao Bao 4e66343b2b Retry adjusting the size computation for reserved blocks.
Due to the change in https://lwn.net/Articles/546473/, kernel reserves a
few extra blocks (lesser of 2% and 4096 blocks) on ext4 FS which leads to
OTA update failures. Adjust the size computation if the device has
BOARD_HAS_EXT4_RESERVED_BLOCKS := true.

It amends the last attemp in [1]. Now it computes the used blocks from the
make_ext4fs output, instead of altering its argument.

[1]: commit efbb5d2e69.

Bug: 21522719
Bug: 22023465
Bug: 22174684
Change-Id: Iaae6507f6de68a5892f2e3035d330039287b4492
(cherry picked from commit c7a6f1e4f8)
2015-06-30 12:17:28 -07:00
Evgenii Stepanov 5adfcb166e SANITIZE_TARGET: allow undef symbols in non-sanitized shared libraries.
These symbols are defined in the ASan runtime library, which is always
present at runtime.

Bug:21785137

Change-Id: Ib8418c66323fd4cdfdc05548048f32380cb84ee5
2015-06-25 17:34:44 -07:00
Ying Wang 8f180b904f Merge "Create userdata.img with real data when SANITIZE_TARGET=address." 2015-06-25 21:29:52 +00:00
Ying Wang 2a04839aec Create userdata.img with real data when SANITIZE_TARGET=address.
Bug: 21785137
Change-Id: Ie0c36988759fe07419ad29bab5a71cdd0d992d2a
2015-06-25 14:29:04 -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 686a557689 Revert "Revert "Hide unwinder symbols in each binary.""
Bug: 18471342
Bug: 19958712
This reverts commit 61f675bb53.

Change-Id: I87d3655d1238a9cf26d96dcb0665ba5110931800
2015-06-23 13:33:10 -07:00
Ying Wang e6e544e596 Don't include static executables when SANITIZE_TARGET=address
Also we can't build the ota package without these static executables.

Bug: 21785137
Change-Id: I11b35abebced4b0608378a072ece2ab2dbadeffb
2015-06-23 10:46:03 -07:00
Claes Elgemark cd5bee3546 Add variable ANDROID_NO_TEST_CHECK to not build all test modules
Introduce a way to speed up local builds. Don't build all test
modules if ANDROID_NO_TEST_CHECK is set to true.

On master branch this reduces what is built by more than
300 apps and 50 java libraries. Time for doing this on a
12 core machine running with -j13 is about 10 minutes.

Change-Id: I90feb108695ee60d0dbbf497644f767cc3748215
2015-06-23 15:49:54 +02:00
Evgenii Stepanov a36223e7e0 Clean intermediate files if SANITIZE_TARGET has changed.
Do not clean installed files, only intermediate files. This way, two
consequitive builds first without, then with SANITIZE_TARGET will
produce a frankenbuild with both sets of shared libraries.

Bug: 21785137
Change-Id: I231868b15331be942c783458cf36233c2e7740d3
2015-06-19 11:15:50 -07:00
Evgenii Stepanov 4d3d4141ae With SANITIZE_TARGET, move shared libraries to /data.
A fully (or even mostly) asan-instrumented device will have 2 copies of each
shared library, which might not fit on system partition. Moving instrumented
libraries to /data.

Bug: 21785137
Change-Id: I64184261da2eb24a1382c67e4931c34a5a38b3c0
2015-06-19 11:15:50 -07:00
Evgenii Stepanov d479a7a119 Merge "Enable SANITIZE_TARGET." 2015-06-19 18:15:08 +00:00
Dan Albert abf4bc916a Add support for `LOCAL_SANITIZE := integer`.
This also does a bit of cleanup in config_sanitizers.mk. The result is
that `LOCAL_SANITIZE := <any arbitrary ubsan group>` should function
fine for both host and target.

This is a superset of LOCAL_DETECT_INTEGER_OVERFLOWS, so remove that.
This also checks integer division by zero.  It's supposed to cover
shifting undefined behaviors as well, but apparently it does not
(though `LOCAL_SANITIZE := shift` works fine).

Change-Id: I4ac99eafa6920a3f8cb82af37ce56ff0fdb95223
2015-06-19 10:28:06 -07:00
Dan Albert 1578c487c9 Cleanup unused clear_vars.mk entry.
Change-Id: Ibd7b87d1364a60289609a267a287c4afa1d5e5cb
2015-06-19 10:24:07 -07:00
Evgenii Stepanov 3632cc3241 Enable SANITIZE_TARGET.
The same as SANITIZE_HOST, but for the target.
Also, skip all LOCAL_FORCE_STATIC_EXECUTABLE targets, as ASan does not
support static linking.

Bug: 21785137
Change-Id: Ief53ff8de1fee18f230d6c7dd31845db5bbd415c
2015-06-18 18:24:40 -07:00
Dan Albert 06f0a137dc Merge "Remove LOCAL_ADDRESS_SANITIZER." 2015-06-17 17:21:27 +00:00
Nikola Veljkovic 91091280f1 Revert "[MIPS] Do not use compact branches until GDB supports them"
This reverts commit 063ef33089.
2015-06-17 17:22:26 +02:00
Dan Albert b32c0009a3 Remove LOCAL_ADDRESS_SANITIZER.
I've migrated all users of this to the new option now, so we can drop
this.

Dropping `SANITIZE_HOST := true` will have to wait until the build
server configs have been updated.

Change-Id: I591436e197a6c6c079a6cd6a2decb702b574cd71
2015-06-16 22:20:19 -07:00
Elliott Hughes c09eaa7a44 Remove copy & paste cruft from the mips64 combo.
libthread_db hasn't been in bionic for years.

Change-Id: Ibc036d894c6b6bf9ee4653f95ff7a000a223cb2e
2015-06-16 15:22:52 -07:00
Dan Albert c27d471742 Merge "Fix libdl inclusion for default-ub." 2015-06-16 21:13:44 +00:00
Nick Kralevich 99d92506ac Add support for LOCAL_DETECT_INTEGER_OVERFLOWS
Add build system support for LOCAL_DETECT_INTEGER_OVERFLOWS. When enabled,
an attempt to perform an integer arithmetic operation which overflows
will result in a call to abort(). This is intended for security
sensitive code, where integer overflow operations are not expected
nor desirable.

Two classes of underflows/overflows are detected and blocked:

1) Signed integer underflow/overflow.
2) Unsigned integer underflow/overflows.

Signed integer overflows are undefined behavior, according to the
C standard. Unsigned integer overflows are defined behavior, but
still undesirable in security sensitive code.

Only clang is supported today. gcc has -ftrapv for handling signed
integer overflow, but it's widely considered broken
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35412) and we're
deliberately avoiding it's use here.

Change-Id: Ib4918dc84e37e83d4205e5035544545d91671e5f
Vaguely-Related-Bug: 11859726
2015-06-15 14:52:09 -07:00
Dan Albert 7508a81d40 Fix libdl inclusion for default-ub.
We shouldn't be using ldlibs for target libraries because it doesn't
add a real dependency.

Change-Id: Ib1ec40b95356feb521e95674b64d04d5ecc06332
2015-06-15 11:39:29 -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
Ying Wang 1b96592aab Merge "Add build_verity_metadata.py to dist-tools" 2015-06-09 16:20:49 +00:00
Narayan Kamath 7d2c71cf90 Merge "Remove duplicate CTS tests from libcore cts packages." 2015-06-09 10:03:16 +00:00
Narayan Kamath 6ca9b2b1a3 Remove duplicate CTS tests from libcore cts packages.
The catch all "org" package was catching several thousand
org.apache.harmony.tests.* tests that are already covered by
other packages. Replace the catch-all org.* with specific prefixes.

Needs additional support in CollectAllTests to handle multiple
prefixes. This is implemented in the companion change.

bug: 20862863

(cherry picked from commit cf7fbcd03d)

Change-Id: I1d28f91cfca098ccdcd62e88bb486b433d9c29d8
2015-06-09 10:52:34 +01:00
Mark Salyzyn 911637bf33 Merge "Add missing shared libraries to dist tools" 2015-06-08 23:51:33 +00:00