@@ -309,11 +309,15 @@ pub fn openssl(build: &Build, target: &str) {
309
309
configure. arg ( "no-ssl3" ) ;
310
310
311
311
let os = match target {
312
+ "aarch64-linux-android" => "linux-aarch64" ,
312
313
"aarch64-unknown-linux-gnu" => "linux-aarch64" ,
314
+ "arm-linux-androideabi" => "android" ,
313
315
"arm-unknown-linux-gnueabi" => "linux-armv4" ,
314
316
"arm-unknown-linux-gnueabihf" => "linux-armv4" ,
317
+ "armv7-linux-androideabi" => "android-armv7" ,
315
318
"armv7-unknown-linux-gnueabihf" => "linux-armv4" ,
316
319
"i686-apple-darwin" => "darwin-i386-cc" ,
320
+ "i686-linux-android" => "android-x86" ,
317
321
"i686-unknown-freebsd" => "BSD-x86-elf" ,
318
322
"i686-unknown-linux-gnu" => "linux-elf" ,
319
323
"i686-unknown-linux-musl" => "linux-elf" ,
@@ -326,6 +330,7 @@ pub fn openssl(build: &Build, target: &str) {
326
330
"powerpc64le-unknown-linux-gnu" => "linux-ppc64le" ,
327
331
"s390x-unknown-linux-gnu" => "linux64-s390x" ,
328
332
"x86_64-apple-darwin" => "darwin64-x86_64-cc" ,
333
+ "x86_64-linux-android" => "linux-x86_64" ,
329
334
"x86_64-unknown-freebsd" => "BSD-x86_64" ,
330
335
"x86_64-unknown-linux-gnu" => "linux-x86_64" ,
331
336
"x86_64-unknown-linux-musl" => "linux-x86_64" ,
@@ -337,6 +342,18 @@ pub fn openssl(build: &Build, target: &str) {
337
342
for flag in build. cflags ( target) {
338
343
configure. arg ( flag) ;
339
344
}
345
+ // There is no specific os target for android aarch64 or x86_64,
346
+ // so we need to pass some extra cflags
347
+ if target == "aarch64-linux-android" || target == "x86_64-linux-android" {
348
+ configure. arg ( "-mandroid" ) ;
349
+ configure. arg ( "-fomit-frame-pointer" ) ;
350
+ }
351
+ // Make PIE binaries
352
+ // Non-PIE linker support was removed in Lollipop
353
+ // https://source.android.com/security/enhancements/enhancements50
354
+ if target == "i686-linux-android" {
355
+ configure. arg ( "no-asm" ) ;
356
+ }
340
357
configure. current_dir ( & obj) ;
341
358
println ! ( "Configuring openssl for {}" , target) ;
342
359
build. run_quiet ( & mut configure) ;
0 commit comments