1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
--- a/nss.org/nspr/config/config.mk 2017-08-14 18:58:33.560407294 +0530
+++ b/nss/nspr/config/config.mk 2017-08-14 18:59:34.319025410 +0530
@@ -42,6 +42,13 @@
LDFLAGS = $(OS_LDFLAGS)
+# When targeting Android, add HOST_CFLAGS to CC flags
+# It is mandatory when using Clang toolchain in NDK
+# See autoconf.mk in nspr/out/config/ for the values.
+ifeq ($(OS_TARGET),Android)
+CC += $(OS_CFLAGS)
+endif
+
# Enable profile-guided optimization
ifndef NO_PROFILE_GUIDED_OPTIMIZE
ifdef MOZ_PROFILE_GENERATE
--- a/nss.org/nspr/config/Makefile.in 2017-08-14 18:58:33.560407294 +0530
+++ b/nss/nspr/config/Makefile.in 2017-08-14 18:59:34.319025410 +0530
@@ -76,6 +76,7 @@
include $(topsrcdir)/config/rules.mk
+ifneq ($(OS_TARGET),Android)
PROGS = $(OBJDIR)/now$(PROG_SUFFIX)
ifeq (,$(CROSS_COMPILE)$(filter-out OS2 WINNT,$(OS_ARCH)))
@@ -88,6 +89,7 @@
TARGETS = $(PROGS) $(PLSRCS:.pl=)
endif
endif
+endif
OUTOPTION = -o # end of the line
ifeq (,$(filter-out WINNT WIN95 WINCE,$(OS_TARGET)))
--- a/nss.org/nspr/configure 2017-08-14 18:58:33.544407658 +0530
+++ b/nss/nspr/configure 2017-08-14 18:59:34.319025410 +0530
@@ -2509,7 +2509,9 @@
OBJDIR='$(OBJDIR_NAME)'
OBJDIR_NAME=.
OBJDIR_SUFFIX=OBJ
-NSINSTALL='$(MOD_DEPTH)/config/$(OBJDIR_NAME)/nsinstall'
+if [ -z "$NSINSTALL" ]; then
+ NSINSTALL='$(MOD_DEPTH)/config/$(OBJDIR_NAME)/nsinstall'
+fi
NOSUCHFILE=/no-such-file
LIBNSPR='-L$(dist_libdir) -lnspr$(MOD_MAJOR_VERSION)'
LIBPLC='-L$(dist_libdir) -lplc$(MOD_MAJOR_VERSION)'
@@ -2643,7 +2645,7 @@
case "$target" in
arm-linux*-android*|*-linuxandroid*)
- android_tool_prefix="arm-linux-androideabi"
+ android_tool_prefix="clang"
;;
i?86-*android*)
android_tool_prefix="i686-linux-android"
@@ -2737,18 +2739,19 @@
esac
AS="$android_toolchain"/bin/"$android_tool_prefix"-as
- CC="$android_toolchain"/bin/"$android_tool_prefix"-gcc
- CXX="$android_toolchain"/bin/"$android_tool_prefix"-g++
- CPP="$android_toolchain"/bin/"$android_tool_prefix"-cpp
+ CC="$android_toolchain"/bin/"$android_tool_prefix"
+ CXX="$android_toolchain"/bin/"$android_tool_prefix"++
+ CPP="$CC" -E
LD="$android_toolchain"/bin/"$android_tool_prefix"-ld
AR="$android_toolchain"/bin/"$android_tool_prefix"-ar
RANLIB="$android_toolchain"/bin/"$android_tool_prefix"-ranlib
STRIP="$android_toolchain"/bin/"$android_tool_prefix"-strip
CPPFLAGS="-I$android_platform/usr/include $CPPFLAGS"
- CFLAGS="-mandroid -I$android_platform/usr/include -fno-short-enums -fno-exceptions $CFLAGS"
- CXXFLAGS="-mandroid -I$android_platform/usr/include -fpic -fno-short-enums -fno-exceptions $CXXFLAGS"
- LDFLAGS="-mandroid -L$android_platform/usr/lib -Wl,-rpath-link=$android_platform/usr/lib --sysroot=$android_platform $LDFLAGS"
+ CFLAGS="-gcc-toolchain "$android_ndk"/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64"
+ CFLAGS="$CFLAGS -target armv7-none-linux-androideabi"
+ CFLAGS="$CFLAGS --sysroot=$android_platform"
+ CXXFLAGS="-I$android_platform/usr/include -fpic -fno-short-enums -fno-exceptions $CXXFLAGS"
$as_echo "#define ANDROID 1" >>confdefs.h
@@ -5954,7 +5957,7 @@
CFLAGS="$_SAVE_CFLAGS"
fi
-all_flags=`echo $arch_flag $thumb_flag $thumb_interwork_flag $fpu_flag $float_abi_flag $soft_float_flag $align_flag`
+all_flags=`echo -target armv7-none-linux-androideabi $arch_flag $thumb_flag $thumb_interwork_flag $fpu_flag $float_abi_flag $soft_float_flag $align_flag`
if test -n "$all_flags"; then
_SAVE_CFLAGS="$CFLAGS"
CFLAGS="$all_flags"
--- a/nss.org/nss/coreconf/arch.mk 2017-08-14 18:58:33.596406475 +0530
+++ b/nss/nss/coreconf/arch.mk 2017-08-14 18:59:34.319025410 +0530
@@ -237,7 +237,7 @@
OS_TEST := arm
OS_ARCH = Android
ifndef OS_TARGET_RELEASE
- OS_TARGET_RELEASE := 8
+ OS_TARGET_RELEASE := 15
endif
endif
--- a/nss.org/nss/coreconf/Linux.mk 2017-08-14 18:58:33.596406475 +0530
+++ b/nss/nss/coreconf/Linux.mk 2017-08-14 19:00:20.201982027 +0530
@@ -33,16 +33,17 @@
ANDROID_TARGET=$(ANDROID_PREFIX)-$(ANDROID_TOOLCHAIN_VERSION)
# should autodetect which linux we are on, currently android only
# supports linux-x86 prebuilts
- ANDROID_TOOLCHAIN=$(ANDROID_NDK)/toolchains/$(ANDROID_TARGET)/prebuilt/linux-x86
+ ANDROID_GCC_TOOLCHAIN = $(ANDROID_NDK)/toolchains/$(ANDROID_TARGET)/prebuilt/linux-x86_64
+ ANDROID_TOOLCHAIN=$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64
ANDROID_SYSROOT=$(ANDROID_NDK)/platforms/android-$(OS_TARGET_RELEASE)/arch-$(OS_TEST)
- ANDROID_CC=$(ANDROID_TOOLCHAIN)/bin/$(ANDROID_PREFIX)-gcc
- ANDROID_CCC=$(ANDROID_TOOLCHAIN)/bin/$(ANDROID_PREFIX)-g++
+ ANDROID_CC=$(ANDROID_TOOLCHAIN)/bin/clang
+ ANDROID_CCC=$(ANDROID_TOOLCHAIN)/bin/clang++
NSS_DISABLE_GTESTS=1
# internal tools need to be built with the native compiler
ifndef INTERNAL_TOOLS
- CC = $(ANDROID_CC) --sysroot=$(ANDROID_SYSROOT)
+ CC = $(ANDROID_CC) --gcc-toolchain=$(ANDROID_GCC_TOOLCHAIN) -target armv7-none-linux-androideabi --sysroot=$(ANDROID_SYSROOT)
CCC = $(ANDROID_CCC) --sysroot=$(ANDROID_SYSROOT)
- DEFAULT_COMPILER=$(ANDROID_PREFIX)-gcc
+ DEFAULT_COMPILER=clang
ARCHFLAG = --sysroot=$(ANDROID_SYSROOT)
DEFINES += -DNO_SYSINFO -DNO_FORK_CHECK -DANDROID
CROSS_COMPILE = 1
--- a/nss.org/nss/coreconf/Makefile 2017-08-14 18:58:33.596406475 +0530
+++ b/nss/nss/coreconf/Makefile 2017-08-14 18:59:34.319025410 +0530
@@ -7,7 +7,9 @@
MODULE = coreconf
+ifneq ($(OS_TARGET),Android)
DIRS = nsinstall
+endif
include $(DEPTH)/coreconf/config.mk
include $(DEPTH)/coreconf/rules.mk
--- a/nss.org/nss/coreconf/UNIX.mk 2017-08-14 18:58:33.596406475 +0530
+++ b/nss/nss/coreconf/UNIX.mk 2017-08-14 18:59:34.319025410 +0530
@@ -24,7 +24,6 @@
NSINSTALL = $(BUILD_TREE)/nss/nsinstall
else
NSINSTALL_DIR = $(CORE_DEPTH)/coreconf/nsinstall
-NSINSTALL = $(NSINSTALL_DIR)/$(OBJDIR_NAME)/nsinstall
endif
MKDEPEND_DIR = $(CORE_DEPTH)/coreconf/mkdepend
--- a/nss.org/nss/coreconf/Werror.mk 2017-08-14 18:58:33.596406475 +0530
+++ b/nss/nss/coreconf/Werror.mk 2017-08-14 18:59:34.319025410 +0530
@@ -52,9 +52,6 @@
WARNING_CFLAGS = -Wall
ifdef CC_IS_CLANG
- # -Qunused-arguments : clang objects to arguments that it doesn't understand
- # and fixing this would require rearchitecture
- WARNING_CFLAGS += -Qunused-arguments
# -Wno-parentheses-equality : because clang warns about macro expansions
WARNING_CFLAGS += $(call disable_warning,parentheses-equality)
ifdef BUILD_OPT
|