Skip to content

Commit

Permalink
Android.rules: add support for clang compiler
Browse files Browse the repository at this point in the history
Summary:
building executables with the NDK clang requires -target and
-gcc-toolchain arguments.

Reviewers: eugene, danalbert

Subscribers: srhines, lldb-commits

Differential Revision: https://reviews.llvm.org/D30574

llvm-svn: 297145
  • Loading branch information
labath committed Mar 7, 2017
1 parent 3770763 commit 8faf9b7
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 16 deletions.
29 changes: 29 additions & 0 deletions lldb/packages/Python/lldbsuite/test/make/Android.rules
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,51 @@ endif
ifeq "$(ARCH)" "arm"
SYSROOT_ARCH := arm
STL_ARCH := armeabi-v7a
TRIPLE_ARCH := armv7
ARCH_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -marm
else ifeq "$(ARCH)" "aarch64"
SYSROOT_ARCH := arm64
TRIPLE_ARCH := aarch64
STL_ARCH := arm64-v8a
else ifeq "$(ARCH)" "i386"
SYSROOT_ARCH := x86
STL_ARCH := x86
TRIPLE_ARCH := i686
else ifeq "$(ARCH)" "mips64r6"
SYSROOT_ARCH := mips64
STL_ARCH := mips64
TRIPLE_ARCH := mips64el
else ifeq "$(ARCH)" "mips32"
SYSROOT_ARCH := mips
STL_ARCH := mips
TRIPLE_ARCH := mipsel
else
SYSROOT_ARCH := $(ARCH)
STL_ARCH := $(ARCH)
TRIPLE_ARCH := $(ARCH)
endif

ifeq "$(findstring 86,$(ARCH))" "86"
TOOLCHAIN_DIR := $(STL_ARCH)-4.9
else
TOOLCHAIN_DIR := $(TRIPLE_ARCH)-linux-android-4.9
endif

ifeq "$(HOST_OS)" "Linux"
HOST_TAG := linux-x86_64
else ifeq "$(HOST_OS)" "Darwin"
HOST_TAG := darwin-x86_64
else
HOST_TAG := windows-x86_64
endif

ifeq "$(findstring clang,$(CC))" "clang"
ARCH_CFLAGS += \
-target $(TRIPLE_ARCH)-none-linux-android \
-gcc-toolchain $(NDK_ROOT)/toolchains/$(TOOLCHAIN_DIR)/prebuilt/$(HOST_TAG)
ARCH_LDFLAGS += \
-target $(TRIPLE_ARCH)-none-linux-android \
-gcc-toolchain $(NDK_ROOT)/toolchains/$(TOOLCHAIN_DIR)/prebuilt/$(HOST_TAG)
endif

ARCH_CFLAGS += \
Expand Down
32 changes: 16 additions & 16 deletions lldb/packages/Python/lldbsuite/test/make/Makefile.rules
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,22 @@ THIS_FILE_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))/
LLDB_BASE_DIR := $(THIS_FILE_DIR)../../../../../


#----------------------------------------------------------------------
# If OS is not defined, use 'uname -s' to determine the OS name.
#
# uname on Windows gives "windows32", but most environments standardize
# on "Windows_NT", so we'll make it consistent here. When running
# tests from Visual Studio, the environment variable isn't inherited
# all the way down to the process spawned for make.
#----------------------------------------------------------------------
HOST_OS = $(shell uname -s)
ifeq "$(HOST_OS)" "windows32"
HOST_OS = Windows_NT
endif
ifeq "$(OS)" ""
OS = $(HOST_OS)
endif

#----------------------------------------------------------------------
# If TRIPLE is not defined try to set the ARCH, CC, CFLAGS, and more
# from the triple alone
Expand Down Expand Up @@ -68,22 +84,6 @@ ifeq "$(OS)" "Android"
include $(THIS_FILE_DIR)/Android.rules
endif

#----------------------------------------------------------------------
# If OS is not defined, use 'uname -s' to determine the OS name.
#
# uname on Windows gives "windows32", but most environments standardize
# on "Windows_NT", so we'll make it consistent here. When running
# tests from Visual Studio, the environment variable isn't inherited
# all the way down to the process spawned for make.
#----------------------------------------------------------------------
HOST_OS = $(shell uname -s)
ifeq "$(HOST_OS)" "windows32"
HOST_OS = Windows_NT
endif
ifeq "$(OS)" ""
OS = $(HOST_OS)
endif

#----------------------------------------------------------------------
# If ARCH is not defined, default to x86_64.
#----------------------------------------------------------------------
Expand Down

0 comments on commit 8faf9b7

Please sign in to comment.