Skip to content

Commit 55ec3f4

Browse files
[cherry-pick]fix ndk r18b compile error,test=develop (#5750)
1 parent 1f2b8c1 commit 55ec3f4

File tree

1 file changed

+47
-81
lines changed

1 file changed

+47
-81
lines changed

lite/demo/cxx/Makefile.def

Lines changed: 47 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -16,96 +16,62 @@ NDK_NAME=$(shell echo $(NDK_ROOT) | grep -Eo "android-ndk-r[0-9]{2}")
1616
NDK_VERSION=$(shell echo $(NDK_NAME) | grep -Eo "[0-9]{2}")
1717
$(info NDK_NAME: $(NDK_NAME))
1818
$(info NDK_VERSION: $(NDK_VERSION))
19-
ifeq ($(shell expr $(NDK_VERSION) \<= 17), 1)
19+
20+
ifeq ($(SYSTEM), Linux)
21+
HOST_NAME = linux
22+
HOST_TARGET = linux-x86_64
23+
else
24+
HOST_NAME = darwin
25+
HOST_TARGET = darwin-x86_64
26+
endif
27+
28+
$(info HOST_NAME: $(HOST_NAME))
29+
$(info HOST_TARGET: $(HOST_TARGET))
30+
31+
ifeq ($(shell expr $(NDK_VERSION) \<= 18), 1)
2032
ifeq ($(ARM_ABI), arm8)
21-
ifeq ($(SYSTEM), Linux)
22-
CC = $(NDK_ROOT)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++
23-
else
24-
CC = $(NDK_ROOT)/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-android-g++
25-
endif
26-
CXX_FLAGS = -funwind-tables -no-canonical-prefixes -D__ANDROID_API__=21 -fexceptions -frtti -std=c++11 -fopenmp -O3 -DNDEBUG -fPIE
27-
CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--gc-sections
33+
CC = $(NDK_ROOT)/toolchains/aarch64-linux-android-4.9/prebuilt/$(HOST_TARGET)/bin/aarch64-linux-android-g++
2834
SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-21/arch-arm64
29-
# when use ndk r16 or other older version, please use the followed SYSROOT_LINK setting.
30-
# SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-26/arch-arm64
31-
SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a \
32-
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++abi.a \
33-
$(NDK_ROOT)/platforms/android-21/arch-arm64/usr/lib/libstdc++.so
34-
INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/aarch64-linux-android
3535
else
36-
ifeq ($(SYSTEM), Linux)
37-
CC = $(NDK_ROOT)/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++
38-
else
39-
CC = $(NDK_ROOT)/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-g++
40-
endif
41-
CXX_FLAGS = -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=softfp -funwind-tables -no-canonical-prefixes \
42-
-D__ANDROID_API__=21 -fexceptions -frtti -std=c++11 -fopenmp -O3 -DNDEBUG -fPIE
43-
CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--fix-cortex-a8 -Wl,--gc-sections -Wl,-z,nocopyreloc
36+
CC = $(NDK_ROOT)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(HOST_TARGET)/bin/arm-linux-androideabi-g++
4437
SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-21/arch-arm
45-
SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a \
46-
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++abi.a \
47-
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libandroid_support.a \
48-
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libunwind.a
49-
INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/arm-linux-androideabi
5038
endif
51-
else ifeq ($(NDK_VERSION), 21)
39+
else
5240
ifeq ($(ARM_ABI), arm8)
53-
ifeq ($(SYSTEM), Linux)
54-
CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang++
55-
else
56-
CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang++
57-
endif
58-
CXX_FLAGS = -funwind-tables -no-canonical-prefixes -D__ANDROID_API__=21 -fexceptions -frtti -std=c++11 -fopenmp -static-openmp -O3 -DNDEBUG -fPIE
59-
CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--gc-sections
60-
#SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-21/arch-arm64
61-
SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a \
62-
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++abi.a \
63-
$(NDK_ROOT)/platforms/android-21/arch-arm64/usr/lib/libstdc++.so
64-
INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/aarch64-linux-android
41+
CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/$(HOST_TARGET)/bin/aarch64-linux-android21-clang++
6542
else
66-
ifeq ($(SYSTEM), Linux)
67-
CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi16-clang++
68-
else
69-
CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi16-clang++
70-
endif
71-
CXX_FLAGS = -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=softfp -funwind-tables -no-canonical-prefixes \
72-
-D__ANDROID_API__=16 -fexceptions -frtti -std=c++11 -fopenmp -static-openmp -O3 -DNDEBUG -fPIE
73-
CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--fix-cortex-a8 -Wl,--gc-sections -Wl,-z,nocopyreloc
74-
#SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-16/arch-arm
75-
SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a \
76-
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++abi.a \
77-
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libandroid_support.a \
78-
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libunwind.a
79-
INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/arm-linux-androideabi
43+
CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/$(HOST_TARGET)/bin/armv7a-linux-androideabi16-clang++
8044
endif
81-
else
45+
endif
46+
47+
ifeq ($(NDK_VERSION), 18)
8248
ifeq ($(ARM_ABI), arm8)
83-
ifeq ($(SYSTEM), Linux)
84-
CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang++
85-
else
86-
CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang++
87-
endif
88-
CXX_FLAGS = -funwind-tables -no-canonical-prefixes -D__ANDROID_API__=21 -fexceptions -frtti -std=c++11 -fopenmp -O3 -DNDEBUG -fPIE
89-
CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--gc-sections
90-
#SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-24/arch-arm64
91-
SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a \
92-
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++abi.a \
93-
$(NDK_ROOT)/platforms/android-21/arch-arm64/usr/lib/libstdc++.so
94-
INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/aarch64-linux-android
49+
LDFLAGS += -gcc-toolchain $(NDK_ROOT)/toolchains/aarch64-$(HOST_NAME)-android-4.9/prebuilt/linux-x86_64
9550
else
96-
ifeq ($(SYSTEM), Linux)
97-
CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi16-clang++
98-
else
99-
CC = $(NDK_ROOT)/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi16-clang++
100-
endif
101-
CXX_FLAGS = -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=softfp -funwind-tables -no-canonical-prefixes \
102-
-D__ANDROID_API__=16 -fexceptions -frtti -std=c++11 -fopenmp -O3 -DNDEBUG -fPIE
103-
CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--fix-cortex-a8 -Wl,--gc-sections -Wl,-z,nocopyreloc
104-
#SYSROOT_LINK = --sysroot=$(NDK_ROOT)/platforms/android-16/arch-arm
105-
SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a \
106-
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++abi.a \
107-
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libandroid_support.a \
108-
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libunwind.a
109-
INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/arm-linux-androideabi
51+
LDFLAGS += -gcc-toolchain $(NDK_ROOT)/toolchains/arm-$(HOST_NAME)-androideabi-4.9/prebuilt/linux-x86_64
11052
endif
11153
endif
54+
55+
ifeq ($(ARM_ABI), arm8)
56+
CXX_FLAGS = -funwind-tables -no-canonical-prefixes -D__ANDROID_API__=21 -fexceptions -frtti -std=c++11 -O3 -DNDEBUG -fPIE
57+
CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--gc-sections
58+
SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a \
59+
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++abi.a \
60+
$(NDK_ROOT)/platforms/android-21/arch-arm64/usr/lib/libstdc++.so
61+
INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/aarch64-linux-android
62+
else
63+
CXX_FLAGS = -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=softfp -funwind-tables -no-canonical-prefixes \
64+
-D__ANDROID_API__=16 -fexceptions -frtti -std=c++11 -O3 -DNDEBUG -fPIE
65+
CXXFLAGS_LINK = $(CXX_FLAGS) -pie -Wl,--fix-cortex-a8 -Wl,--gc-sections -Wl,-z,nocopyreloc
66+
SYSTEM_LIBS = $(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a \
67+
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++abi.a \
68+
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libandroid_support.a \
69+
$(NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libunwind.a
70+
INCLUDES = $(SYSTEM_INCLUDES) -I$(NDK_ROOT)/sysroot/usr/include/arm-linux-androideabi
71+
endif
72+
73+
ifeq ($(shell expr $(NDK_VERSION) \>= 21), 1)
74+
CXX_FLAGS += -fopenmp -static-openmp
75+
else
76+
CXX_FLAGS += -fopenmp
77+
endif

0 commit comments

Comments
 (0)