makefiles: When supported, use -Ttext-segment also for the main loader.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
b06d343086
commit
36cf292048
|
@ -8550,6 +8550,34 @@ fi
|
|||
|
||||
case $host_cpu in
|
||||
*i[3456789]86* | x86_64)
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,-Ttext-segment=0x7bc00000" >&5
|
||||
$as_echo_n "checking whether the compiler supports -Wl,-Ttext-segment=0x7bc00000... " >&6; }
|
||||
if ${ac_cv_cflags__Wl__Ttext_segment_0x7bc00000+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_wine_try_cflags_saved=$CFLAGS
|
||||
CFLAGS="$CFLAGS -Wl,-Ttext-segment=0x7bc00000"
|
||||
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__Ttext_segment_0x7bc00000=yes
|
||||
else
|
||||
ac_cv_cflags__Wl__Ttext_segment_0x7bc00000=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__Ttext_segment_0x7bc00000" >&5
|
||||
$as_echo "$ac_cv_cflags__Wl__Ttext_segment_0x7bc00000" >&6; }
|
||||
if test "x$ac_cv_cflags__Wl__Ttext_segment_0x7bc00000" = xyes; then :
|
||||
case $host_os in
|
||||
freebsd* | kfreebsd*-gnu) LDEXECFLAGS="$LDEXECFLAGS -Wl,-Ttext-segment=0x60000000" ;;
|
||||
*) LDEXECFLAGS="$LDEXECFLAGS -Wl,-Ttext-segment=0x7bf00000" ;;
|
||||
esac
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,--section-start,.interp=0x7bf00400" >&5
|
||||
$as_echo_n "checking whether the compiler supports -Wl,--section-start,.interp=0x7bf00400... " >&6; }
|
||||
if ${ac_cv_cflags__Wl___section_start__interp_0x7bf00400+:} false; then :
|
||||
|
@ -8577,33 +8605,7 @@ if test "x$ac_cv_cflags__Wl___section_start__interp_0x7bf00400" = xyes; then :
|
|||
freebsd* | kfreebsd*-gnu) LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x60000400" ;;
|
||||
*) LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x7bf00400" ;;
|
||||
esac
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,-Ttext-segment=0x7bc00000" >&5
|
||||
$as_echo_n "checking whether the compiler supports -Wl,-Ttext-segment=0x7bc00000... " >&6; }
|
||||
if ${ac_cv_cflags__Wl__Ttext_segment_0x7bc00000+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_wine_try_cflags_saved=$CFLAGS
|
||||
CFLAGS="$CFLAGS -Wl,-Ttext-segment=0x7bc00000"
|
||||
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__Ttext_segment_0x7bc00000=yes
|
||||
else
|
||||
ac_cv_cflags__Wl__Ttext_segment_0x7bc00000=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__Ttext_segment_0x7bc00000" >&5
|
||||
$as_echo "$ac_cv_cflags__Wl__Ttext_segment_0x7bc00000" >&6; }
|
||||
if test "x$ac_cv_cflags__Wl__Ttext_segment_0x7bc00000" = xyes; then :
|
||||
:
|
||||
else
|
||||
# Extract the first word of "prelink", so it can be a program name with args.
|
||||
set dummy prelink; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
|
|
13
configure.ac
13
configure.ac
|
@ -895,14 +895,17 @@ case $host_os in
|
|||
|
||||
case $host_cpu in
|
||||
*i[[3456789]]86* | x86_64)
|
||||
WINE_TRY_CFLAGS([-Wl,--section-start,.interp=0x7bf00400],
|
||||
WINE_TRY_CFLAGS([-Wl,-Ttext-segment=0x7bc00000],
|
||||
[case $host_os in
|
||||
freebsd* | kfreebsd*-gnu) LDEXECFLAGS="$LDEXECFLAGS -Wl,-Ttext-segment=0x60000000" ;;
|
||||
*) LDEXECFLAGS="$LDEXECFLAGS -Wl,-Ttext-segment=0x7bf00000" ;;
|
||||
esac],
|
||||
[WINE_TRY_CFLAGS([-Wl,--section-start,.interp=0x7bf00400],
|
||||
[case $host_os in
|
||||
freebsd* | kfreebsd*-gnu) LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x60000400" ;;
|
||||
*) LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x7bf00400" ;;
|
||||
esac
|
||||
])
|
||||
WINE_TRY_CFLAGS([-Wl,-Ttext-segment=0x7bc00000],[:],
|
||||
[AC_PATH_PROG(PRELINK, prelink, false, [/sbin /usr/sbin $PATH])
|
||||
esac])
|
||||
AC_PATH_PROG(PRELINK, prelink, false, [/sbin /usr/sbin $PATH])
|
||||
if test "x$PRELINK" = xfalse
|
||||
then
|
||||
WINE_WARNING([prelink not found and linker does not support relocation, base address of core dlls won't be set correctly.])
|
||||
|
|
Loading…
Reference in New Issue