summaryrefslogtreecommitdiff
path: root/build/codegen.go
AgeCommit message (Collapse)Author
2023-05-08Revert "Remove the codegen property" Android Culprit Assistant
This revert was created by Android Culprit Assistant. The culprit was identified in the following culprit search session (http://go/aca-get/88fe93a5-fc12-490e-8914-e81bb746b001). Change-Id: I87dc85008a9c79c017055ae641f41809d19b1c78
2023-05-08Remove the codegen property Cole Faust
The codegen property was very similar to the targets property, except: - on host it combined all the properties from all the arches - it would apply the properties from each arch branch if the device supported it, with the exception of always including a 32bit branch if the 64bit branch was included. For the most part, this could be expressed by using the regular `target` property in soong. However, the `target` branches are selected based on if the module itself is being compiled for 32bit/64bit/a particular arch, not if the device supports it or not. This means that after this change, compiling a module for 32 bit on a device that supports both 64 and 32 bit will not have the 64 bit flags. Note that the reverse does not work the same way, the 32 bit flags are manually copied onto the 64 bit `target` branch to maintain the plugin's old behavior of always including 32bit code on 64bit. Bug: 247785938 Test: Presubmits (because of the behavior change described above, the ninja files do have differences) Change-Id: I23f585c2a2ad2cbe9b3e212097aef88d63c5394b
2023-02-21riscv64: add initial support for ART. Ulya Trafimovich
The only supported mode is the switch interpreter. JNI transitions are not implemented yet (not even generic JNI trampoline), therefore it is impossible to run even a simple hello world test (because it requires loading Java libraries and initializing classes in them, many of which call native methods). The only passing ART test is 000-nop. Test: run ART test 000-nop on a Linux RISC-V VM: lunch aosp_riscv64-userdebug export ART_TEST_SSH_USER=ubuntu export ART_TEST_SSH_HOST=localhost export ART_TEST_SSH_PORT=10001 export ART_TEST_ON_VM=true . art/tools/buildbot-utils.sh art/tools/buildbot-build.sh --target # Create, boot and configure the VM. art/tools/buildbot-vm.sh create art/tools/buildbot-vm.sh boot art/tools/buildbot-vm.sh setup-ssh # password: 'ubuntu' art/tools/buildbot-cleanup-device.sh art/tools/buildbot-setup-device.sh art/tools/buildbot-sync.sh art/test.py --target -r --no-prebuild --ndebug --no-image \ --64 --interpreter 000-nop Co-authored-by: Lifang Xia <lifang_xia@linux.alibaba.com> Change-Id: Iac267525527901b74e863cb8c72ddcf0789e8a5d
2022-10-05Fix panics in art build code when target arch is riscv64 Colin Cross
Fix panics in codegen.go and PGO when using riscv64 as the target arch. Bug: 250918230 Test: lunch aosp_riscv64-userdebug && m ALLOW_MISSING_DEPENDENCIES=true nothing Change-Id: I97820082b7d51e939f01e782356795a12f84f8a1
2021-05-10Link libvixl statically. Vladimir Marko
Instead of including shared library libvixl.so in the ART Module, link libvixl statically to all binaries that use it, namely libart-compiler.so and libart-disassembler.so which shall increase in size with the additional libvixl code. The ART Module size with default libvixl symbol visibility: - before: 88460730B - after: 86973943B (-1.42MiB) With hidden libvixl symbol visibility: - before: 88337851B - after: 84962808B (-3.22MiB) (This is with master-art where we do not have a boot profile and therefore compile more code in boot image.) The change from default to hidden visibility is done in https://android-review.googlesource.com/1697237 . Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: run-gtests.sh Test: testrunner.py --target --optimizing Bug: 186902856 Change-Id: I040b0115b94b8690ee7be53e3ded8610d9f13e99
2020-02-20Remove remaining MIPS support. Vladimir Marko
With the exception of dwarf support in libelffile. Test: aosp_taimen-userdebug boots. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Bug: 147346243 Change-Id: Ib25acbc98aa7f63ce49a7ed2f81a4a64d48eac39
2019-12-30Clean up art's Soong go files Colin Cross
Replace deprecated BaseContext with LoadHookContext. Use ctx.Config() instead of ctx.AConfig(). Use existing ctx.Config() functions instead of wrappers. Sort imports. Test: m checkbuild Change-Id: Idf30996ef38f4056a93af511c607b2c24678a5fa
2019-10-02Hide static from cc_library_shared and vice versa Colin Cross
The static properties don't make sense for cc_library_shared modules, and the shared properties don't make sense for cc_library_static modules. Move them into separate property structs so they can be added conditionally. Test: m nothing Change-Id: Ic3f95f588a05417dfd470d0e4e9d69c376250a11
2019-08-08Remove dead code in build/codegen.go. Roland Levillain
Remove the `art.codegenCustomizer` type definition, which is not used anywhere. Test: m Change-Id: I645237f8980f99d2e3f81c42e344ecb4f7808c0e
2019-08-07Filter duplicate sources in ART's codegen customizer. Roland Levillain
With this change, it is now possible to write the following in ART Blueprint files: codegen: { mips: { srcs: ["disassembler_mips.cc"], }, mips64: { srcs: ["disassembler_mips.cc"], }, }, and have it work even if the `mips` and `mips64` are both enabled. Before this change, this construction would have been rejected with the following error message: "FAILED: ninja: […]: multiple rules generate […]disassembler_mips.o" Test: m test-art-host Bug: 119090273 Change-Id: I0a20a65ce7ab308644f3018a89fa96e5bdcdbdc4
2019-07-18Remove Export_static_lib_headers from codegen Paul Duffin
It is not necessary to export headers from static libraries included using whole_static_libs as that automatically exports the headers. Test: m checkbuild Bug: 134379140 Change-Id: Iea85dedf91f404739d12b3a7971cd87c02e1ab6d Exempt-From-Owner-Approval: needed to fix build failure
2019-07-18Remove use of external/vixl/src in include_dirs Paul Duffin
The include_dirs property is deprecated and no longer needed as the libvixl[d] libraries export their include dirs directly. Added support to the codegen extensions to allow header include dirs from libvixl[d] to be re-exported from libart-compiler[d] as the latter's exported headers include vixl exported headers. Test: m checkbuild Bug: 134379140 Change-Id: I6ad47b093cc25fc1486109fced1c2a238e75ff0d
2018-11-06Use unified libvixl(d) instead of per-supported-arch libvixl(d)-arm(64). Roland Levillain
Using a unified libvixl(s) saves space by sharing code that was common to libvixl(d)-arm and libvixl(d)-arm64 and also addresses multiple definitions issues that would cause ODR violations. Test: 32-bit-only device boot test Test: 32/64-bit device boot test Change-Id: I1d67c43897e08bc0f5743eb038fe574ce2fb54f3
2017-06-27Refactor module registration Colin Cross
Refactor module registration so that it doesn't need to separately track properties. Test: builds, no change to out/soong/build.ninja Change-Id: I152f019d227d8fa9872742c03cf2381c674d675b
2016-09-15Convert art gtests to Android.bp Colin Cross
This splits the compilation and running of the art gtests into two separate locations. The tests are now compiled in multiple Android.bp modules in each directory. art.go collects the installed locations of each test and exports it as make variables. art/build/Android.gtest.mk converts the list into the rules to run the tests. This has a few changes in behavior: - The rules to build tests are now always defined, and will build as part of mmma art or make checkbuild. - Host tests are no longer installed into out/host/linux-x86/bin, they are in out/host/linux-x86/nativetest[64]/<module name>/<test name> - Target tests are now in /data/nativetest[64]/art/<arch>/<module name>/<test name> Test: mmma -j art Test: m -j test-art-host Test: m -j test-art-target Change-Id: Iabcd99d43890e6b693688422b07a283c3226a496
2016-09-13Update art to use hooks instead of customizer Colin Cross
Change-Id: I46de5ea6ffbc0e32a0b306b8fe82b66b986e33cd
2016-09-0964bits codegens need to drag their 32bits equivalent. Nicolas Geoffray
This to restore the previous (non-soong) build behavior. Change-Id: Ie93c18db5522b889a44106cbb25c2a87f9e4a882
2016-08-25Convert libart and dependencies to Android.bp Colin Cross
Re-landing I73839046a5a53eb34cd28eea53149911c568e411, with fixes for mac build (only apply -Wl,--keep-unique to device x86 builds), typo in checking for ART_HEAP_POISONING environment variable, and removing -Wframe-larger-than for debug builds. Test: mma -j, m -j test-art-host Change-Id: If88492174cbcb0d9a8758176c006163a29eaaa63
2016-08-25Revert "Convert libart and dependencies to Android.bp" Colin Cross
This reverts commit 4ea3a22f0ccfb0f746c63c274b2655545e759e1f. Change-Id: I3ac4397b4d6be038e5b863b7a24231c0736e84f3
2016-08-24Convert libart and dependencies to Android.bp Colin Cross
Test: mma -j, m -j test-art-host Change-Id: I73839046a5a53eb34cd28eea53149911c568e411