Commit cc2cfb9b authored by Alexandre Julliard's avatar Alexandre Julliard

loader: Make the loader position-independent on 64-bit.

parent 912fd620
......@@ -10244,7 +10244,7 @@ fi
WINEPRELOADER_LDFLAGS="-static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7d400000"
case $host_cpu in
*i[3456789]86* | x86_64 | *aarch64* | arm*)
*i[3456789]86* | arm*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,-Ttext-segment=0x7bc00000" >&5
printf %s "checking whether the compiler supports -Wl,-Ttext-segment=0x7bc00000... " >&6; }
if test ${ac_cv_cflags__Wl__Ttext_segment_0x7bc00000+y}
......@@ -10337,6 +10337,36 @@ then :
WINELOADER_LDFLAGS="$WINELOADER_LDFLAGS -Wl,-z,max-page-size=0x1000"
fi
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,-pie" >&5
printf %s "checking whether the compiler supports -Wl,-pie... " >&6; }
if test ${ac_cv_cflags__Wl__pie+y}
then :
printf %s "(cached) " >&6
else $as_nop
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 $as_nop
ac_cv_cflags__Wl__pie=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Wl__pie" >&5
printf "%s\n" "$ac_cv_cflags__Wl__pie" >&6; }
if test "x$ac_cv_cflags__Wl__pie" = xyes
then :
WINELOADER_LDFLAGS="$WINELOADER_LDFLAGS -Wl,-pie"
fi
;;
esac
;;
esac
......
......@@ -770,7 +770,7 @@ case $host_os in
WINEPRELOADER_LDFLAGS="-static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7d400000"
case $host_cpu in
*i[[3456789]]86* | x86_64 | *aarch64* | arm*)
*i[[3456789]]86* | arm*)
WINE_TRY_CFLAGS([-Wl,-Ttext-segment=0x7bc00000],
[case $host_os in
freebsd* | kfreebsd*-gnu) WINELOADER_LDFLAGS="$WINELOADER_LDFLAGS -Wl,-Ttext-segment=0x60000000" ;;
......@@ -784,6 +784,10 @@ case $host_os in
WINE_TRY_CFLAGS([-Wl,-z,max-page-size=0x1000],
[WINELOADER_LDFLAGS="$WINELOADER_LDFLAGS -Wl,-z,max-page-size=0x1000"])
;;
*)
WINE_TRY_CFLAGS([-Wl,-pie],
[WINELOADER_LDFLAGS="$WINELOADER_LDFLAGS -Wl,-pie"])
;;
esac
;;
esac
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment