Commit Graph

34527 Commits

Author SHA1 Message Date
Dan Willemsen dc068b0762 Stop calling `java -version`, remove HOST_JDK_IS_64BIT_VERSION
All users of this variable have been removed. This command was adding
50-175ms to `lunch` (~15-30%), and was running at least twice (serially)
in every build too.

Test: cs/HOST_JDK_IS_64BIT_VERSION
Test: prebuilts/jdk/jdk8/linux-x86/bin/java -version, is 64-bit.
Change-Id: Ifdd9663b010ec45918b29ac037849f49c8cd8f69
2017-07-26 10:49:04 -07:00
Colin Cross 1907b9905e Merge "Enable ubsan check flag in build" 2017-07-25 17:48:06 +00:00
Treehugger Robot 194893ee6c Merge "Make JAVA_HOME absolute inside build" 2017-07-25 04:37:40 +00:00
Colin Cross 3a1544ab1a Make JAVA_HOME absolute inside build
Export JAVA_HOME as an absolute path to commands running inside
a build.

Should fix errors invoking gradle from inside a build:
ERROR: JAVA_HOME is set to an invalid directory: prebuilts/jdk/jdk8/linux-x86
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

Test: treehugger
Change-Id: I16e4482b2d74ede0843715be3b08c65ce33cf403
2017-07-24 19:27:31 -07:00
Colin Cross 45d2ef40f2 Merge "Use java prebuilts" 2017-07-25 00:39:42 +00:00
Steve Muckle 7397b59cca Merge changes I49e4a1a6,I668a396c
* changes:
  fix builds on macOS when kernel modules are used
  package modules.alias onto device
2017-07-24 21:40:21 +00:00
Treehugger Robot 1385e481cd Merge "sepolicy: remove all use of domain_deprecated" 2017-07-24 16:49:25 +00:00
Jeff Vander Stoep 9a8f6775ec sepolicy: remove all use of domain_deprecated
This attribute has been removed from public policy and is no longer
available.

Bug: 38316109
Test: build policy
Change-Id: I3407ced2d725de982e19b77345827de03d93c426
(cherry picked from commit ec488e1fee)
2017-07-24 08:17:39 -07:00
Steve Muckle fb2714e61c fix builds on macOS when kernel modules are used
The mac implementation of sed has different requirements for the -i
option. Instead of using that, just redirect the output to the final
location of modules.dep, since it's being copied in the very next
line anyway.

Bug: 38268091
Test: run build with kernel modules on macOS
Merged-In: I49e4a1a69f01139ef47711ab1223d3a8e5cda568
Change-Id: I49e4a1a69f01139ef47711ab1223d3a8e5cda568
2017-07-21 15:24:51 -07:00
Tri Vo ecf83a839f package modules.alias onto device
Test: device builds and boots, vendor/lib/modules/modules.alias appears
on device.
Merged-In: I668a396ccd11e4eb599e1f6aa2906400ac78f02b
Change-Id: I668a396ccd11e4eb599e1f6aa2906400ac78f02b
2017-07-21 15:24:21 -07:00
Colin Cross 28794da1c0 Merge "Disable desugaring try-with-resources" 2017-07-21 20:48:45 +00:00
Treehugger Robot 5180c3b97b Merge "Look for non-existent files listed in avb_vbmeta_args." 2017-07-21 20:47:01 +00:00
Ivan Lozano b549e826dd Merge "Fix exclusion overriding local integer_overflow." 2017-07-21 20:15:01 +00:00
Tao Bao 9a5f419ecf Look for non-existent files listed in avb_vbmeta_args.
In BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS, if we have defined
"--include_descriptors_from_image" with an image file whose path points
to source tree, add_img_to_target_files.py or sign_target_files_apks.py
may fail to find the file. Because these scripts may run without a
source tree, by taking target_files.zip as the only input.

This CL scans additional locations in the input target_files.zip to find
those missing files in avb_vbmeta_args. As long as the files are included
in the target_files.zip, they get a second chance to be found.

Bug: 63910867
Test: As follows:
 1. Setup BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS with a local file path;
 2. Remove the local file;
 3. sign_target_files_apks.py fails without this CL;
 4. sign_target_files_apks.py works.
Change-Id: I3c58f80a5535db02b74cfe40d0c0beff72587cf8
(cherry picked from commit 1dc5d47653)
2017-07-21 11:57:00 -07:00
Ivan Lozano b4749cb0fc Fix exclusion overriding local integer_overflow.
INTEGER_OVERFLOW_EXCLUDE_PATHS should only apply to the global sanitizer
setting, and should not override local module settings. This pulls out
the check so it occurs earlier and does not interfere with local
settings. This makes Make consistent with Soong's behavior as well.

Bug: 30969751
Test: Created a test build file with this explicitly set, excluded the
path, and checked if it was still being sanitized.

Change-Id: I9020d92bae136b6087d37f71d5337acaefe850b4
2017-07-21 10:53:13 -07:00
Tobias Thierer 40594041f4 Merge "droiddoc: Fix trailing ':' in -classpath, -sourcepath values" 2017-07-21 09:43:30 +00:00
liuchao bb2b4bce5b Enable ubsan check flag in build
Ubsan is currently support ARM/ARM64,
so It's OK to enable the build Flag

Test: build test module with flags in Android.mk:
      LOCAL_SANITIZE := undefined
      LOCAL_SANITIZE_DIAG := undefined

BUG:38250996
Change-Id: I6c640bad67353cc736640b2e3c4a0b1812dde3fc
2017-07-21 02:31:09 +00:00
Colin Cross bf4ac7a82f Disable desugaring try-with-resources
Desugaring try-with-resources is not necessary for platform builds,
and triggers some problems for apps built as part of the platform
that target SDK versions before 19.  Disable all try-with-resource
desugaring.

Bug: 63180735
Bug: 63900665
Bug: 63901645
Test: m -j ANDROID_COMPILE_WITH_JACK=false checkbuild
Change-Id: I98b827aa1e80b43e6eb7b58254c23c7a4f7dc52d
2017-07-20 15:07:22 -07:00
Tobias Thierer 75ebdd6e7d droiddoc: Fix trailing ':' in -classpath, -sourcepath values
full_java_lib_deps has trailing whitespace if $(LOCAL_CLASSPATH)
is empty. Because the calculation of PRIVATE_CLASSPATH was
missing a $(strip ...), this resulted in an (unintentional)
trailing ':' in the values of the -classpath and -sourcepath
arguments to the javadoc tool, which that tool is documented
to interpret as '.' (the working directory).

This CL converts the expression to a call to normalize-path-list,
from definitions.mk, which contains the $(strip ...):

define normalize-path-list
$(subst $(space),:,$(strip $(1)))
endef

After this CL, an empty $(LOCAL_CLASSPATH) no longer gets
misinterpreted as the current working directory.

This issue was minor (it made no difference in practice).

Test: Treehugger
Bug: 62049770

Change-Id: Ia0e3e5657d0fa057fe998515f34bc7b8df5f6f16
2017-07-20 19:46:18 +01:00
Colin Cross e97e69359a Use java prebuilts
Point the make java variables at JDK prebuilts in
prebuilts/jdk/jdk8, add them to the path, and clean up
some old overrides.

Reapplies Ibbeb30fab96e45aedd5bb6d710d1170f85789982 after updating
some more manifests to include the prebuilts.

Bug: 62956999
Test: m -j checkbuild
Change-Id: I9e27aa5cb04d1ed09e43b798e5d654843afc000f
(cherry picked from commit 1931750940)
2017-07-20 15:14:26 +00:00
Tobias Thierer 43440c22dd Merge "Drop obsolete javac -extdirs commandline arg." 2017-07-20 08:17:34 +00:00
Colin Cross 4d69df5191 Merge "Revert "Use java prebuilts"" 2017-07-19 22:44:12 +00:00
Colin Cross 02112900cc Revert "Use java prebuilts"
This reverts commit 1931750940.

Change-Id: I7a99fd6c53d35a2a674f2d60b113a727f3c453ce
2017-07-19 22:42:46 +00:00
Colin Cross 26e1b6d6c2 Merge "Use java prebuilts" 2017-07-19 22:08:48 +00:00
Tobias Thierer 8003d944a1 Merge "Make 'make docs' work on OpenJDK 9 toolchain." 2017-07-19 09:49:33 +00:00
Treehugger Robot cc96704ad2 Merge "Remove JNI_H_INCLUDE from make." 2017-07-19 01:33:50 +00:00
Ivan Lozano ad9dde8a86 Merge "Allow integer_overflow sanitizer path exclusion." 2017-07-19 01:06:28 +00:00
Ivan Lozano 9a82bfdc68 Allow integer_overflow sanitizer path exclusion.
Add support for excluding paths from having integer_overflow applied to
them when using SANITIZE_TARGET=integer_overflow via an
INTEGER_OVERFLOW_EXCLUDE_PATHS make and product variable. This covers
the make side of the change.

Bug: 30969751
Test: Build with SANITIZE_TARGET=integer_overflow
SANITIZE_TARGET_DIAG=integer_overflow
INTEGER_OVERFLOW_EXCLUDE_PATHS=<path> and confirmed this was no
longer being applied to binaries in that path.

Change-Id: I24e328257bc5a7962024c8676a1e23d7d70a8666
2017-07-18 15:14:22 -07:00
Steven Moreland 5d3b159bfb Remove JNI_H_INCLUDE from make.
It's now specified and exported from Soong.

Bug: 63762847
Test: make libraries find their headers

Change-Id: Ica5afe7465d90230628f3a924e929df38d25cdd9
2017-07-18 14:44:21 -07:00
Tobias Thierer 78d2983566 Drop obsolete javac -extdirs commandline arg.
The extension directory defaults to lib/ext and does not
exist by default. Setting it to the empty string de facto
disables this obsolete feature.

AOSP is moving to a hermetic toolchain so this argument
will stop working soon. Further, OpenJDK 9 javac no longer
supports this command line argument when compiling for
-source 1.9 -target 1.9.

This command line argument has been around since the
earliest versions of Android, but is now obsolete.
This CL drops it.

Bug: 63746471
Test: Treehugger
Change-Id: Ia0214c1b192e3ffda10772d777557a81ce346c03
2017-07-18 16:17:15 +01:00
Tobias Thierer 0b05860556 Make 'make docs' work on OpenJDK 9 toolchain.
OpenJDK 9's javadoc tool doesn't support the -bootclasspath
command line option, even with -source 1.8.

Instead, under OpenJDK 9, javadoc needs to be passed a
--patch-module argument to tell it the location of the
classes patching packages from java.* modules.

The source files in libcore/{dalvik,libart,luni,ojluni} and
external/icu/android_icu4j that go into PRIVATE_BOOTCLASSPATH
patch packages from the modules java.base, java.desktop,
java.logging, java.prefs, java.sql, jdk.net, and
jdk.unsupported. However, this CL takes the simpler approach
of placing them all in java.base, which appears to work for
the purposes of the javadoc run.

Test: Ran the following both on OpenJDK 8 toolchain and on
      OpenJDK 9 (with EXPERIMENTAL_USE_OPENJDK9=true):
      rm -rf out/target/common/docs/ && make docs
Test: Compared (via meld) the contents of out/target/common/docs
      for the two toolchains (there were some differences, see bug).
Bug: 62049770

Change-Id: If3dd927477ca32dab7ffb528350de872e1017184
2017-07-18 16:03:35 +01:00
Treehugger Robot c7e3e962f8 Merge "Revert "Use dx.jar directly"" 2017-07-18 07:08:19 +00:00
Colin Cross e44e75aa89 Revert "Use dx.jar directly"
This reverts commit e37a3c959a.

Reason for revert: breaks art test runner

Change-Id: Ice0cd3020ddec7f31eb789867a45f047a75a05d0
2017-07-18 05:22:59 +00:00
Colin Cross c68434c971 Merge "Use dx.jar directly" 2017-07-17 20:40:13 +00:00
Jeff Gaston 483fae7430 Merge "Update to latest jacoco usage" 2017-07-17 20:36:39 +00:00
Treehugger Robot abf553c9d3 Merge "custom_images: support verity fec (forward error correction)" 2017-07-14 23:51:47 +00:00
Tianjie Xu 1b28eca1a1 Merge "Generate brotli compressed {}.new.dat for full OTA" 2017-07-14 23:21:54 +00:00
Treehugger Robot 126e625fed Merge "Fix LOCAL_JAR_PROCESSOR dependency" 2017-07-14 23:06:48 +00:00
Colin Cross 1931750940 Use java prebuilts
Point the make java variables at JDK prebuilts in
prebuilts/jdk/jdk8, add them to the path, and clean up
some old overrides.

Bug: 62956999
Test: m -j checkbuild
Change-Id: Ibbeb30fab96e45aedd5bb6d710d1170f85789982
2017-07-14 14:18:53 -07:00
Jeff Gaston aaae43cd24 Update to latest jacoco usage
Bug: 36792868
Test: EMMA_INSTRUMENT_STATIC=true m -j

Change-Id: I419b543283b52be9a72f5c6b10e4cbea68782174
2017-07-14 13:04:05 -07:00
Treehugger Robot f4f8e91a5d Merge "Define paths for vendor native tests." 2017-07-14 18:34:59 +00:00
Tianjie Xu b0a29ad8c2 Generate brotli compressed {}.new.dat for full OTA
Brotli has a better compression ratio than deflation. So for non-AB
full OTA, we can compress the new.dat with brotli first and store it
in the zip package.
This increase the OTA generation time by ~5 minutes for a full OTA
(measured based on 2.0G system.new.dat)

Bug: 34220646
Test: Generate a full OTA for bullhead
Change-Id: I9c0550af8eafcfa68711f74290c8e2d05a96648f
2017-07-14 10:53:21 -07:00
Bowgo Tsai 8ec2a1cb08 custom_images: support verity fec (forward error correction)
Bug: 63691195
Test: `make custom_images` with CUSTOM_IMAGE_SUPPORT_VERITY_FEC := true
Test: boot device with the custom image built above

Change-Id: I198fa1e0697cb00712bbfb6f1a717ec623703ede
2017-07-14 21:47:13 +08:00
Treehugger Robot b253e8e854 Merge "Don't allow JNI headers for vendors" 2017-07-14 03:34:50 +00:00
Colin Cross 89b802b994 Fix LOCAL_JAR_PROCESSOR dependency
The LOCAL_JAR_PROCESSOR rule should depend on the path to the
processor jar and not the module name.

Test: m -j && m -j
Change-Id: I5ebd4cd3ad4429918edfd0a8cb5cb9a4e7e86ca7
2017-07-13 19:25:47 -07:00
Dan Willemsen 80c05c518b Merge "Stop using make wrapper around soong_ui" 2017-07-13 21:30:25 +00:00
Steven Moreland cbfba70a9f Define paths for vendor native tests.
Test: manually check paths are desired using:
  $(error $(TARGET_OUT_VENDOR_NATIVE_TESTS))
  with both 'm -j' and 'm -j BOARD_VNDK_VERSION=current'
Fixes: 62495833
Change-Id: I236718f845d8ab604a0aec06b3220bc1c4f3d36b
2017-07-13 15:46:00 +00:00
Jiyong Park b43a52d79d Don't allow JNI headers for vendors
This is already blocked in Soong. Do the same for make.

Bug: 63553556
Test: BOARD_VNDK_VERSION=current m -j libSampleAuthJNI cannot be built
Change-Id: I04a89b3f9de903a6b0384f13d5a80886344c14b4
2017-07-13 15:51:07 +09:00
Dan Willemsen d41ec5a3bc Stop using make wrapper around soong_ui
Instead of running make -> makeparallel -> soong_ui, just run soong_ui.
Soong_ui now handles user-facing argument parsing.

The user visible changes should only be:
* Most `make` command line options are no longer supported. Many didn't
do anything useful before this change either.
* `-j` is now implied, so not specifying it will default to full
parallelism instead of a single-threaded build.
* `make` debug messages are removed:
  make: Entering directory ...
  make: Leaving directory ...
  make: *** [run_soong_ui] Error 1

We still support the make workflow for users that don't use envsetup.sh
-- the build servers primarily, but also various helper scripts. These
will be converted later.

Test: in $TOP; make nothing
Test: in $TOP/bionic; make (runs real make, fails w/no makefile)
Test: in $TOP; m nothing
Test: in $TOP; mm nothing
Test: in $TOP; mma nothing
Test: in bionic/libc; m nothing
Test: in bionic/libc; mm
Test: in bionic/libc; mma
Test: in $TOP; mmm bionic/libc
Test: in $TOP; mmma bionic/libc
Test: in bionic; mmm libc
Test: in bionic; mmma libc
Test: set WITH_STATIC_ANALYZER=1, repeat above
Change-Id: Ic00190ac65a6aa924dad35d3d540c11d653b9c53
2017-07-12 17:16:49 -07:00
Treehugger Robot 1aa29599c6 Merge "fix: device_kernel_headers can't be found in the make world" 2017-07-12 20:49:12 +00:00