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
This commit is contained in:
Jiyong Park
2020-07-13 13:53:52 +09:00
parent 897cfaee46
commit e80c45f6ac
3 changed files with 42 additions and 10 deletions

View File

@@ -148,15 +148,25 @@ HOST_OS_EXTRA := $(subst $(space),-,$(HOST_OS_EXTRA))
# BUILD_OS is the real host doing the build.
BUILD_OS := $(HOST_OS)
HOST_CROSS_OS :=
# We can cross-build Windows binaries on Linux
# We can do the cross-build only on Linux
ifeq ($(HOST_OS),linux)
ifeq ($(BUILD_HOST_static),)
HOST_CROSS_OS := windows
HOST_CROSS_ARCH := x86
HOST_CROSS_2ND_ARCH := x86_64
2ND_HOST_CROSS_IS_64_BIT := true
endif
# Windows has been the default host_cross OS
ifeq (,$(filter-out windows,$(HOST_CROSS_OS)))
# We can only create static host binaries for Linux, so if static host
# binaries are requested, turn off Windows cross-builds.
ifeq ($(BUILD_HOST_static),)
HOST_CROSS_OS := windows
HOST_CROSS_ARCH := x86
HOST_CROSS_2ND_ARCH := x86_64
2ND_HOST_CROSS_IS_64_BIT := true
endif
else ifeq ($(HOST_CROSS_OS),linux_bionic)
ifeq (,$(HOST_CROSS_ARCH))
$(error HOST_CROSS_ARCH missing.)
endif
else
$(error Unsupported HOST_CROSS_OS $(HOST_CROSS_OS))
endif
endif
ifeq ($(HOST_OS),)