jar -C <dir> . produces a jar containing files in filesystem order,
which can vary between builds. Manually find and sort the list of
files, and convert them into a list of -C <dir> <file> pairs.
Fixes: 64634025
Test: m -j checkbuild
Test: m -j out/target/product/sailfish/system/framework/ext.jar, check
that entries are sorted
Test: m -j out/target/product/generic_arm64/system/framework/ext.jar on mac
Change-Id: I7dced6acbe621a60cd49daf17872941485602732
For reference we are trying to build an AAR and want to filter out anything private and anything marked @hide.
Test: built dist and verified package contents.
Change-Id: I2b9847501d677f56d3918ac0694e6e1f6cda32c8
Merged-In: I2b9847501d677f56d3918ac0694e6e1f6cda32c8
(cherry picked from commit 37926dedfd)
Commit 2bdbb6e935 added
command line flags to the unzip command in unzip-jar-files
to skip the path 'module-info.class', if present.
This has led to log spam because unzip warns when an
excluded file is not present in the zip/jar file, and
that warning cannot be suppressed via command line flags.
Therefore, this CL modifies the unzip-jar-files macro
to rm -f the module-info.class file after the fact, if
it was created, which does not lead to log spam.
Note that module-info.class will be filtered out of
.jar dependencies (such as ASM 6.0) regardless of
whether one is building with an OpenJDK 9+ toolchain.
Test: Treehugger.
Bug: 64719206
Change-Id: Ic6be806a50557b4ba13fc18da91a8af12d14586c
Right now we add the '_asan' suffix to the build flavor whenever
SANITIZE_TARGET is defined. This patch ensures the suffix is only
added when SANITIZE_TARGET=address.
Test: Checked flavor of SANITIZE_TARGET=address and integer_overflow
builds.
Bug: 30969751
Bug: 64561273
Change-Id: Ie20340f81b395e0b6b5f8086350bbc20f83d5fa4
This reverts commit 9cc3c76abd which
added command-line parameters to the invocation of SignApk to permit
it to access sun.** classes which are not accessible by default in
Java 9. This hack is no longer needed because SignApk no longer needs
this access because of tools/apksig commit
b40d3e4821bc9cb094b0ff13153340e3a0da1b3f which switched APK JAR
signature generation logic away from directly using sun.** classes.
Test: find out -name CtsPkgInstallTinyApp* | xargs rm -Rf
mmma -j74 cts/hostsidetests/appsecurity/test-apps/tinyapp
Test: find out -name CtsPkgInstallTinyApp* | xargs rm -Rf
EXPERIMENTAL_USE_OPENJDK9=target1.8 \
OVERRIDE_ANDROID_JAVA_HOME=<path to Java 9 SDK> \
PATH=${OVERRIDE_ANDROID_JAVA_HOME}/bin:${PATH} \
mmma -j74 cts/hostsidetests/appsecurity/test-apps/tinyapp
Bug: 37137869
Change-Id: I389c366f8a5bed56c496293bc871458adbedb0e8
Overwrite TARGET_(2ND_)ARCH_VARIANT as armv8-a if
TARGET_(2ND_)CPU_VARIANT is set to some known armv8-a core like
cortex-a53, cortex-a73, kryo, denver64 etc.
For clang, -march is ignored if -mcpu is set to specific core so this
change doen't impact the objects built for armv7-a-neon/some_armv8_core
since it's treated as armv8-a/some_armv8_core.
Bug: 62895439
Test: Built modified aosp_arm64 with armv8-a as its TARGET_2ND_CPU_ARCH
and generic as its TARGET_2ND_CPU_VARIANT successfully.
"lunch hikey-userdebug; make" and verify TARGET_2ND_ARCH_VARIANT
is overwritten.
Change-Id: If4260cf397783b5f56c4fd432615f4676429a1d3
This phony module aggregates all the VNDK-related libraries so that they
can be installed to the system partition simply by adding 'vndk_package'
to PRODUCT_PACKAGES. This is to sneure that all VNDK libraries are
installed even when there is no vendor library using some of the VNDK
libs (especially when building system image only).
Bug: 64013660
Test: BOARD_VNDK_VERSION=current m -j vndk_package
Merged-In: I3a14a7eaaffd6a7f3258a4be59b1c5813153714d
Change-Id: I3a14a7eaaffd6a7f3258a4be59b1c5813153714d
Permit transition of logcat to Android.bp by moving the debug
target logpersist.start to the PRODUCT_PACKAGES_DEBUG list.
Test: compile
Change-Id: I6cfd4c40f848a2ff2661e3692fa8cd69ed99e8c9
Test: runs "m -j checkbuild tests cts", and then --bootclasspath_entry
shows up in desugar command.
Change-Id: Ibcc8a3f51438723151c57f79e5a1184350efbd30
During the Android build process, multiple .jar files are
unzipped into the same directory. If the .jar is an OpenJDK 9
modular jar (with a module-info.class in the root directory),
the last module-info.class extracted will overwrite any earlier
module-info.class files extracted, and will cause all extracted
class files to be considered part of that module.
Therefore, this would break compilation under OpenJDK 9 (with
-target 1.9 -source 1.9). This CL fixes this by omitting the
module-info.class file (if present) when extracting the .jar.
This essentially turns any modular jar into a regular jar,
replacing the module with corresponding classes on the classpath.
This is sufficient for now because Android does not currently
support module dependencies.
Test: Treehugger
Bug: 38177569
Change-Id: Ia184e64d2f24b8ca79aeab1c00bd5da0386530bf
This doesn't seem to affect the Kati emulation (at least on Linux), but
findleaves.py on both Mac and Linux checks for duplicate files (via
inode) and only emits build/{target,tools}/Android.mk instead of that
and build/make/{target,tools}/Android.mk.
Bug: 64397960
Test: build/tools/findleaves.py --prune=.git --prune=.repo --dir=. Android.mk
Test: m -j signapk
Change-Id: Ie6219a809e403e6cc9371b5c0370c7925a592a0d
Allows grouping of classes with dirty static fields to be grouped
together in the image to have fewer dirty pages.
(cherry-picked from commit 865d54caf2)
Bug: 62554875
Test: mm test-art-host
Merged-In: I2486d2704d74a192f1ecdc02589e569b61efa4ae
Change-Id: I2486d2704d74a192f1ecdc02589e569b61efa4ae