@@ -61,7 +61,7 @@ SODIUM_SOURCE := $(crypto_aead_src) $(crypto_auth_src) $(crypto_box_src) \
61
61
$(crypto_stream_src ) $(crypto_verify_src ) $(randombytes_src ) $(sodium_src )
62
62
63
63
LOCAL_MODULE := sodium
64
- LOCAL_CFLAGS += -O2 -I$(LOCAL_PATH ) /shadowsocks-libev/libsodium/src/libsodium/include \
64
+ LOCAL_CFLAGS += -pie -fPIE - O2 -I$(LOCAL_PATH ) /shadowsocks-libev/libsodium/src/libsodium/include \
65
65
-I$(LOCAL_PATH ) /shadowsocks-libev/libsodium/src/libsodium/include/sodium \
66
66
-DPACKAGE_NAME=\"libsodium\" -DPACKAGE_TARNAME=\"libsodium\" \
67
67
-DPACKAGE_VERSION=\"1.0.1\" -DPACKAGE_STRING=\"libsodium\ 1.0.1\" \
@@ -79,6 +79,8 @@ LOCAL_CFLAGS += -O2 -I$(LOCAL_PATH)/shadowsocks-libev/libsodium/src/libsodium/in
79
79
-DHAVE_WEAK_SYMBOLS=1 -DHAVE_ARC4RANDOM=1 -DHAVE_ARC4RANDOM_BUF=1 \
80
80
-DHAVE_MLOCK=1 -DHAVE_MPROTECT=1 -DHAVE_POSIX_MEMALIGN=1
81
81
82
+ LOCAL_LDFLAGS += -pie -fPIE
83
+
82
84
LOCAL_SRC_FILES := $(addprefix shadowsocks-libev/libsodium/src/libsodium/,$(SODIUM_SOURCE ) )
83
85
84
86
include $(BUILD_STATIC_LIBRARY )
@@ -104,10 +106,12 @@ LIBEVENT_SOURCES := \
104
106
105
107
LOCAL_MODULE := event
106
108
LOCAL_SRC_FILES := $(addprefix libevent/, $(LIBEVENT_SOURCES ) )
107
- LOCAL_CFLAGS := -O2 -I$(LOCAL_PATH ) /libevent \
109
+ LOCAL_CFLAGS := -pie -fPIE - O2 -I$(LOCAL_PATH ) /libevent \
108
110
-I$(LOCAL_PATH ) /libevent/include \
109
111
-I$(LOCAL_PATH ) /openssl/include
110
112
113
+ LOCAL_LDFLAGS += -pie -fPIE
114
+
111
115
include $(BUILD_STATIC_LIBRARY )
112
116
113
117
# #######################################################
@@ -119,7 +123,9 @@ include $(CLEAR_VARS)
119
123
ANCILLARY_SOURCE := fd_recv.c fd_send.c
120
124
121
125
LOCAL_MODULE := libancillary
122
- LOCAL_CFLAGS += -O2 -I$(LOCAL_PATH ) /libancillary
126
+ LOCAL_CFLAGS += -pie -fPIE -O2 -I$(LOCAL_PATH ) /libancillary
127
+
128
+ LOCAL_LDFLAGS += -pie -fPIE
123
129
124
130
LOCAL_SRC_FILES := $(addprefix libancillary/, $(ANCILLARY_SOURCE ) )
125
131
@@ -141,9 +147,11 @@ set_src = set/allocation.c set/inspection.c set/ipv4_set.c set/ipv6_set.c \
141
147
IPSET_SOURCE := general.c $(bdd_src ) $(map_src ) $(set_src )
142
148
143
149
LOCAL_MODULE := libipset
144
- LOCAL_CFLAGS += -O2 -I$(LOCAL_PATH ) /shadowsocks-libev/libipset/include \
150
+ LOCAL_CFLAGS += -pie -fPIE - O2 -I$(LOCAL_PATH ) /shadowsocks-libev/libipset/include \
145
151
-I$(LOCAL_PATH ) /shadowsocks-libev/libcork/include
146
152
153
+ LOCAL_LDFLAGS += -pie -fPIE
154
+
147
155
LOCAL_SRC_FILES := $(addprefix shadowsocks-libev/libipset/,$(IPSET_SOURCE ) )
148
156
149
157
include $(BUILD_STATIC_LIBRARY )
@@ -168,9 +176,11 @@ pthreads_src := pthreads/thread.c
168
176
CORK_SOURCE := $(cli_src ) $(core_src ) $(ds_src ) $(posix_src ) $(pthreads_src )
169
177
170
178
LOCAL_MODULE := libcork
171
- LOCAL_CFLAGS += -O2 -I$(LOCAL_PATH ) /shadowsocks-libev/libcork/include \
179
+ LOCAL_CFLAGS += -pie -fPIE - O2 -I$(LOCAL_PATH ) /shadowsocks-libev/libcork/include \
172
180
-DCORK_API=CORK_LOCAL
173
181
182
+ LOCAL_LDFLAGS += -pie -fPIE
183
+
174
184
LOCAL_SRC_FILES := $(addprefix shadowsocks-libev/libcork/,$(CORK_SOURCE ) )
175
185
176
186
include $(BUILD_STATIC_LIBRARY )
@@ -187,9 +197,11 @@ UDNS_SOURCES := udns_dn.c udns_dntosp.c udns_parse.c udns_resolver.c udns_init.c
187
197
udns_rr_srv.c udns_rr_naptr.c udns_codes.c udns_jran.c
188
198
189
199
LOCAL_MODULE := libudns
190
- LOCAL_CFLAGS += -O2 -I$(LOCAL_PATH ) /shadowsocks-libev/libudns \
200
+ LOCAL_CFLAGS += -pie -fPIE - O2 -I$(LOCAL_PATH ) /shadowsocks-libev/libudns \
191
201
-DHAVE_DECL_INET_NTOP
192
202
203
+ LOCAL_LDFLAGS += -pie -fPIE
204
+
193
205
LOCAL_SRC_FILES := $(addprefix shadowsocks-libev/libudns/,$(UDNS_SOURCES ) )
194
206
195
207
include $(BUILD_STATIC_LIBRARY )
@@ -201,10 +213,12 @@ include $(BUILD_STATIC_LIBRARY)
201
213
include $(CLEAR_VARS )
202
214
203
215
LOCAL_MODULE := libev
204
- LOCAL_CFLAGS += -O2 -DNDEBUG -DHAVE_CONFIG_H
216
+ LOCAL_CFLAGS += -pie -fPIE - O2 -DNDEBUG -DHAVE_CONFIG_H
205
217
LOCAL_SRC_FILES := \
206
218
libev/ev.c \
207
- libev/event.c
219
+ libev/event.c
220
+
221
+ LOCAL_LDFLAGS += -pie -fPIE
208
222
209
223
include $(BUILD_STATIC_LIBRARY )
210
224
@@ -223,10 +237,12 @@ LOCAL_STATIC_LIBRARIES := libevent
223
237
224
238
LOCAL_MODULE := redsocks
225
239
LOCAL_SRC_FILES := $(addprefix redsocks/, $(REDSOCKS_SOURCES ) )
226
- LOCAL_CFLAGS := -O2 -std=gnu99 -I$(LOCAL_PATH ) /redsocks \
240
+ LOCAL_CFLAGS := -pie -fPIE - O2 -std=gnu99 -I$(LOCAL_PATH ) /redsocks \
227
241
-I$(LOCAL_PATH ) /libevent/include \
228
242
-I$(LOCAL_PATH ) /libevent
229
243
244
+ LOCAL_LDFLAGS += -pie -fPIE
245
+
230
246
include $(BUILD_EXECUTABLE )
231
247
232
248
# #######################################################
@@ -239,7 +255,9 @@ PDNSD_SOURCES := $(wildcard $(LOCAL_PATH)/pdnsd/src/*.c)
239
255
240
256
LOCAL_MODULE := pdnsd
241
257
LOCAL_SRC_FILES := $(PDNSD_SOURCES:$(LOCAL_PATH ) /%=% )
242
- LOCAL_CFLAGS := -Wall -O2 -I$(LOCAL_PATH ) /pdnsd
258
+ LOCAL_CFLAGS := -pie -fPIE -Wall -O2 -I$(LOCAL_PATH ) /pdnsd
259
+
260
+ LOCAL_LDFLAGS += -pie -fPIE
243
261
244
262
include $(BUILD_EXECUTABLE )
245
263
@@ -253,7 +271,7 @@ SHADOWSOCKS_SOURCES := local.c cache.c udprelay.c encrypt.c utils.c netutils.c j
253
271
254
272
LOCAL_MODULE := ss-local
255
273
LOCAL_SRC_FILES := $(addprefix shadowsocks-libev/src/, $(SHADOWSOCKS_SOURCES ) )
256
- LOCAL_CFLAGS := -Wall -O2 -fno-strict-aliasing -DUDPRELAY_LOCAL \
274
+ LOCAL_CFLAGS := -pie -fPIE - Wall -O2 -fno-strict-aliasing -DUDPRELAY_LOCAL \
257
275
-DUSE_CRYPTO_OPENSSL -DANDROID -DHAVE_CONFIG_H \
258
276
-I$(LOCAL_PATH ) /libev \
259
277
-I$(LOCAL_PATH ) /libancillary \
@@ -264,6 +282,8 @@ LOCAL_CFLAGS := -Wall -O2 -fno-strict-aliasing -DUDPRELAY_LOCAL \
264
282
-I$(LOCAL_PATH ) /shadowsocks-libev/libsodium/src/libsodium/include/sodium \
265
283
-I$(LOCAL_PATH ) /shadowsocks-libev/libipset/include
266
284
285
+ LOCAL_LDFLAGS += -pie -fPIE
286
+
267
287
LOCAL_STATIC_LIBRARIES := libev libcrypto libipset libcork libudns libsodium libancillary
268
288
269
289
LOCAL_LDLIBS := -llog
@@ -280,15 +300,17 @@ SHADOWSOCKS_SOURCES := tunnel.c cache.c udprelay.c encrypt.c utils.c netutils.c
280
300
281
301
LOCAL_MODULE := ss-tunnel
282
302
LOCAL_SRC_FILES := $(addprefix shadowsocks-libev/src/, $(SHADOWSOCKS_SOURCES ) )
283
- LOCAL_CFLAGS := -Wall -O2 -fno-strict-aliasing -DUDPRELAY_LOCAL -DUDPRELAY_TUNNEL \
303
+ LOCAL_CFLAGS := -pie -fPIE - Wall -O2 -fno-strict-aliasing -DUDPRELAY_LOCAL -DUDPRELAY_TUNNEL \
284
304
-DUSE_CRYPTO_OPENSSL -DANDROID -DHAVE_CONFIG_H -DSSTUNNEL_JNI \
285
305
-I$(LOCAL_PATH ) /libev \
286
306
-I$(LOCAL_PATH ) /libancillary \
287
307
-I$(LOCAL_PATH ) /shadowsocks-libev/libudns \
288
308
-I$(LOCAL_PATH ) /shadowsocks-libev/libcork/include \
289
309
-I$(LOCAL_PATH ) /shadowsocks-libev/libsodium/src/libsodium/include \
290
310
-I$(LOCAL_PATH ) /shadowsocks-libev/libsodium/src/libsodium/include/sodium \
291
- -I$(LOCAL_PATH ) /openssl/include
311
+ -I$(LOCAL_PATH ) /openssl/include
312
+
313
+ LOCAL_LDFLAGS += -pie -fPIE
292
314
293
315
LOCAL_STATIC_LIBRARIES := libev libcrypto libsodium libcork libudns libancillary
294
316
@@ -320,13 +342,15 @@ include $(BUILD_SHARED_LIBRARY)
320
342
321
343
include $(CLEAR_VARS )
322
344
323
- LOCAL_CFLAGS := -std=gnu99
345
+ LOCAL_CFLAGS := -std=gnu99 -pie -fPIE
324
346
LOCAL_CFLAGS += -DBADVPN_THREADWORK_USE_PTHREAD -DBADVPN_LINUX -DBADVPN_BREACTOR_BADVPN -D_GNU_SOURCE
325
347
LOCAL_CFLAGS += -DBADVPN_USE_SELFPIPE -DBADVPN_USE_EPOLL
326
348
LOCAL_CFLAGS += -DBADVPN_LITTLE_ENDIAN -DBADVPN_THREAD_SAFE
327
349
LOCAL_CFLAGS += -DNDEBUG -DANDROID
328
350
# LOCAL_CFLAGS += -DTUN2SOCKS_JNI
329
351
352
+ LOCAL_LDFLAGS += -pie -fPIE
353
+
330
354
LOCAL_STATIC_LIBRARIES := libancillary
331
355
332
356
LOCAL_C_INCLUDES: = \
0 commit comments