Commit Graph

17293 Commits

Author SHA1 Message Date
Andreas Gampe
2114c5ab3f Build: Do not build sanitize-never executable
When LOCAL_SANITIZE := never is given for an executable, skip
building the binary in the ASAN build stage.

Bug: 117579123
Test: Build ASAN image with a never-sanitized executable
Change-Id: I6495fc857678ca9b46527c7d60ee71112004266d
2018-10-10 19:27:04 -07:00
Colin Cross
ff999725ac Merge changes I6a4060a7,I7743fbda,I88eb24f8
* changes:
  Unnest independent dexpreopt conditionals
  Indent dex_preopt_odex_install.mk
  Revert "Build: Do not treat org.apache.http.legacy.boot as boot classpath"
2018-10-10 22:35:49 +00:00
Treehugger Robot
471656df53 Merge "Initialize variable to fix wrong odex installed" 2018-10-10 20:06:32 +00:00
Colin Cross
c18757e34d Unnest independent dexpreopt conditionals
Most of the 6 nested conditionals are independent and can be
evaluated individually.  This has a slight change in behavior,
disabling preopt for a module in the product will now override
LOCAL_DEX_PREOPT, but that seems preferable.

Test: m
Change-Id: I6a4060a78df729c34bbf6978c84993859a947bf7
2018-10-10 10:12:03 -07:00
Treehugger Robot
c79539baca Merge "Prebuild: Remove --compile-pic and -Xnorelocate." 2018-10-10 09:39:24 +00:00
Po Hu
eaef4d8b9f Initialize variable to fix wrong odex installed
When "PRODUCT_DEX_PREOPT_GENERATE_DM_FILES := true" and
"PRODUCT_DEX_PREOPT_DEFAULT_COMPILER_FILTER := verify" are set,
boot jar may wrongly refer to previous module's variables such as
my_generate_dm, my_built_dm and my_installed_dm. And then cause
unexpected files installed along with this boot jar.

So initialize my_generate_dm to empty at first.

Bug: 117526952
Test: make out/target/product/generic/module-info.json
Test: cat out/target/product/generic/module-info.json | grep '"apache-xml":'
Change-Id: Iaa851f4fb530b3446de3dbcb1f54e545938830ce
2018-10-10 13:40:15 +08:00
Colin Cross
0a69bb6c90 Indent dex_preopt_odex_install.mk
Test: m checkbuild
Change-Id: I7743fbda98d1f1ea1d3e8242905239ff0115b6a9
2018-10-09 21:20:21 -07:00
Paul Duffin
cb846fa6f8 Revert "Build: Do not treat org.apache.http.legacy.boot as boot classpath"
This reverts commit 039bb48f72.

This is no longer needed. Depending on the setting of REMOVE_OAHL_FROM_BCP the org.apache.http.legacy library is now either on the bootclasspath or a standalone library, it cannot be both.

Bug: 18027885
Bug: 72167111
Change-Id: I88eb24f8a4324e206fd384cd8adf79acd6fc0858
Merged-In: I88eb24f8a4324e206fd384cd8adf79acd6fc0858
Test: make with and without REMOVE_OAHL_FROM_BCP=true
(cherry picked from commit 9390268746)
2018-10-09 21:19:25 -07:00
Treehugger Robot
0443b46066 Merge "Remove extra JNI libs from prebuilt APKs" 2018-10-09 22:35:26 +00:00
Treehugger Robot
9cb5cfad6d Merge "Add support for JNI libraries to soong_app_prebuilt.mk" 2018-10-09 21:50:40 +00:00
Colin Cross
0e8a2ee172 Remove extra JNI libs from prebuilt APKs
If an APK specifies LOCAL_PREBUILT_JNI_LIBS embedded in the prebuilt
APK, remove any that aren't listed.  Restores the behavior from before
I82dd3aa441712772a1d1ddd6aaf5f41179facaa7.

Bug: 69500920
Test: m checkbuild
Change-Id: I971a9c4206604c172d77144df4c0ed9a8b1c5dd0
2018-10-09 13:06:01 -07:00
Andreas Gampe
10b28befbe Merge "Change install paths of libs in sanitize builds" 2018-10-09 18:14:20 +00:00
Vladimir Marko
a332207767 Prebuild: Remove --compile-pic and -Xnorelocate.
The --compile-pic argument is obsolete, all generated code
is now PIC.

The -Xnorelocate is ignored by dex2oat since
    https://android-review.googlesource.com/771001
where the option was reinterpreted from "use patchoat if
needed" to "relocate the boot image in memory if possible"
and dex2oat forbids that relocation.

Test: Pixel 2 XL boots.
Bug: 77856493
Change-Id: I60cdf81267a129be8a482af26fb865110561268e
2018-10-09 17:35:07 +01:00
nelsonli
c91284dcd8 Build System: Ignore copies in copy-many-files if src == dst
BUG: 117224272

Test: 1. Modify build/core/base_rules.mk
         Add the following line after line 617
	  $(eval my_compat_dist_$(suite) += out/a:out/a))
      2. touch out/a
      3. make -j BluetoothInstrumentationTests
      4. It should build pass without any dependency errors.

Change-Id: I40372eab5b74e042f605c3cb38e72942531ed69a
2018-10-09 14:46:40 +08:00
Colin Cross
0ab356ac20 Merge "Use zip2zip for uncompress-dexs and uncompress-shared-libs" 2018-10-09 00:29:14 +00:00
Colin Cross
f05a023a5a Merge "Don't zip hiddenapi output jar into jar" 2018-10-08 22:04:59 +00:00
Colin Cross
dac94fff8f Use zip2zip for uncompress-dexs and uncompress-shared-libs
Unzipping and rezipping files causes the umask of the host machine
to affect the permissions in the APK.  Use the new zip2zip -0 feature
to rewrite the zip file with selected files uncompressed.

Bug: 69500920
Test: m checkbuild
Change-Id: I82dd3aa441712772a1d1ddd6aaf5f41179facaa7
2018-10-08 12:49:11 -07:00
Colin Cross
c3c62fba96 Don't zip hiddenapi output jar into jar
Zip classes*.dex so that the jar does not contain an empty
classes.jar.

Test: m out/target/common/obj/JAVA_LIBRARIES/android.test.base.impl_intermediates/javalib.jar
Change-Id: I53bdd2035b2963dd781734da64058c95e1cff9d4
2018-10-08 11:23:59 -07:00
Dan Willemsen
7a5c5d730f Update for flags passed from Soong
Obsolete more GCC-specific flags, TARGET_(arm|thumb)_CFLAGS now contains
pre-filtered clang flags, and GLOBAL_CLANG_CFLAGS_NO_OVERRIDE now
contains all flags instead of just the clang additional flags.

Test: m
Change-Id: I068f155041e681068d38e1a5b6b04d354b85ccee
2018-10-07 19:43:23 -07:00
patricktu
b23d8e6502 aidegen: Collect all java sources from makefile system.
Bug: 117129969
Test: make -j64 out/target/product/generic_x86_64/module-info.json
Change-Id: I4bc6cab8e56a1ed6485ad2f5f22fe9b8149b25d0
2018-10-05 14:55:36 +08:00
Yifan Hong
3f0d1ad451 Merge "Support "updatable groups"." 2018-10-04 22:21:57 +00:00
Yifan Hong
b43012f0ad Support "updatable groups".
* BOARD_SUPER_PARTITION_GROUPS defines a list of "updatable groups". Each
updatable group is a group of partitions that share the same pool of free
spaces.

* For each group in BOARD_SUPER_PARTITION_GROUPS, a BOARD_{GROUP}_SIZE and
BOARD_{GROUP}_PARTITION_PARTITION_LIST may be defined.
    - BOARD_{GROUP}_SIZE: The maximum sum of sizes of all
      partitions in the group.
      If empty, no limit is enforced on the sum of sizes for this group.
    - BOARD_{GROUP}_PARTITION_PARTITION_LIST: the list of partitions that
      belongs to this group.
      If empty, no partitions belong to this group, and the sum of sizes is
      effectively 0.

* BOARD_SUPER_PARTITION_PARTITION_LIST should not be defined
by the device. It is now computed from all
BOARD_{GROUP}_PARTITION_PARTITION_LIST.

* Each 'updatable group' has its own pool of space for its
partitions to grow into. Enforce the following:
    * sum(all partitions) <= super partition (/ 2 for A/B)
    * For each group, sum(partitions in group) <= group size
    * sum(all group sizes) <= super partition (/ 2 for A/B)

Test: builds
Bug: 111610495
Change-Id: I072b011714ec31a1d8813cc75edd27da3c6ff39a
Merged-In: I072b011714ec31a1d8813cc75edd27da3c6ff39a
2018-10-04 13:08:56 -07:00
Colin Cross
0fa751ba68 Add support for JNI libraries to soong_app_prebuilt.mk
Use install_jni_libs_internal.mk to install JNI libraries alongside
preinstalled APKs.  APKs with embedded JNI libraries are handled
within Soong.

Bug: 80095087
Test: m checkbuild
Change-Id: I2ecf10b6771dff14c940cc6e6442eb2ae43a75b0
2018-10-04 11:24:15 -07:00
David Anderson
d1428e2748 Merge "Remove uuidgen.py and update lpmake parameters." 2018-10-04 18:20:47 +00:00
Anton Hansson
d6e5cb1add Merge "Move a few more string functions to strings.mk" 2018-10-04 13:47:55 +00:00
David Anderson
b954afec0b Remove uuidgen.py and update lpmake parameters.
Bug: 117229984
Test: device builds with PRODUCT_USE_LOGICAL_PARTITIONS=true
Change-Id: Ib39d19726861dd79d90923163f9e594ed91da4ca
2018-10-03 14:24:34 -07:00
Anton Hansson
ee08d635c7 Merge "Fix TWS requirement in definitions.mk" 2018-10-03 15:41:22 +00:00
Anton Hansson
4967b34ddd Move a few more string functions to strings.mk
So they can be used in product.mk

Bug: 80410283
Test: make
Change-Id: Ic94754f6b48a3281ca1dd8c195a3410b543eb366
2018-10-03 15:59:39 +01:00
Anton Hansson
a0f91bd506 Fix TWS requirement in definitions.mk
Removing this TWS breaks the build. Add a backslash to avoid
needing it.

Test: make
Change-Id: I4f8e127218ffbf55a3e11600569f0100e914d2e2
2018-10-03 13:38:00 +01:00
Anton Hansson
dd34185ae1 Merge "Tidy up TARGET_COPY_OUT_X variable defs" 2018-10-03 08:56:46 +00:00
Treehugger Robot
9c68021f67 Merge "Pass TARGET_PREFER_32_BIT_APPS to Soong" 2018-10-03 03:05:08 +00:00
Anton Hansson
379b2ba485 Tidy up TARGET_COPY_OUT_X variable defs
- Don't duplicate the same comment over and over
- Stop defining values that are immediately overwritten

Test: make
Change-Id: I87cb2c2b76bb69a026695e145849f4acee197b94
2018-10-02 14:12:50 +01:00
Anton Hansson
ae9f10544d Change install paths of libs in sanitize builds
This changes the paths for partitions modules inside the 'asan'
subdirectory to match those used when not making sanitized builds.

This fixes get_non_asan_path macro, which just strips the 'asan' dir
from the lib paths.

For example, on a device without a product partition, previously
libraries would install install in:
- out/target/product/x/asan/product/lib[64]/y.so (with SANITIZE_TARGET)
- out/target/product/x/system/product/lib[64]/y.so (no SANITIZE TARGET)

Stripping the asan dir would look for the lib in out/.../<x>/product/,
which didn't exist. The new path for SANITIZE_TARGET builds is now
out/target/product<x>/asan/system/product/lib[64]/<y>.so

Bug: 117089649
Test: m; SANITIZE_TARGET=address m (for a device without /product)
Change-Id: Id663c5f284e3b4fc65ed8cb8c2da6bcf6542e034
2018-10-02 13:16:05 +01:00
Vladimir Marko
e47795ba3d Build: Remove boot*.art.rel file generation.
These files are now unused, patchoat shall be removed soon.

Test: m
Test: Pixel 2 XL boots.
Bug: 77856493
Change-Id: I07babe7e6b2657e340265e74042e958a91678329
2018-10-02 08:54:11 +01:00
Anton Hansson
ec382da316 Merge "Record installed JNI libs in INSTALLED files." 2018-10-02 07:35:31 +00:00
Colin Cross
7307de5e0c Merge changes I9e73c0b8,Iac5c4327,Idf6fbc94
* changes:
  Disable sdk_addon for mmm
  Use soong_zip for platform.zip
  Use soong_zip for otatools.zip and otacerts.zip
2018-10-02 01:55:47 +00:00
Colin Cross
d0f3a3b01a Pass TARGET_PREFER_32_BIT_APPS to Soong
Bug: 80095087
Test: m checkbuild
Change-Id: I1ca8bebb360dd1e8102bb5840709f79cc22be03c
2018-10-01 15:31:54 -07:00
Treehugger Robot
e70d749190 Merge "Fix boot_profile_jars.zip" 2018-10-01 20:53:22 +00:00
Colin Cross
8b6c94c744 Disable sdk_addon for mmm
mmm has a smaller view of the world and cannot generate sdk-addon
zip files.

Bug: 116818719
Test: m checkbuild
Change-Id: I9e73c0b84a42aaaa353704d6ab245b449166606d
2018-10-01 13:41:27 -07:00
Colin Cross
7363cde33e Use soong_zip for platform.zip
soong_zip produces more reproducible zip files that are not
affected by umask values or timestamps.

This partially reapplies I2eca2f7618e06c0b5893ff54c79261921fe051d6
with fixes for 64-bit only builds and directories that are changing
during zipping.

Bug: 69500920
Test: m checkbuild
Test: m checkbuild platform
Test: lunch hikey64_only && m platform
Test: contents of zips is unchanged
Change-Id: Iac5c43276f7ae700d4d13d0ef27003d09c1c87e0
2018-10-01 13:41:27 -07:00
Colin Cross
21122f901c Use soong_zip for otatools.zip and otacerts.zip
soong_zip produces more reproducible zip files that are not
affected by umask values or timestamps.

This partially reapplies I2eca2f7618e06c0b5893ff54c79261921fe051d6.

Bug: 69500920
Test: m checkbuild
Test: contents of zips is unchanged
Change-Id: Idf6fbc94e257dc34af4f5b115d740b7cb9bac015
2018-10-01 13:41:27 -07:00
Colin Cross
aa1645504f Merge "Fix PDK builds" 2018-10-01 20:30:30 +00:00
Colin Cross
1a81e372b5 Fix boot_profile_jars.zip
soong_zip was previously ignoring trailing command line arguments,
but now they are an error.  boot_profile_jars.zip had all its
files as trailing arguments instead of as -f flags, previously
resulting in an empty zip, but now causing an error.  Fix the
arguments to use -f before each file.

Test: m PRODUCT_DIST_BOOT_AND_SYSTEM_JARS=true out/target/product/sailfish/boot_profile_jars.zip
Change-Id: I8ac4aa4fbca812b8aa2ff9526e1ed7c769dd8420
2018-10-01 17:45:59 +00:00
Anton Hansson
6961e53876 Create a dump-files phony target.
This is more convenient than the current always-off conditional,
because it doesn't require changing the build system to dump
the installed files.

Bug: 80410283
Test: m dump-files
Change-Id: I7d395750673aff07d2018ffce8321dd280b94ccf
2018-10-01 16:26:17 +01:00
Anton Hansson
8b7ecc06c7 Record installed JNI libs in INSTALLED files.
The installed jni libs were previously not tracked in the way
other installed files were. One problem with this is that the
product-installed-files macro failed to track these files.

Bug: 80410283
Test: build_test
Change-Id: I85f528f228ef6921ed596d58303991a5370ae631
2018-10-01 16:23:53 +01:00
Colin Cross
53c8f9789a Fix PDK builds
$OUT/obj/APPS/SystemUI_intermediates/package.dex.apk was not being
written after being converted to Soong.  Add a copy rule for it
to soong_app_prebuilt.mk, add it as an implicit output to the Make
rules that create it, and add it as a real dependency to the
platform.zip rules.

Test: m platform
Change-Id: I96f58d3d80b764a51a6acb87e92498589cfe5c18
2018-09-29 22:33:41 -07:00
Dan Willemsen
95e91f8e39 Remove obsolete make settings
We turn off the default implicit and suffix rules with
--no_builtin_rules.

DELETE_ON_ERROR has no effect, ninja just keeps track of whether we've
successfully built it or not.

Test: build-aosp_arm.ninja is the same before/after
Change-Id: I2e407d4a12dd3a2af3e923fe3e1a3f7a6e2a463c
2018-09-28 10:27:48 -07:00
Treehugger Robot
1ac080e9e5 Merge "Pass classpath to d8" 2018-09-27 23:27:45 +00:00
Tom Cherry
b6eeba5bab Merge "Allow BOARD_USES_RECOVERY_AS_BOOT without BOARD_BUILD_SYSTEM_ROOT_IMAGE" 2018-09-26 22:24:54 +00:00
Treehugger Robot
004b9b7b7d Merge "Create an artifact to output module-info and OWNERS files in source code" 2018-09-26 21:37:54 +00:00