Commit graph

1271 commits

Author SHA1 Message Date
Evgenii Stepanov
3148fe365b Add armv9-a arch variant.
Bug: b/263283855
Test: none
Change-Id: I0e9fd48305ad1a26a708ecb2f0d3e7a07e14dbc8
2023-03-05 14:38:12 -08:00
Ryo Hashimoto
05f2b52d16 Add arch variants for Intel Atom CPUs
Bug: 259201836
Test: Build aosp_x86_64-eng with modified
build/make/target/board/generic_x86_64/BoardConfig.mk

Change-Id: Ide469d4aaa722602dbcc797cf6518fd20d24764c
2022-11-16 18:28:15 +09:00
Colin Cross
dac728895d Add initial files for aosp_riscv64 target
Add barebones files to support building for a riscv64 target.

Bug: 250918230
Test: lunch aosp_riscv64-userdebug && m ALLOW_MISSING_DEPENDENCIES=true nothing
Change-Id: I61e6ecf6706b7682c77b07e6593d78c7d1eaef39
2022-10-05 12:04:31 -07:00
Yi Kong
b1ebaebd94 Update to llvm-ar's new argument format
llvm-ar bundled in the next llvm update will stop accepting the legacy
single-dash argument format.

Bug: 219872355
Test: presubmit
Change-Id: Iede68e4b13c3a01c176d26f335f96879c5c72c12
2022-02-16 18:41:09 +08:00
Dan Willemsen
8820840d57 Add basic Darwin+Arm64 support as HOST_CROSS
Soong will use this to turn on universal binary support (X86_64 + Arm64
in the same binary).

Bug: 203607969
Test: m sdk-repo-platform-tools sdk-repo-build-tools on Mac
Change-Id: I04612136a42e85f4add95202ce20e741d9aaa302
2021-12-08 09:26:27 -08:00
Stephen Hines
d49aa55cf1 Remove all unused, legacy FDO build rules
There are no current users of this feature. All remaining references are
legacy scripts that aren't actually in-use today.

https://source.corp.google.com/search?q=BUILD_FDO_INSTRUMENT%20-file:build%2F
https://source.corp.google.com/search?q=LOCAL_FDO&ct=os&sq=package:%5Eandroid$

Test: build
Change-Id: I86ff6531a0868fb8e30741f0d04de1739fba4586
2021-04-05 17:13:00 -07:00
Tamas Petz
1c879b8822 Add armv8-a-branchprot arch variant
This empty file is required to be present.

Test: fvp_mini-eng* builds and boots on FVP

*: with TARGET_ARCH_VARIANT := armv8-a-branchprot

Change-Id: I689033f16663822e263f45ab5e46c9f120c9dca0
2021-01-28 17:10:24 +01:00
Roland Levillain
9f5b7aa9b2 Merge "Add new armv8-2a-dotprod arch variant support." 2020-09-21 17:54:04 +00:00
Raphael Gault
b817bb161d Add new armv8-2a-dotprod arch variant support.
This patch introduces the .mk file required to support build for the new
armv8-2a-dotprod Arm64 arch variant. The file just needs to be present
but does not require to contain anything.

Test: test-art-target on Pixel 4.

Change-Id: I4b6a1e306f9819cf31cd556351bd3e8cf08e2537
2020-09-16 14:53:06 +00:00
Jiyong Park
e80c45f6ac HOST_CROSS_OS/ARCH can be configured to linux_bionic/arm64
Previously, HOST_CROSS_OS/ARCH were fixed to windows/x86. This change
makes the setting configuration and adds the support for new OS/ARCH
combo: linux_bionic/arm64.

linux_bionic is the Linux-based host target that uses Bionic (instead of
glibc) as libc. Previously, it supported only x86_64 and the x86_64
target was NOT configured via Make, but directly via editing
soong.variables file. Now, the support for arm64 is being added in the
Soong side and this change makes it possible to configure the target via
Make.

The new HOST_CROSS_OS/ARCH combo will be used for building the host-side
tools (adb, crosvm, etc.) for running Cuttlefish natively on Linux/ARM
hosts.

Bug: 159685774
Test: HOST_CROSS_OS=linux_bionic HOST_CROSS_ARCH=arm64 m nothing

Change-Id: I6b8ed8f7e26908749bbe778fbdcc34cfbde68179
2020-09-09 17:38:25 +09:00
Joel Galenson
154ac1d870 Update language to meet Android's inclusive language guidance
See https://source.android.com/setup/contribute/respectful-code for reference.

Bug: 161896447
Test: Build
Change-Id: I8d33207c84f424e89f367b1c917661347402ae77
2020-07-30 15:05:55 -07:00
Elliott Hughes
f71c05a8e5 Remove unused mips workarounds.
This was never really finished, and hasn't been supported for years.

Test: treehugger
Change-Id: I7668088d1449f33025aaf36fae0817894c84a877
2020-03-06 16:46:59 -08:00
Yi Kong
6c5e504c26 Add back the llvm-ar P flag
The P flag is supported as of llvm r354044, add back the flag to reduce
the size of intermediate archieve files. This does not affect the final
binaries.

Test: build
Bug: 71618641
Change-Id: I4021aec783ba341768893392b73b976c1fa5bdf7
2019-09-06 15:19:59 -07:00
Elliott Hughes
2e51a1553f Switch to toybox stat on macOS too.
Bug: http://b/139450866
Test: builds
Change-Id: I1a992a63fbf5181a48262901730b8b67661cc259
2019-09-05 10:02:41 -07:00
Elliott Hughes
2e6e73bb01 Remove unused BoardConfig variables.
Determined via codesearch.

Test: treehugger
Change-Id: I5138e1b2294d39e11b46f9e1751c41b842c1743b
2019-07-18 21:43:38 -07:00
Sasha Smundak
a638788c1a Tune JVM, print full diagnostics on crash.
JVM occasionally (0.5% time) crashes on entering a method with SIGSEGV.
It might be due to excessive load on the host machine. Reduce the number
of the compiler threads to 6, and do not start all the GC threads
immediately. If JVM crashes, copy full diagnostics to stderr.

Bug: 132766811
Test: treehugger
Change-Id: Ic1b09e0f2cbcf4c22214eaaeae464899b2b99ef7
2019-06-11 13:29:12 -07:00
Jimmy Chen
7a8690455f Revert "Revert "Revert "Print full diagnostics file when Java process crashes."""
This reverts commit 1e3ad0eb5d.

Reason for revert: break build

Change-Id: I43022f556d5b73956d44cdda43b0b2499225b123
2019-06-05 06:47:03 +00:00
Alexander Smundak
1e3ad0eb5d Revert "Revert "Print full diagnostics file when Java process crashes.""
This reverts commit 6c77a6baa6.

Reason for revert: aog/974065 fixes the problem that caused the revert

Change-Id: I935f78762b23ac63a79a9529515ff4ef394d5c3c
2019-06-03 16:55:13 +00:00
Alexander Smundak
6c77a6baa6 Revert "Print full diagnostics file when Java process crashes."
This reverts commit 09fd82ea89.

Reason for revert: This change set the value of JAVA make variable to a string containing "foo bar". When soong_ui is asked to evaluate such string, it drops the quotes, causing bash to treat 'foo' and 'bar' as separate command line arguments.

Change-Id: I81e07c4cd333751d185dc50c49d0638f6511727e
2019-05-31 03:15:09 +00:00
Sasha Smundak
09fd82ea89 Print full diagnostics file when Java process crashes.
Bug: 132766811
Test: treehugger
Change-Id: Id415c01559a941b793b03647354be136fa64d9a7
2019-05-29 17:46:57 -07:00
Colin Cross
88e38f01ba Merge "Add x86 AVX2 and AVX512 supported architectures" 2019-03-20 06:22:22 +00:00
Treehugger Robot
8c2881034a Merge "Add stoney ridge x86 variant" 2019-03-15 21:41:32 +00:00
Anton Hansson
be1f9cb2fa Make it an error to specify the wrong ARCH_VARIANT
It was previously a warning to set an incorrect ARCH_VARIANT
when CPU_VARIANT was set to a cpu for which we knew the arch.

Make it an error, as there are no offenders in the tree.

Re-structure the code to make it a little clearer when you get
a default and when you get an error.

Test: build_test
Change-Id: I5821a8162a59e8c2aed2370068f9eb656ced9d99
2019-02-27 17:27:16 +00:00
Benjamin Gordon
b8bf92e6b8 Add stoney ridge x86 variant
Bug: 124445930
Test: compile and deploy to grunt
Change-Id: Ia73c27f7ce9ca9031e733a3754ffbb2fabeae4d0
2019-02-14 11:03:00 -07:00
Shalini Salomi Bodapati
0b33968b31 Add x86 AVX2 and AVX512 supported architectures
Bug: 123376719
Test: m checkbuild
Change-Id: I74c7a63bbaba993eeb8bdd8c663ffa142c908279
Signed-off-by: Shalini Salomi Bodapati <shalini.salomi.bodapati@intel.com>
(cherry picked from commit f327f5f3f5d03471d69e757fe33899a7fd653f18)
2019-01-30 02:34:05 +00:00
Dan Willemsen
53d62fed72 Bump the remaining 32-bit arm configs to require neon
Stop using armv7-a without neon for 32-bit unbundled apps, and update
generic_x86_arm to match the cuttlefish configuration that includes
neon.

Test: treehugger
Change-Id: Ieb6a2106655803a8ca609907c12168e628ee1b85
2019-01-23 22:27:33 -08:00
Luca Stefani
5f1faeb9c2 Make get-file-size compatible with toybox stat
* Use the same format as mk_qemu_image.sh

Change-Id: I5df23f488006440075a00798a171f7a8856e097a
2019-01-12 19:13:06 +01:00
Artem Serov
f7dccc6bc0 Support kryo385 CPU.
Pixel 3 should use kryo385 CPU.

Related change:
https://android-review.googlesource.com/c/platform/build/soong/+/831260

Test: Builds Pixel 3.
Bug: 119564566
Change-Id: Iede5830093497abe753a34df3bc4913468be39d0
2018-12-11 12:04:52 +00:00
Haibo Huang
6201b9eb5a Remove denver64 from make
Test: build
Bug: 73545680
Change-Id: I8f28c7d6beaa5b0a7de9000ebea2f4d8e87f0381
2018-12-03 22:34:11 +00:00
Miao Wang
62c2390a55 Correctly configure armv8-2a for 32-bit
Bug: 119681317
Test: mm
Test: CtsRenderscriptTestCases
Change-Id: I455c94948430d3cc2dd320cce830ae18be6a93cd
2018-11-27 14:05:48 -08:00
Isaac Lee
ead02eb87d Enable armv8-2a supporting on 2nd arch. variant
Newer cores are implementing armv8-2a ISAs.
Enabling 2nd arch. variant to support for new type of cores.

Test: set TARGET_2ND_ARCH_VARIANT := armv8-2a, build without warnings and not ignore armv8-2a
BUG: 118414869
Change-Id: I1cd64ab0ad9b253ec3d109ebd1dbc7882011ce77
2018-11-13 17:31:28 +08:00
Haibo Huang
e211f7cd2d Add A76 to known v8-a cores
Bug: 117125298
Test: build
Change-Id: Ice05e7d4996252cfe4a9881a628c11b0f12cfd1b
2018-10-12 23:54:51 +00:00
Dan Willemsen
1d090fc0ce Disable 32-bit Darwin builds
Mac OSX 10.14 Mojave deprecates 32-bit executables, and the 10.14 SDK
does not successfully link 32-bit files.

Test: Install Xcode 10 beta, `m checkbuild host`
Change-Id: Ifad471fb88ead4bda870f49837d937fb5742f3f6
2018-08-28 13:21:42 -07:00
Christopher Ferris
47b29ea339 Add support for cortex-a55/cortex-a75.
Bug: 78133793
Bug: 78242072

Test: Builds for target.
Change-Id: I98d638017f943083d3832ec2211333c48f07caf2
Merged-In: I98d638017f943083d3832ec2211333c48f07caf2
(cherry picked from commit ce7bf678f2)
2018-05-11 00:43:19 +00:00
Stephen Hines
d612b8329a Switch back to llvm-ar.
This properly sets -format=gnu for all non-Darwin targets, because
llvm-ar is cross-platform (but defaults to the host environment).

Bug: http://b/71618641
Test: m checkbuild
Change-Id: Ib5d1c112a4ac792a11d1a0721ae6b0a5f9a42727
2018-01-10 15:55:52 -08:00
Dan Willemsen
dd3a27394f Remove armv5te
This architecture only existed for unbundled use, but even the NDK is
removing support in their r17 release, so just remove support for it.

Test: build/soong/build_test.bash -only-config
Test: check buildserver configs, I don't see anything still using armv5
Change-Id: Ic183b510c9ada94438bd4cc2b9362fa438a29ced
2018-01-08 15:26:16 -08:00
Yi Kong
4f2e033447 Revert "Switch to llvm-ar"
This reverts commit 5128702ed3.

Bug: 71694982
Reason for revert: Broke Mac build

Change-Id: I1044eccf943bae3c99e7527bd13989c70743b3d4
2018-01-08 18:09:54 +00:00
Stephen Hines
5128702ed3 Switch to llvm-ar
llvm-ar is required for platform LTO build.

With GNU ar, we used crsPD flags, however 'P' flag is not supported by
llvm-ar. Since none of the platform archive files are built using third
party AR, the 'P' flag should not matter to us. However we've been
relying on one side-effect of 'P', where  'ar foo.a some/path/to/obj.o'
when foo.a already has a file named 'obj.o' will be an append operation,
regardless whether the existing one is the same (ar has no way of
telling the difference). We workaround this by always appending ('q'
flag) for llvm-ar. This may result in larger intermediate archive files
(more duplication) but will not affect the final build result.

Bug: 71618641
Test: m checkbuild
Change-Id: Id96a244cfe49cecfba08cc868dd18934ecb4ff23
2018-01-04 23:50:17 -08:00
Dan Willemsen
2ec3e4a257 Remove Java PATH check, deprecate using PATH in Kati
The Java PATH fixup is now handled within soong_ui, along with the
values of ANDROID_JAVA_HOME based on OVERRIDE_ANDROID_JAVA_HOME /
EXPERIMENTAL_USE_OPENJDK9.

Mark PATH as deprecated, so that any reads/writes will cause warnings.
This will be switched to obsolete once it's verified that there are no
more users.

Using PATH within Kati means that we've got to rebuild the ninja files
whenever your PATH changes, which is not ideal, especially since some of
the envsetup functions can change your PATH. In most cases you only need
to use PATH within the bash portions of the build rules ($${PATH}), which
isn't treated as a make variable, so won't produce an error.

I'm also planning on replacing PATH in a future change with our own
directory that has placeholders for everything in your PATH. This will
let us remove tools that shouldn't be used from the build.

Test: m nothing
Test: build/soong/build_test.bash on AOSP and internal master
Change-Id: I18d8d19cfba313ff9176345bf73ac34e8dbebfbb
2017-11-08 00:24:35 -08:00
Colin Cross
6cdc5d20f3 Update references to build/core to build/make/core
sed -i -e 's"\([^/]\)build/core"\1build/make/core"g' $(git grep -l build/core)

Test: m checkbuild
Change-Id: Idf3a2fed79aee5d2c07bd8e42f0c0660f253ddc2
2017-10-20 12:49:28 -07:00
Colin Cross
d7b99409ce Use prebuilts/jdk/jdk9 if EXPERIMENTAL_USE_OPENJDK9 is set
Bug: 62123342
Test: m -j EXPRIMENTAL_USE_OPENJDK9=1.8 checkbuild
Change-Id: I8be331c422412d6416d92184a2eba093f27fc0fb
2017-10-05 16:47:54 -07:00
Colin Cross
6684528a6d Disable jack completely
Always set ANDROID_COMPILE_WITH_JACK=false.

Bug: 65302138
Test: m -j checkbuild
Change-Id: I98dfdca27b4338048d50e016a79fbf4e3d86a020
2017-09-27 13:17:59 -07:00
Colin Cross
355de0a00d Merge "Switch from jack to javac for unbundled builds" 2017-09-27 03:26:13 +00:00
Colin Cross
5601842176 Disable turbine for unbundled builds
We don't yet have a turbine prebuilt, so disable turbine for
unbundled builds for now.

Test: none
Change-Id: I06179fca1764a86e387c8bd154ae052e2669d15b
2017-09-26 17:39:01 -07:00
Colin Cross
210e530342 Switch from jack to javac for unbundled builds
Default to ANDROID_COMPILE_WITH_JACK=false when TARGET_BUILD_APPS
is set.

Test: m -j TARGET_BUILD_APPS=Gallery2
Change-Id: Ibd2bdac6c7e2c4e2c6107fd35bd049fc8cb8dafe
2017-09-25 16:15:11 -07:00
Colin Cross
2c69277218 Use java variables from soong
Use TARGET_JAVAC and HOST_JAVAC exported from soong.

Test: m -j checkbuild
Merged-In: Ic094174149ea304c0b06ddc023417acf3602d5a3
Change-Id: Ic094174149ea304c0b06ddc023417acf3602d5a3
(cherry picked from commit 204dd14a2c)
2017-08-29 13:02:07 -07:00
Isaac Chen
f5af850a29 Revert "Revert "Build support for 32-bit armv8-a""
This reverts commit 7de79cbeaf.

Fixed CTS build issue by adding -march=armv7-a in cts/tests/tests/os/jni/Android.mk since the library built here needs/uses instruction (swp) obsolete in ARMv8.

Bug: 64964151
Test: lunch aosp_arm64-userdebug; make -j cts
      lunch aosp_x86-userdebug; make -j cts
      lunch aosp_sailfish-userdebug; make -j cts
      lunch aosp_bullhead-userdebug; make -j cts

Change-Id: Ic3a121600da8e2a9a2d5176b9680cd18ce457959
2017-08-23 10:58:57 +00:00
Tobias Thierer
7de79cbeaf Revert "Build support for 32-bit armv8-a"
This reverts commit 0daa78eef4.

Reason for revert: Broke the build for some targets (including marlin and angler).

$ make cts
build/core/combo/TARGET_linux-arm.mk:43: kryo is armv8-a.
build/core/combo/TARGET_linux-arm.mk:45: TARGET_2ND_ARCH_VARIANT, armv7-a-neon, ignored! Use armv8-a instead.
[...]
cts/tests/tests/os/jni/android_os_cts_CpuInstructions.cpp:88:20: error: instruction requires: armv7 or earlier
    asm volatile ( "swp r0, r0, [%0]" : "+r"(ptr) : : "r0" );
                   ^
<inline asm>:1:2: note: instantiated into assembly here
        swp r0, r0, [r1]
        ^

Change-Id: I65a91ed5a4461eca6646df13642a87a5c37d6c85
2017-08-21 15:03:16 +00:00
Isaac Chen
0daa78eef4 Build support for 32-bit armv8-a
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
2017-08-10 16:13:22 +08:00
Colin Cross
75b50421af Compile with javac by default
javac is replacing jack as the default compiler for platform builds.
Leave it on for unbundled builds, we don't have a solution for lambdas
in unbundled builds yet (b/62038127).

Temporarily allow products to continue to default to jack by setting
PRODUCT_COMPILE_WITH_JACK=true.

This reapplies I1c3857f64eafa445ad1b9dd94eff85bef05f4649.

Bug: 36902714
Test: m -j checkbuild
Test: https://android-build.googleplex.com/builds/view-workplan?viewType=Table&workplanId=L50600000086240009&nodeType=Trybot
Test: https://android-build.googleplex.com/builds/view-workplan?viewType=Table&workplanId=L68900000086676531&nodeType=Trybot
Test: https://android-build.googleplex.com/builds/view-workplan?viewType=Table&workplanId=L37200000086753998&nodeType=Trybot
Test: https://android-build.googleplex.com/builds/view-workplan?viewType=Table&workplanId=L74600000087054271&nodeType=Trybot
Test: sailfish-userdebug boots and basic interactions work
Test: art tests pass
Test: libcore tests pass
Change-Id: Icd1b549cd8a010758a6e5d98b39569fcd1825f60
2017-07-28 13:01:32 -07:00