From fec21ed61947e1a301e03be116d39ae4ba04645e Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Thu, 27 Apr 2017 15:41:44 +0200 Subject: [PATCH] configure: Re-enable the preloader on Android. Signed-off-by: Alexandre Julliard --- configure | 30 ++---------------------------- configure.ac | 7 ++----- loader/main.c | 4 ++++ 3 files changed, 8 insertions(+), 33 deletions(-) diff --git a/configure b/configure index dee9369bfaf..229dba9883f 100755 --- a/configure +++ b/configure @@ -8353,6 +8353,7 @@ fi linux-android*) DLLFLAGS="$DLLFLAGS -fPIC" + LDEXECFLAGS="-Wl,-pie" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,--export-dynamic" >&5 $as_echo_n "checking whether the compiler supports -fPIC -Wl,--export-dynamic... " >&6; } if ${ac_cv_cflags__fPIC__Wl___export_dynamic+:} false; then : @@ -8376,7 +8377,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__fPIC__Wl___export_dynamic" >&5 $as_echo "$ac_cv_cflags__fPIC__Wl___export_dynamic" >&6; } if test "x$ac_cv_cflags__fPIC__Wl___export_dynamic" = xyes; then : - LDEXECFLAGS="-Wl,--export-dynamic" + LDEXECFLAGS="$LDEXECFLAGS -Wl,--export-dynamic" fi as_ac_var=`$as_echo "ac_cv_cflags_-fPIC -Wl,--rpath,\\$ORIGIN/../lib" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,--rpath,\$ORIGIN/../lib" >&5 @@ -8435,7 +8436,6 @@ if eval test \"x\$"$as_ac_var"\" = x"yes"; then : LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine" fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,--enable-new-dtags" >&5 $as_echo_n "checking whether the compiler supports -Wl,--enable-new-dtags... " >&6; } if ${ac_cv_cflags__Wl___enable_new_dtags+:} false; then : @@ -8461,31 +8461,6 @@ $as_echo "$ac_cv_cflags__Wl___enable_new_dtags" >&6; } if test "x$ac_cv_cflags__Wl___enable_new_dtags" = xyes; then : LDRPATH_INSTALL="$LDRPATH_INSTALL -Wl,--enable-new-dtags" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,-pie" >&5 -$as_echo_n "checking whether the compiler supports -Wl,-pie... " >&6; } -if ${ac_cv_cflags__Wl__pie+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_wine_try_cflags_saved=$CFLAGS -CFLAGS="$CFLAGS -Wl,-pie" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int main(int argc, char **argv) { return 0; } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_cflags__Wl__pie=yes -else - ac_cv_cflags__Wl__pie=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -CFLAGS=$ac_wine_try_cflags_saved -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Wl__pie" >&5 -$as_echo "$ac_cv_cflags__Wl__pie" >&6; } -if test "x$ac_cv_cflags__Wl__pie" = xyes; then : - LDRPATH_INSTALL="$LDRPATH_INSTALL -Wl,-pie" -fi LIBWINE_SHAREDLIB="libwine.so" @@ -15258,7 +15233,6 @@ case $build_os in esac case $host_os in - linux-android*) ;; linux*) case $host_cpu in *i[3456789]86*|x86_64*) diff --git a/configure.ac b/configure.ac index 0a3b3b12cf5..057bcc89c1b 100644 --- a/configure.ac +++ b/configure.ac @@ -847,19 +847,17 @@ case $host_os in linux-android*) DLLFLAGS="$DLLFLAGS -fPIC" + LDEXECFLAGS="-Wl,-pie" WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic], - [LDEXECFLAGS="-Wl,--export-dynamic"]) + [LDEXECFLAGS="$LDEXECFLAGS -Wl,--export-dynamic"]) WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib], [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"], [WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib], [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`" LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"])]) - WINE_TRY_CFLAGS([-Wl,--enable-new-dtags], [LDRPATH_INSTALL="$LDRPATH_INSTALL -Wl,--enable-new-dtags"]) - WINE_TRY_CFLAGS([-Wl,-pie], - [LDRPATH_INSTALL="$LDRPATH_INSTALL -Wl,-pie"]) AC_SUBST(LIBWINE_SHAREDLIB,"libwine.so") AC_SUBST(LIBWINE_INSTALL_LIB,"libwine.so") @@ -1967,7 +1965,6 @@ case $build_os in esac case $host_os in - linux-android*) ;; linux*) case $host_cpu in *i[[3456789]]86*|x86_64*) diff --git a/loader/main.c b/loader/main.c index 05e0c068a2e..a560ec37bda 100644 --- a/loader/main.c +++ b/loader/main.c @@ -113,7 +113,11 @@ static void check_command_line( int argc, char *argv[] ) static int pre_exec(void) { +#if defined(__i386__) || defined(__x86_64__) + return 1; /* we have a preloader */ +#else return 0; /* no exec needed */ +#endif } #elif defined(__linux__) && (defined(__i386__) || defined(__arm__))