@@ -309,11 +309,15 @@ pub fn openssl(build: &Build, target: &str) {
309309    configure. arg ( "no-ssl3" ) ; 
310310
311311    let  os = match  target { 
312+         "aarch64-linux-android"  => "linux-aarch64" , 
312313        "aarch64-unknown-linux-gnu"  => "linux-aarch64" , 
314+         "arm-linux-androideabi"  => "android" , 
313315        "arm-unknown-linux-gnueabi"  => "linux-armv4" , 
314316        "arm-unknown-linux-gnueabihf"  => "linux-armv4" , 
317+         "armv7-linux-androideabi"  => "android-armv7" , 
315318        "armv7-unknown-linux-gnueabihf"  => "linux-armv4" , 
316319        "i686-apple-darwin"  => "darwin-i386-cc" , 
320+         "i686-linux-android"  => "android-x86" , 
317321        "i686-unknown-freebsd"  => "BSD-x86-elf" , 
318322        "i686-unknown-linux-gnu"  => "linux-elf" , 
319323        "i686-unknown-linux-musl"  => "linux-elf" , 
@@ -326,6 +330,7 @@ pub fn openssl(build: &Build, target: &str) {
326330        "powerpc64le-unknown-linux-gnu"  => "linux-ppc64le" , 
327331        "s390x-unknown-linux-gnu"  => "linux64-s390x" , 
328332        "x86_64-apple-darwin"  => "darwin64-x86_64-cc" , 
333+         "x86_64-linux-android"  => "linux-x86_64" , 
329334        "x86_64-unknown-freebsd"  => "BSD-x86_64" , 
330335        "x86_64-unknown-linux-gnu"  => "linux-x86_64" , 
331336        "x86_64-unknown-linux-musl"  => "linux-x86_64" , 
@@ -337,6 +342,18 @@ pub fn openssl(build: &Build, target: &str) {
337342    for  flag in  build. cflags ( target)  { 
338343        configure. arg ( flag) ; 
339344    } 
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+     } 
340357    configure. current_dir ( & obj) ; 
341358    println ! ( "Configuring openssl for {}" ,  target) ; 
342359    build. run_quiet ( & mut  configure) ; 
0 commit comments