Merge "HOST_CROSS_OS/ARCH can be configured to linux_bionic/arm64" am: 53a80be100

Original change: https://android-review.googlesource.com/c/platform/build/+/1409828

Change-Id: I4240b41b3388ea3694c408d6c2936a4523ead4b0
This commit is contained in:
Treehugger Robot 2020-09-14 04:13:35 +00:00 committed by Automerger Merge Worker
commit 5a9209eff6
3 changed files with 42 additions and 10 deletions

View file

@ -0,0 +1,22 @@
#
# Copyright (C) 2020 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Configuration for builds hosted on linux_arm-arm64
# Included by combo/select.mk
define $(combo_var_prefix)transform-shared-lib-to-toc
$(call _gen_toc_command_for_elf,$(1),$(2))
endef

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),)

View file

@ -608,8 +608,8 @@ $(strip \
$(eval modules_32 := $(patsubst %:32,%,$(filter %:32,$(2)))) \
$(eval modules_64 := $(patsubst %:64,%,$(filter %:64,$(2)))) \
$(eval modules_both := $(filter-out %:32 %:64,$(2))) \
$(eval ### For host cross modules, the primary arch is windows x86 and secondary is x86_64) \
$(if $(filter HOST_CROSS,$(1)), \
$(eval ### if 2ND_HOST_CROSS_IS_64_BIT, then primary/secondary are reversed for HOST_CROSS modules) \
$(if $(filter HOST_CROSS_true,$(1)_$(2ND_HOST_CROSS_IS_64_BIT)), \
$(eval modules_1st_arch := $(modules_32)) \
$(eval modules_2nd_arch := $(modules_64)), \
$(eval modules_1st_arch := $(modules_64)) \