am 9c08a73b
: am 6440fb0c
: am b35094ec
: am 01aa01db
: Merge "Make Clang host builds hermetic on Linux."
* commit '9c08a73b242344a18676a2c5b17f5d475abef16f': Make Clang host builds hermetic on Linux.
This commit is contained in:
commit
1bbba7d404
6 changed files with 82 additions and 10 deletions
|
@ -1,8 +1,13 @@
|
|||
|
||||
include $(BUILD_SYSTEM)/clang/x86.mk
|
||||
include $(BUILD_SYSTEM)/clang/x86_common.mk
|
||||
|
||||
ifeq ($(HOST_OS),linux)
|
||||
CLANG_CONFIG_x86_HOST_TRIPLE := i686-linux-gnu
|
||||
CLANG_CONFIG_x86_HOST_COMBO_EXTRA_ASFLAGS := $(CLANG_CONFIG_x86_LINUX_HOST_EXTRA_ASFLAGS)
|
||||
CLANG_CONFIG_x86_HOST_COMBO_EXTRA_CFLAGS := $(CLANG_CONFIG_x86_LINUX_HOST_EXTRA_CFLAGS)
|
||||
CLANG_CONFIG_x86_HOST_COMBO_EXTRA_CPPFLAGS := $(CLANG_CONFIG_x86_LINUX_HOST_EXTRA_CPPFLAGS)
|
||||
CLANG_CONFIG_x86_HOST_COMBO_EXTRA_LDFLAGS := $(CLANG_CONFIG_x86_LINUX_HOST_EXTRA_LDFLAGS)
|
||||
endif
|
||||
ifeq ($(HOST_OS),darwin)
|
||||
CLANG_CONFIG_x86_HOST_TRIPLE := i686-apple-darwin
|
||||
|
@ -15,25 +20,29 @@ CLANG_CONFIG_x86_HOST_EXTRA_ASFLAGS := \
|
|||
$(CLANG_CONFIG_EXTRA_ASFLAGS) \
|
||||
$(CLANG_CONFIG_HOST_EXTRA_ASFLAGS) \
|
||||
$(CLANG_CONFIG_x86_EXTRA_ASFLAGS) \
|
||||
-target $(CLANG_CONFIG_x86_HOST_TRIPLE) \
|
||||
$(CLANG_CONFIG_x86_HOST_COMBO_EXTRA_ASFLAGS) \
|
||||
-target $(CLANG_CONFIG_x86_HOST_TRIPLE)
|
||||
|
||||
CLANG_CONFIG_x86_HOST_EXTRA_CFLAGS := \
|
||||
$(CLANG_CONFIG_EXTRA_CFLAGS) \
|
||||
$(CLANG_CONFIG_HOST_EXTRA_CFLAGS) \
|
||||
$(CLANG_CONFIG_x86_EXTRA_CFLAGS) \
|
||||
$(CLANG_CONFIG_x86_HOST_COMBO_EXTRA_CFLAGS) \
|
||||
$(CLANG_CONFIG_x86_HOST_EXTRA_ASFLAGS)
|
||||
|
||||
CLANG_CONFIG_x86_HOST_EXTRA_CPPFLAGS := \
|
||||
$(CLANG_CONFIG_EXTRA_CPPFLAGS) \
|
||||
$(CLANG_CONFIG_HOST_EXTRA_CPPFLAGS) \
|
||||
$(CLANG_CONFIG_x86_EXTRA_CPPFLAGS) \
|
||||
$(CLANG_CONFIG_x86_HOST_COMBO_EXTRA_CPPFLAGS) \
|
||||
-target $(CLANG_CONFIG_x86_HOST_TRIPLE)
|
||||
|
||||
CLANG_CONFIG_x86_HOST_EXTRA_LDFLAGS := \
|
||||
$(CLANG_CONFIG_EXTRA_LDFLAGS) \
|
||||
$(CLANG_CONFIG_HOST_EXTRA_LDFLAGS) \
|
||||
$(CLANG_CONFIG_x86_EXTRA_LDFLAGS) \
|
||||
-target $(CLANG_CONFIG_x86_HOST_TRIPLE) \
|
||||
|
||||
$(CLANG_CONFIG_x86_HOST_COMBO_EXTRA_LDFLAGS) \
|
||||
-target $(CLANG_CONFIG_x86_HOST_TRIPLE)
|
||||
|
||||
define convert-to-host-clang-flags
|
||||
$(strip \
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
|
||||
include $(BUILD_SYSTEM)/clang/x86_64.mk
|
||||
include $(BUILD_SYSTEM)/clang/x86_common.mk
|
||||
|
||||
ifeq ($(HOST_OS),linux)
|
||||
CLANG_CONFIG_x86_64_HOST_TRIPLE := x86_64-linux-gnu
|
||||
CLANG_CONFIG_x86_64_HOST_COMBO_EXTRA_ASFLAGS := $(CLANG_CONFIG_x86_LINUX_HOST_EXTRA_ASFLAGS)
|
||||
CLANG_CONFIG_x86_64_HOST_COMBO_EXTRA_CFLAGS := $(CLANG_CONFIG_x86_LINUX_HOST_EXTRA_CFLAGS)
|
||||
CLANG_CONFIG_x86_64_HOST_COMBO_EXTRA_CPPFLAGS := $(CLANG_CONFIG_x86_LINUX_HOST_EXTRA_CPPFLAGS)
|
||||
CLANG_CONFIG_x86_64_HOST_COMBO_EXTRA_LDFLAGS := $(CLANG_CONFIG_x86_LINUX_HOST_EXTRA_LDFLAGS)
|
||||
endif
|
||||
ifeq ($(HOST_OS),darwin)
|
||||
CLANG_CONFIG_x86_64_HOST_TRIPLE := x86_64-apple-darwin
|
||||
|
@ -15,25 +20,29 @@ CLANG_CONFIG_x86_64_HOST_EXTRA_ASFLAGS := \
|
|||
$(CLANG_CONFIG_EXTRA_ASFLAGS) \
|
||||
$(CLANG_CONFIG_HOST_EXTRA_ASFLAGS) \
|
||||
$(CLANG_CONFIG_x86_64_EXTRA_ASFLAGS) \
|
||||
-target $(CLANG_CONFIG_x86_64_HOST_TRIPLE) \
|
||||
$(CLANG_CONFIG_x86_64_HOST_COMBO_EXTRA_ASFLAGS) \
|
||||
-target $(CLANG_CONFIG_x86_64_HOST_TRIPLE)
|
||||
|
||||
CLANG_CONFIG_x86_64_HOST_EXTRA_CFLAGS := \
|
||||
$(CLANG_CONFIG_EXTRA_CFLAGS) \
|
||||
$(CLANG_CONFIG_HOST_EXTRA_CFLAGS) \
|
||||
$(CLANG_CONFIG_x86_64_EXTRA_CFLAGS) \
|
||||
$(CLANG_CONFIG_x86_64_HOST_COMBO_EXTRA_CFLAGS) \
|
||||
$(CLANG_CONFIG_x86_64_HOST_EXTRA_ASFLAGS)
|
||||
|
||||
CLANG_CONFIG_x86_64_HOST_EXTRA_CPPFLAGS := \
|
||||
$(CLANG_CONFIG_EXTRA_CPPFLAGS) \
|
||||
$(CLANG_CONFIG_HOST_EXTRA_CPPFLAGS) \
|
||||
$(CLANG_CONFIG_x86_64_EXTRA_CPPFLAGS) \
|
||||
$(CLANG_CONFIG_x86_64_HOST_COMBO_EXTRA_CPPFLAGS) \
|
||||
-target $(CLANG_CONFIG_x86_64_HOST_TRIPLE)
|
||||
|
||||
CLANG_CONFIG_x86_64_HOST_EXTRA_LDFLAGS := \
|
||||
$(CLANG_CONFIG_EXTRA_LDFLAGS) \
|
||||
$(CLANG_CONFIG_HOST_EXTRA_LDFLAGS) \
|
||||
$(CLANG_CONFIG_x86_64_EXTRA_LDFLAGS) \
|
||||
-target $(CLANG_CONFIG_x86_64_HOST_TRIPLE) \
|
||||
|
||||
$(CLANG_CONFIG_x86_64_HOST_COMBO_EXTRA_LDFLAGS) \
|
||||
-target $(CLANG_CONFIG_x86_64_HOST_TRIPLE)
|
||||
|
||||
define convert-to-host-clang-flags
|
||||
$(strip \
|
||||
|
|
|
@ -38,10 +38,10 @@ CLANG_CONFIG_UNKNOWN_CFLAGS := \
|
|||
-Wno-unused-but-set-parameter
|
||||
|
||||
# Clang flags for all host rules
|
||||
CLANG_CONFIG_HOST_EXTRA_ASFLAGS :=
|
||||
CLANG_CONFIG_HOST_EXTRA_CFLAGS :=
|
||||
CLANG_CONFIG_HOST_EXTRA_CPPFLAGS :=
|
||||
CLANG_CONFIG_HOST_EXTRA_LDFLAGS :=
|
||||
CLANG_CONFIG_HOST_EXTRA_ASFLAGS := --gcc-toolchain=$(HOST_TOOLCHAIN_FOR_CLANG)
|
||||
CLANG_CONFIG_HOST_EXTRA_CFLAGS := --gcc-toolchain=$(HOST_TOOLCHAIN_FOR_CLANG)
|
||||
CLANG_CONFIG_HOST_EXTRA_CPPFLAGS := --gcc-toolchain=$(HOST_TOOLCHAIN_FOR_CLANG)
|
||||
CLANG_CONFIG_HOST_EXTRA_LDFLAGS := --gcc-toolchain=$(HOST_TOOLCHAIN_FOR_CLANG)
|
||||
|
||||
# Clang flags for all target rules
|
||||
CLANG_CONFIG_TARGET_EXTRA_ASFLAGS :=
|
||||
|
@ -50,7 +50,11 @@ CLANG_CONFIG_TARGET_EXTRA_CPPFLAGS := -nostdlibinc
|
|||
CLANG_CONFIG_TARGET_EXTRA_LDFLAGS :=
|
||||
|
||||
# HOST config
|
||||
ifneq ($(strip $(BUILD_HOST_64bit)),)
|
||||
include $(BUILD_SYSTEM)/clang/HOST_x86_64.mk
|
||||
else
|
||||
include $(BUILD_SYSTEM)/clang/HOST_$(HOST_ARCH).mk
|
||||
endif
|
||||
|
||||
# TARGET config
|
||||
clang_2nd_arch_prefix :=
|
||||
|
|
42
core/clang/x86_common.mk
Normal file
42
core/clang/x86_common.mk
Normal file
|
@ -0,0 +1,42 @@
|
|||
ifeq ($(HOST_OS),darwin)
|
||||
# nothing required here yet
|
||||
endif
|
||||
|
||||
ifeq ($(HOST_OS),linux)
|
||||
|
||||
ifneq ($(strip $(BUILD_HOST_64bit)),)
|
||||
# Needs to be updated along with gcc
|
||||
HOST_ARCH_DESCRIPTOR_FOR_CLANG := x86_64-linux
|
||||
else
|
||||
# Needs to be updated along with gcc
|
||||
HOST_ARCH_DESCRIPTOR_FOR_CLANG := i686-linux
|
||||
endif
|
||||
|
||||
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_ASFLAGS := \
|
||||
--sysroot=$(HOST_TOOLCHAIN_FOR_CLANG)/sysroot
|
||||
|
||||
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_CFLAGS :=
|
||||
|
||||
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_CPPFLAGS := \
|
||||
--sysroot=$(HOST_TOOLCHAIN_FOR_CLANG)/sysroot \
|
||||
-isystem $(HOST_TOOLCHAIN_FOR_CLANG)/$(HOST_ARCH_DESCRIPTOR_FOR_CLANG)/include/c++/4.6.x-google \
|
||||
-isystem $(HOST_TOOLCHAIN_FOR_CLANG)/$(HOST_ARCH_DESCRIPTOR_FOR_CLANG)/include/c++/4.6.x-google/$(HOST_ARCH_DESCRIPTOR_FOR_CLANG) \
|
||||
-isystem $(HOST_TOOLCHAIN_FOR_CLANG)/$(HOST_ARCH_DESCRIPTOR_FOR_CLANG)/include/c++/4.6.x-google/backward \
|
||||
|
||||
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_LDFLAGS := \
|
||||
--sysroot=$(HOST_TOOLCHAIN_FOR_CLANG)/sysroot \
|
||||
-B$(HOST_TOOLCHAIN_FOR_CLANG)/$(HOST_ARCH_DESCRIPTOR_FOR_CLANG)/bin \
|
||||
-B$(HOST_TOOLCHAIN_FOR_CLANG)/lib/gcc/$(HOST_ARCH_DESCRIPTOR_FOR_CLANG)/4.6.x-google \
|
||||
-L$(HOST_TOOLCHAIN_FOR_CLANG)/lib/gcc/$(HOST_ARCH_DESCRIPTOR_FOR_CLANG)/4.6.x-google
|
||||
|
||||
ifneq ($(strip $(BUILD_HOST_64bit)),)
|
||||
# need to add lib64 if building 64-bit, otherwise lib
|
||||
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_LDFLAGS += -L$(HOST_TOOLCHAIN_FOR_CLANG)/$(HOST_ARCH_DESCRIPTOR_FOR_CLANG)/lib64/
|
||||
else
|
||||
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_LDFLAGS += -L$(HOST_TOOLCHAIN_FOR_CLANG)/$(HOST_ARCH_DESCRIPTOR_FOR_CLANG)/lib/
|
||||
endif
|
||||
endif # linux
|
||||
|
||||
ifeq ($(HOST_OS),windows)
|
||||
# nothing required here yet
|
||||
endif
|
|
@ -156,3 +156,7 @@ endef
|
|||
define get-file-size
|
||||
stat -f "%z" $(1)
|
||||
endef
|
||||
|
||||
# gcc location for clang; to be updated when clang is updated
|
||||
# HOST_TOOLCHAIN_ROOT is a Darwin-specific define
|
||||
HOST_TOOLCHAIN_FOR_CLANG := $(HOST_TOOLCHAIN_ROOT)
|
|
@ -41,10 +41,14 @@ ifneq ($(strip $(BUILD_HOST_64bit)),)
|
|||
# which can benefit from 64-bit host arch.
|
||||
HOST_GLOBAL_CFLAGS += -m64 -Wa,--noexecstack
|
||||
HOST_GLOBAL_LDFLAGS += -m64 -Wl,-z,noexecstack
|
||||
# gcc location for clang; to be updated when clang is updated
|
||||
HOST_TOOLCHAIN_FOR_CLANG := prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/
|
||||
else
|
||||
# We expect SSE3 floating point math.
|
||||
HOST_GLOBAL_CFLAGS += -mstackrealign -msse3 -mfpmath=sse -m32 -Wa,--noexecstack
|
||||
HOST_GLOBAL_LDFLAGS += -m32 -Wl,-z,noexecstack
|
||||
# gcc location for clang; to be updated when clang is updated
|
||||
HOST_TOOLCHAIN_FOR_CLANG := prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6/
|
||||
endif # BUILD_HOST_64bit
|
||||
|
||||
ifneq ($(strip $(BUILD_HOST_static)),)
|
||||
|
|
Loading…
Reference in a new issue