Commit graph

37 commits

Author SHA1 Message Date
Elliott Hughes
2e6e73bb01 Remove unused BoardConfig variables.
Determined via codesearch.

Test: treehugger
Change-Id: I5138e1b2294d39e11b46f9e1751c41b842c1743b
2019-07-18 21:43:38 -07: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
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
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
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
Dan Willemsen
056609ccfe Remove unnecessary variables
These are all either recently unused due to the removal of CFLAGS/etc,
or have been exported by Soong and are no longer necessary.

Change-Id: I5930d43fda21acc8202b3d8ea010fbefb6ae4cf1
2016-05-25 21:23:20 -07:00
Dan Willemsen
9826900aea Do not apply -Wl,--fix-cortex-a8 to Cortex-A9
Change-Id: I11d380163423cb4aa0fee60ecbaa1e38fa5143a1
2016-05-10 15:36:58 -07:00
Alex Light
bdfeb3e760 Mark the cortex-{a7,a53,a53.57} chips as supporting LPAE
Bug: 27340895
Bug: 27324856

Change-Id: Id3994c6d334c8bb673fc3849550f591136a8dd6a
2016-02-24 13:54:11 -08:00
Christopher Ferris
561b4c1995 Set mcpu targets based on cpu variant.
Make cortex-a53 and cortex-a53.a57 use cortex-a7.

Change-Id: I89d5b3f044c867ec99aae319eafc33f2edf1f9f2
2015-09-24 13:59:33 -07:00
Bernhard Rosenkränzer
4da707176b Don't use -Wl,--fix-cortex-a8 for Cortex A7, A9, A15, Krait or Denver
-Wl,--fix-cortex-a8 is a workaround for an Erratum in Cortex-A8
processors. It slightly increases code size and decreases performance,
and there's no point in using it on non-A8 CPUs.

Instead of forcing it unconditionally, use it when targeting
Cortex-A8 or generic armv7-a (which might or might not be A8).

Change-Id: Ifa59765d380445237edccfe5440a67b3ba1e459a
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2015-03-25 17:21:02 +01:00
Ian Rogers
e270873407 Specify -mcpu=krait for clang.
Change-Id: I64682cddf57246341c1727ca16c56f7ce0c6fd0a
2014-10-28 15:50:02 -07:00
Ian Rogers
63e551f0ae Move definition of -D__ARM_FEATURE_LPAE=1 cflag to top-level.
LPAE indicates better instructions can be used when atomicity guarantees are
needed. However, LPAE's presence isn't advertised by clang/GCC. We fake an
ARM feature to advertise its presence on architectures where it is.
Also, add a TODO documenting that cortex-a15 is not the correct CPU variant
for krait.

Change-Id: I02a1248025c32d94eca0bc8a249dc524f1ac9c36
2014-10-15 15:44:16 -07:00
Shu Zhang
453afb242c Specify -mcpu=cortex-a15 for denver CPU variants.
Change-Id: Ic27484c92a48b45148021a61420ffdd55a9dd945
2014-03-24 16:19:50 +08:00
Ying Wang
de9955c35e Select the arch_variant_cflags for the 2nd arch.
Change-Id: Id2f9d7073a4aae3ba0fe5e5464045761f4d42b4e
2014-02-07 10:44:10 -08:00
Colin Cross
ec14ce578b remove 2nd arch from ARCH_ARM_* defines
Users of ARCH_ARM_* defines don't care about first vs. second arch,
set ARCH_ARM_* regardless of which arch is arm.

Change-Id: I2ae83ec5c3f839ff91a0e352c95d76ec2cbd5dc5
2014-02-04 19:44:09 -08:00
Ying Wang
1d274d2686 Load compiler environment for a second arch.
This is the first step to build 32-bit libraries in a 64-bit product.
It will work like this:
1) In the product's BoardConfig.mk, define:
TARGET_2ND_ARCH, TARGET_2ND_ARCH_VARIANT, TARGET_2ND_CPU_VARIANT.
The build system uses those variables to set up an additional compiler
environment for the second arch.

2) When parsing Android.mks, the build system sets up rules to build a
module for both the 1st arch and the 2nd arch, unless it's explicitly
asked to skip so.
Android.mk will be adapted if there is additional rule of generating
source files.
The build system will accept arch-specific LOCAL_ variables, such as
LOCAL_CFLAGS_arm, LOCAL_CFLAGS_armv7-a-neon, LOCAL_CFLAGS_cortex-a15,
LOCAL_CFLAGS_aarch64 etc. Modules use such variables to set up build for
various archs at the same time.

3) Install binary of the 2nd arch by adding "<module_name>:32" to
PRODUCT_PACKAGES. All 2nd-arch libraries linked in by "<module_name>:32"
will be installed automatically.

Bug: 11654773
Change-Id: I2df63cd5463a07bf5358bee2a109f8fb9590fe30

Conflicts:
	core/combo/TARGET_linux-arm.mk
2014-01-24 13:34:26 -08:00
Ian Rogers
b07a5f8257 am 09c6d68b: am 816af5fc: Merge "Specify -mcpu=cortex-a15 for krait CPU variants."
* commit '09c6d68b8879164f600bbe084a62cfbc4ab10850':
  Specify -mcpu=cortex-a15 for krait CPU variants.
2013-10-11 17:35:09 -07:00
Ian Rogers
d195c6d14e Specify -mcpu=cortex-a15 for krait CPU variants.
Bug: 11178216

Change-Id: I9922e4cd5ba27e3857798aae5c84299e26e054ea
2013-10-11 16:24:32 -07:00
Rom Lemarchand
8805930b6f core: combo: arm: add cortex-a8 target
Change-Id: I83e409dd048762acbd2e2dec9b0095933141cff0
2013-05-14 20:16:16 -07:00
Dima Zavin
bdbd716eff core: combo: arm: use appropriate mcpu flags for cortex-a7
Change-Id: If00577d36257e4d03f63f36b159bb2e015958d6a
Signed-off-by: Dima Zavin <dima@android.com>
2013-03-23 02:08:38 -07:00
Elliott Hughes
b2bbff7cba am ea852f6e: am f6b670b7: Merge "Remove more always-true ARCH_ARM_HAVE_ flags."
# Via Android Git Automerger (1) and others
* commit 'ea852f6ed3e9f251eaef4f041fbc0b09229ac924':
  Remove more always-true ARCH_ARM_HAVE_ flags.
2013-02-14 17:31:40 -08:00
Elliott Hughes
03d2aa4dd0 Remove more always-true ARCH_ARM_HAVE_ flags.
All the remaining flags appear to be actually used.

Change-Id: I0e3d84915487eda4f0e97809fc36624fef5f1848
2013-02-14 12:04:48 -08:00
Elliott Hughes
14a2d978df am d0fb6930: am 07a58f8f: Merge "Nothing uses ARCH_ARM_HAVE_CLZ or ARCH_ARM_HAVE_FFS."
# Via Android Git Automerger (1) and others
* commit 'd0fb693024b88a713fe95296db451a0e6c17ec66':
  Nothing uses ARCH_ARM_HAVE_CLZ or ARCH_ARM_HAVE_FFS.
2013-02-13 17:11:36 -08:00
Elliott Hughes
d0542498a0 Nothing uses ARCH_ARM_HAVE_CLZ or ARCH_ARM_HAVE_FFS.
Because every ARM architecture we've ever supported has had both.

Change-Id: I607b56416e65073c5ac1b85fb17c092516e02573
2013-02-13 16:44:21 -08:00
Ben Cheng
533aa2707e Use -mcpu=cortex-a15 for gcc arch dependent compilation.
If TARGET_CPU_VARIANT=cortex-a15 is specified in the BoardConfig.mk file.

Bug: 7961327
Change-Id: Ic459df378293237c54263f5315ac3be62dad4273
2013-01-14 14:37:44 -08:00
Kenny Root
87f4d5a926 Enable TLS register by default for ARMv7a arch
Everything that is based on ARMv7a should have a cp15 TLS register.
Enable it by default so it's not accidentally missed in newer board
configurations. In fact, this could be enabled for ARMv6 as well, but we
currently don't distinguish between ARMv5 and ARMv6 in the build system.

This can still be disabled by setting it to "false" in the board
configuration, but this shouldn't ever be needed.

Change-Id: Ic2918f32899c8bcfa482f92c98f5a192fa318470
2012-02-21 09:17:18 -08:00
Colin Cross
f807c55f39 Add a new build target armv7-a-neon
Change-Id: Ib3b44e839b093974aff0d595950e6b691beee7a5
2010-03-10 16:07:14 -08:00
Colin Cross
5720bb91a4 Modify the armv7-a target arch to not use NEON
To build for a target with NEON, use armv7-a-neon

Change-Id: I70d509287b04c0faebe44faf6c8ebb28a7360ff9
2010-03-10 16:06:44 -08:00
Erik Gilling
c12c518379 enable cortex branch predition errata workaround for armv7-a builds
Signed-off-by: Erik Gilling <konkers@android.com>
2009-07-17 15:58:42 -07:00
Mike Reed
582dcbd7d1 add HAVE_VFP flag 2009-07-16 15:22:57 -04:00
Mike Reed
8ce877a3ab set -fpu=neon so we can use arm_neon.h 2009-07-13 14:48:43 -04:00
Patrick Scott
87c86573e0 Move the BoardConfig.mk search and inclusion to core/config.mk.
This allows TARGET_ARCH_VARIANT to be set by the vendor before we choose the
architecture in core/combo/select.mk.

Also add a primitive armv7-a.mk for turning on hardware floating point.
2009-06-23 15:28:07 -04:00
David 'Digit' Turner
3585e95918 Fix armv5te-vfp build. Aargh 2009-05-29 22:54:40 +02:00
David 'Digit' Turner
d53c81d7c5 Rename TARGET_ARCH_VERSION to TARGET_ARCH_VARIANT +
Move arch-specific definitions into core/combo/arch/arm/<variant>.mk
2009-05-29 21:36:49 +02:00