aboutsummaryrefslogtreecommitdiffstats
path: root/android/arch.go
Commit message (Collapse)AuthorAgeFilesLines
* Add support for cortex-a55/cortex-a75.Christopher Ferris2018-05-111-0/+2
| | | | | | | | Bug: 78133793 Test: Builds when using cortex-a75 as a target. Change-Id: Ie3fbe40b15f4d89eeba0d630a82097122fc83b33 (cherry picked from commit 0612597a41ca425150ef33900df8239b304bf654)
* Make Config.ProductVariables privateDan Willemsen2018-04-171-1/+1
| | | | | | | | | | | All access to these should be going through the methods on Config / DeviceConfig. Bug: 76168832 Test: m blueprint_tools Change-Id: I47512dd58fb1a1a3f25838a9b1adaed2c41af8d3 Merged-In: I47512dd58fb1a1a3f25838a9b1adaed2c41af8d3 (cherry picked from commit 45133ac184b4e8b7071e7755ec3b98e217b54607)
* Make arm_on_x86 symmetricVictor Khimenko2018-03-271-4/+28
| | | | | | | | | | | | We only define arm_on_x86 in the x86 code, but sometimes arm code needs to know that it's working in the emulated mode, too. Test: CtsRsCppTestCases Bug: b/75971275 Change-Id: I99564fbe9aeb284e2f11ffb593b18536a7755ea5 (cherry picked from commit 5eb8ec1e72990ed73bc5986bb85b8209673ccb0b)
* Remove armv5teDan Willemsen2018-01-081-2/+0
| | | | | | | | 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-soong Change-Id: I4bd23babf567128d2d242cbdee3311abb198dd7c
* Move string list utility functions to android packageColin Cross2017-12-281-4/+4
| | | | | Test: m checkbuild Change-Id: I50a7ccf9fd7ed82b688e3eb90489c0bc0af33287
* Update the NDK ARM ABI to armv7.Dan Albert2017-12-201-1/+1
| | | | | | | | We don't support armv5 any more, and we can't build bionic as armv5. Test: build/soong/scripts/build-ndk-prebuilts.sh Bug: https://github.com/android-ndk/ndk/issues/272 Change-Id: I4026d48e7d5db78f6aa4e9796da1ec9cf10021ca
* Split java_binary modules into common and binary variantsColin Cross2017-12-061-16/+25
| | | | | | | | | | | | Add a common_first multilib type and use it for java.Binary so that the java part is compiled as a "common" arch type but the wrapper script is installed as a "linux_glibc" arch type. This allows java_binary to be used as a tool dependency for a genrule. Bug: 68397812 Test: TestJavaBinary Change-Id: I809060839ce8878300da3fb76426ceb1ea6b0e8e
* Replace ModuleContext.AConfig() with Config()Colin Cross2017-11-301-5/+5
| | | | | | | | | AConfig() now duplicates Config(). Replace the uses of AConfig() with Config(). Leave AConfig() for now until code in other projects is cleaned up. Test: m checkbuild Change-Id: Ic88be643049d21dba45dbd1a65588ed94bf43bdc
* Stop building MIPS ABIs for the NDK.Dan Albert2017-11-031-2/+0
| | | | | | Test: build/soong/scripts/build-ndk-prebuilts.sh Bug: https://github.com/android-ndk/ndk/issues/272 Change-Id: Ia8d48b1ecef5e1a3b239e2817eeed5dbe43e52ef
* Revert "Revert "Make some common properties overridden when used in defaults ↵Colin Cross2017-11-011-3/+3
| | | | | | | | | | | | | modules"" This reverts commit 5c3c7681872ec2379685931e8160bc2524b6bb2d. This reapplies I70e45caa92f65dc6a3bc81ae33a5a8f34ad11890 along with additional changes in other projects to match the new types. Bug: 68337468 Test: m checkbuild Change-Id: I2d2d876b291869f834a6468d3e2ad99148f94a15
* Revert "Make some common properties overridden when used in defaults modules"Nicolas Geoffray2017-11-011-3/+3
| | | | | | | | | | Bug: 68337468 Breaks HOST_PREFER_32BIT=true This reverts commit 617016a6f2819210894492ef6f095992bf28bcb4. Change-Id: Ifb20f41cdf93dbfd73a3aac5b055e595e334350b
* Make some common properties overridden when used in defaults modulesColin Cross2017-11-011-3/+3
| | | | | | | | | | Switch commonProperties to *string and *bool so that defining them in a module correctly overrides instead of appends to values set in defaults modules. Bug: 68337468 Test: m checkbuild Change-Id: I70e45caa92f65dc6a3bc81ae33a5a8f34ad11890
* Add target.linux for linux kernel based targetsDan Willemsen2017-10-031-3/+3
| | | | | | | This includes android, linux_bionic, and linux_glibc currently. Test: m nothing Change-Id: I088eab583eee695c1f61a65a79a302837e5f4577
* Remove target.linuxDan Willemsen2017-10-031-4/+4
| | | | | | | | | Once this is submitted and we don't have any more references to target.linux, it can be added back as a common target for all linux-kernel based targets. Test: m nothing Change-Id: Iae5e82eaed65f58950115f21530ae04afd0602b9
* Fix arch specific properties for java modulesColin Cross2017-10-021-60/+67
| | | | | | | | Arch specific properties were not being applied to modules with OS set to Common. Test: java_test.go Change-Id: I8f1b49ca51b0cf96f78006dfcd121672e581d9c5
* Add target.linux_glibc and target.bionicDan Willemsen2017-09-261-5/+56
| | | | | | | | | | | | | | target.linux_glibc will apply to host builds with glibc, which is identical to the current target.linux. In a future change, target.linux will change to affect all targets using the Linux kernel (android, linux_bionic, and linux_glibc). target.bionic will apply to all OS variants using Bionic. Bug: 31559095 Test: Add target.linux_glibc, target.bionic sections to an Android.bp, build Test: m host Change-Id: I677a67c22fba148fec264132311e355283f9d88d
* Add support for Exynos-M1Junmo Park2017-07-241-0/+2
| | | | | Change-Id: Ie57507a5d0ea9101db603ff3538c51853083a314 Signed-off-by: Junmo Park <junmoz.park@samsung.com>
* Add support for Exynos-M2.Junmo Park2017-07-221-0/+2
| | | | | Change-Id: I646f303b460556a9b36a44574f25dd992d42906c Signed-off-by: Junmo Park <junmoz.park@samsung.com>
* Refactor factoriesColin Cross2017-06-301-11/+4
| | | | | | | | | Change module factories from returning a blueprint.Module and a list of property structs to returning an android.Module, which holds the list of property structs. Test: build.ninja identical except for Factory: comment lines Change-Id: Ica1d823f009db812c518f271a386fbff39c9766f
* soong: add cortex-a73 to microarchitecture listJake Weinstein2017-05-151-0/+2
| | | | | | * Was missed in I3325f60add7f424f8cca53c22919fc481ef5e787 Change-Id: I24d1ef38922cb8f46c9136018cce6a22293ca95e
* Prettify soong ninja build descriptionsColin Cross2017-05-101-0/+15
| | | | | | | | | | | | | | | | | Descriptions currently look like: [ 0% 4/29328] cc out-soong/.intermediates/external/clang/lib/Sema/libclangSema/android_arm_armv7-a-neon_denver_static_core/obj/external/clang/lib/Sema/SemaCodeComplete.o This is not very helpful - most of the characters are used to show the output path, which contains useful information like target architecture, but also contains most of the path to the source files twice, and less useful information like the exact variant name used by soong. Make the descriptions look like: [ 0% 3/29329] //external/clang/lib/Sema:libclangSema clang++ SemaTemplateInstantiate.cpp This is //path/to/module:modulename tool relative/path/to/source/file Test: builds, looks pretty Change-Id: I3087aa7d4eb1860ef6239d77407b8b35445616d7
* Supported python build in host side.Nan Zhang2017-05-051-11/+24
| | | | | | | | | | | | | | | The base module handles all the common functionalites, such as version compatibilty check, version variations split, source file format check, source/data file duplicate check. The library/binary module focuses on how to generate binary build actions, such as setting up stub script, zipping, filling in __init__.py in runfiles dir tree. Bug: b/31676493 Test: go test under python package Change-Id: I06608369f350f7195873d459e1c8d1bdb811e77e
* Enable mips32r2dsp[r2]-fp in mega device buildColin Cross2017-04-271-6/+2
| | | | | | | These seem to build now. Test: mega device build Change-Id: If2514258b0c57d6db484aed4c17a3e1f62109429
* Add arm neon and mips dspr2 arch featuresColin Cross2017-04-271-0/+2
| | | | | | | | | | | | | | | Current modules must use armv7_a_neon to specify source files that compile only with neon. If a future arch variant also supports neon, all these modules will fall back to non-neon. Support a neon arch feature that modules can use instead. Similarly, support dspr2 for mips. arm_device.go was also mixing armv7-a-neon with armv7_a_neon. Use armv7-a-neon consistently, and fix the - to _ when creating the property structs. Test: m -j checkbuild Change-Id: I24d3764280ab3bcbb9a73c0934edc9b99fc7f6a0
* Enable arm_on_x86 mode when arm is a secondary archColin Cross2017-04-131-10/+22
| | | | | | | | | | Enable arm_on_x86 mode whenever compiling for x86 on the device, and either arm is listed as an ABI on the x86 arch, or arm exists as a target arch. Bug: 35286489 Test: examine bcc cflags Change-Id: Iebd0e7b95f584d25773a60474c27425cac7a578e
* Add support for an armv8 variant for KryoAlex Naidis2017-04-041-0/+1
| | | | | | | | | | | | * Use mcpu=cortex-a57, since it is the closest to Kryo. * Clang doesn't support Kryo as a target yet. Bug: 36728278 Test: Built and booted a sailfish using Kryo. Change-Id: Ic0c9588d86fba41896e50e3f0cf0d2b310ffee93 Signed-off-by: Alex Naidis <alex.naidis@linux.com>
* Add support for an armv7 variant for KryoAlex Naidis2017-04-041-0/+1
| | | | | | | | | | | | | * Kryo is closer to Krait than to cortex-a53, so choose Krait defaults. * Made together with Jake Weinstein (xboxfanj) Bug: 36728278 Test: Built and boot sailfish set up as kryo. Change-Id: I04fa0a1dca6f97ae19202d28ee3ce8a59bf169b5 Signed-off-by: Alex Naidis <alex.naidis@linux.com>
* Add LinuxBionic toolchain and switchDan Willemsen2017-03-151-0/+4
| | | | | | | | | | | | | | | | This adds a toolchain definition for LinuxBionic that only supports Clang/64-bit. It pulls pieces from the x86_linux_host and x86_64_device configs, and uses the android clang triple, with some manual overrides. To enable building this, set your soong.config file to: {"Host_bionic": true} Bug: 31559095 Test: out/soong/{Android,make-vars}-aosp_arm64.mk the same with or without host bionic turned on Test: No change to out/soong/build.ninja before/after this change Change-Id: Id97dda8bd9aa670c32aed31fbe6aaa8175e70b59
* Stop making the ndk headers host-specificDan Willemsen2017-03-151-1/+2
| | | | | | | | | | This breaks when I enable a second host configuration for host bionic. Make non-arch modules !Device and !Host by adding "Generic" as the zero value. Make the SkipDeviceInstall config only apply to Device modules. Test: out/soong/build.ninja is identical expect for comments Change-Id: I6e2bd3814a9968554d3901a508d822d5c79d08a0
* Do not duplicate arch properties when cpu variant == arch variantColin Cross2016-12-201-5/+7
| | | | | | | | | build/make/board/generic_mips/BoardConfig.mk sets TARGET_CPU_VARIANT := TARGET_ARCH_VARIANT, which can cause the same variant-specific properties to be applied twice. Test: lunch aosp_mips-eng && mmma -j external/skia TARGET_ARCH_VARIANT=mips32r2dspr2-fp Change-Id: Ie4abe804f8ce898bf89664ae749b9bc8ac3e649f
* Support arm_on_x86 propertiesColin Cross2016-12-081-0/+23
| | | | | | | | Allow Android.bp files to set properties when an x86 device supports arm abis. Test: lunch aosp_fugu-userdebug && mmma -j frameworks/compile/libbcc Change-Id: Ic142a3f93175924a826dea9908b2e5183a486184
* Add LinuxBionic OsTypeDan Willemsen2016-11-171-9/+11
| | | | | | | | Actual support will come in later changes. Bug: 31559095 Test: out/soong/build.ninja is identical Change-Id: I31392fb78a51f43567d16aef89e32cd5137cdbc1
* Encode default enabled state in OsTypeDan Willemsen2016-11-171-5/+9
| | | | | | | | | Currently our only default-disabled Os is Windows since it's HostCross, but we'll be adding non-default Host and Device types in the future. Bug: 31559095 Test: out/soong/build.ninja is identical Change-Id: I2bc3a3cc76f2c95ea040bc34ba6706fcc178c68d
* Add an NDK ABIs mega build configuration.Dan Albert2016-10-191-8/+23
| | | | | | | | | | The NDK needs generic prebuilts for all architectures. Test: echo '{ "Ndk_abis": true }' > soong.config && \ ./soong $OUT_DIR/ndk.timestamp Bug: None Change-Id: I2ee3ebbf4cbd1bc593f9e4e9fb44fb66711da9d5
* Control mutator orderColin Cross2016-10-121-1/+1
| | | | | | | | Register mutators inside lambdas that are called in a defined order to correctly order mutators before and after the arch and deps mutators. Test: build.ninja identical Change-Id: Iefe2a3515aee8570e76a6e76925db4cda0e9e822
* Disable cc_benchmark for Darwin hostsDan Willemsen2016-10-041-3/+3
| | | | | | | | | | | The google-benchmark library is disabled on Darwin, so we cannot create host benchmarks. Instead of having every user specify this, put the logic in Soong. Then if we decide to support it later, it's an easier switch. Test: build.ninja identical before/after on Linux Test: Ignores failing cc_benchmark_host on Darwin Change-Id: I61f3a571fd160d8e479a512992bc68601f1c9b28
* Fix windows buildsColin Cross2016-09-131-2/+6
| | | | | | | | Windows builds have the first arch set to x86 and the second set to x86_64, and always prefers 32-bit. Specify the 32-bit preference manually, instead of relying on the architecture order for now. Change-Id: I1900ec095e7773f68c0db293bfc48bd0815661b2
* Fix binaries and symlinks for prefer32Colin Cross2016-09-131-7/+31
| | | | | | | | | | | Track the primary architecture selected for each class based on the module's multilib setting and the global config. Fixes building binaries with multlib set to first and DevicePrefer32BitExecutables set, and fixes symlinks to binaries with multilib set to prefer32. Bug: 31452121 Test: mmma -j art HOST_PREFER_32_BIT=true Change-Id: I75094df42f3273f6d613e4058eaa565957174c28
* Dynamically generate arch structDan Willemsen2016-09-081-215/+204
| | | | | | | Now we don't need to hardcode the list of OS/Arch/Variant/Features in android/arch.go. Change-Id: I0f9cc35d55baa31f036825fdf5b9dd30d076e56e
* Extend multilibColin Cross2016-09-061-11/+30
| | | | | | | | | | Allow multilib to be set to "prefer32", which will compile as 32-bit if available, otherwise as 64-bit. Add target.device.compile_multilib and target.host.compile_multilib. If set, they override the top-level compile_multlib property. Change-Id: If658a035b5f441547bc74526feb1d34f773776ff
* Add PropertyCustomizerColin Cross2016-08-221-7/+2
| | | | | | | | | | Allow any module factory to insert a PropertyCustomizer on the module, which will be called before any other mutators. The PropertyCustomizer can append or prepend to any properties, allowing module types to extend other module types by modifying the public, stable interface provided by the properties. Change-Id: Idff02be80d939a70df1c6bbccffdd1f04ff975d2
* Add DeviceConfig and OncePer objectsColin Cross2016-08-171-1/+1
| | | | | | | | | Add DeviceConfig to store per-device configuration information. Put a OncePer object inside Config and DeviceConfig, which computes a value once per key per object to allow build logic to store arbitrary per-build or per-device computed values. Change-Id: I1a38b426f29d223ef5e803e0d4d9604500de2fd2
* Make defaults TopDownMutator parallelColin Cross2016-08-111-1/+1
| | | | | | | Append .Parallel() to the defaults RegisterTopDownMutator call to tell Blueprint it can run it in parallel. Saves ~500ms in soong_build. Change-Id: I43ddd9d6995674ccc06fed6928514f15a15712c1
* Make BottomUpMutators parallelColin Cross2016-08-111-2/+2
| | | | | | | | Append .Parallel() to all of the RegisterBottomUpMutator calls to tell Blueprint it can run them in parallel. Test: identical build.ninja, passes race detector Change-Id: I969a0689522d4cba7c8ff51e2aa00fe2fd338a89
* Convert defaults to a top down mutatorColin Cross2016-08-091-1/+1
| | | | | | | | | BottomUpMutators are going to lose their ctx.Visit* functions in order to allow parallelizing them, move defaults to a TopDownMutator using WalkDeps to only visit defaults modules. Test: no changes to out/soong/build.ninja Change-Id: I54ba65a7e2ae9503f4d217f63aa9178a7c5341f0
* Use nil pointers for arch property structsColin Cross2016-08-081-1/+2
| | | | | | | | Blueprint can now handle creating a zero-valued struct when it encounters a nil pointer to a struct, reducing the amount of allocations and copying for arch structures that are not used. Change-Id: If36da5603dbe6469fe6406c821f21a122ea6ea49
* Allow defaults modules to have defaultsColin Cross2016-07-271-1/+1
| | | | | | Allow chaining defaults modules by making Defaults be a Defaultable. Change-Id: I4ba86c07f7aad9c396ed33d55fe95d1fb78e487d
* Fix Mega_device buildDan Willemsen2016-07-191-1/+1
| | | | Change-Id: I128d013ef7c1cb0afa71dc011bf5d4180f468a1b
* Support no configured device architecturesDan Willemsen2016-07-111-13/+16
| | | | | | | | There are some builds where we only want to build host tools, and we may not have a valid device configuration. Support 0 device architectures and modules that don't have any configured way to build. Change-Id: I732251e1cd3cdbfafbc6ef6a550e33e653876f7c
* Simplify arch target handlingColin Cross2016-06-021-290/+158
| | | | | | | | | | | | Soong's multi-architecture building has grown complex, with the combination of HostOrDevice+HostType+Arch necessary to determine how to build a variant of a module, and three separate mutators to split each into its variations. Combine HostOrDevice+HostType into Os, which will be Linux, Darwin, Windows, or Android. Store Os+Arch as a single Target. Change-Id: I92f2e2dac53617d595a35cc285d2bd348baa0fbd