mirror of
https://gitlab.winehq.org/wine/wine.git
synced 2024-11-19 17:06:04 -07:00
configure: Use --no-default-config option on clang when available.
Some distros arbitrary flags into clang config files without guarding it for applicable targets, which breaks cross compilation.
This commit is contained in:
parent
cf29f40ce4
commit
471d7178ae
Notes:
Alexandre Julliard
2023-11-28 00:20:20 +01:00
Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/wine/-/merge_requests/4492
2 changed files with 63 additions and 10 deletions
54
configure
vendored
54
configure
vendored
|
@ -10654,10 +10654,46 @@ then :
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
llvm_extra_cflags="-target $llvm_target -fuse-ld=lld"
|
llvm_extra_cflags="-target $llvm_target -fuse-ld=lld"
|
||||||
|
llvm_extra_ldflags=""
|
||||||
case $llvm_target in
|
case $llvm_target in
|
||||||
*windows) llvm_cflags="-Wl,-subsystem:console -Wl,-WX" ;;
|
*windows) llvm_cflags="-Wl,-subsystem:console -Wl,-WX" ;;
|
||||||
esac
|
esac
|
||||||
{ as_ac_var=`printf "%s\n" "ac_cv_${wine_arch}_cflags_$llvm_extra_cflags $llvm_cflags" | $as_tr_sh`
|
{ as_ac_var=`printf "%s\n" "ac_cv_${wine_arch}_cflags_$llvm_extra_cflags $llvm_cflags --no-default-config" | $as_tr_sh`
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $llvm_extra_cflags $llvm_cflags --no-default-config" >&5
|
||||||
|
printf %s "checking whether $CC supports $llvm_extra_cflags $llvm_cflags --no-default-config... " >&6; }
|
||||||
|
if eval test \${$as_ac_var+y}
|
||||||
|
then :
|
||||||
|
printf %s "(cached) " >&6
|
||||||
|
else $as_nop
|
||||||
|
ac_wine_try_cflags_saved=$CFLAGS
|
||||||
|
ac_wine_try_cflags_saved_exeext=$ac_exeext
|
||||||
|
CFLAGS="$CFLAGS -nostdlib -nodefaultlibs $llvm_extra_cflags $llvm_cflags --no-default-config"
|
||||||
|
ac_exeext=".exe"
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
void *__os_arm64x_dispatch_ret = 0;
|
||||||
|
int __cdecl mainCRTStartup(void) { return 0; }
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_link "$LINENO"
|
||||||
|
then :
|
||||||
|
eval "$as_ac_var=yes"
|
||||||
|
else $as_nop
|
||||||
|
eval "$as_ac_var=no"
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.beam \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
CFLAGS=$ac_wine_try_cflags_saved
|
||||||
|
ac_exeext=$ac_wine_try_cflags_saved_exeext
|
||||||
|
fi
|
||||||
|
eval ac_res=\$$as_ac_var
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||||
|
printf "%s\n" "$ac_res" >&6; }
|
||||||
|
if eval test \"x\$"$as_ac_var"\" = x"yes"
|
||||||
|
then :
|
||||||
|
llvm_extra_cflags="$llvm_extra_cflags --no-default-config"
|
||||||
|
llvm_extra_ldflags="--no-default-config"
|
||||||
|
else $as_nop
|
||||||
|
{ as_ac_var=`printf "%s\n" "ac_cv_${wine_arch}_cflags_$llvm_extra_cflags $llvm_cflags" | $as_tr_sh`
|
||||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $llvm_extra_cflags $llvm_cflags" >&5
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $llvm_extra_cflags $llvm_cflags" >&5
|
||||||
printf %s "checking whether $CC supports $llvm_extra_cflags $llvm_cflags... " >&6; }
|
printf %s "checking whether $CC supports $llvm_extra_cflags $llvm_cflags... " >&6; }
|
||||||
if eval test \${$as_ac_var+y}
|
if eval test \${$as_ac_var+y}
|
||||||
|
@ -10689,11 +10725,19 @@ eval ac_res=\$$as_ac_var
|
||||||
printf "%s\n" "$ac_res" >&6; }
|
printf "%s\n" "$ac_res" >&6; }
|
||||||
if eval test \"x\$"$as_ac_var"\" = x"yes"
|
if eval test \"x\$"$as_ac_var"\" = x"yes"
|
||||||
then :
|
then :
|
||||||
target=$llvm_target
|
as_fn_append ${wine_arch}_EXTRACFLAGS " $llvm_extra_cflags $llvm_cflags"
|
||||||
eval "${wine_arch}_DELAYLOADFLAG=\"-Wl,-delayload,\""
|
else $as_nop
|
||||||
as_fn_append ${wine_arch}_EXTRACFLAGS " $llvm_extra_cflags"
|
llvm_extra_cflags=""
|
||||||
CFLAGS="$llvm_extra_cflags $llvm_cflags"
|
|
||||||
fi }
|
fi }
|
||||||
|
fi }
|
||||||
|
if test -n "$llvm_extra_cflags"
|
||||||
|
then
|
||||||
|
target=$llvm_target
|
||||||
|
eval "${wine_arch}_DELAYLOADFLAG=\"-Wl,-delayload,\""
|
||||||
|
as_fn_append ${wine_arch}_EXTRACFLAGS " $llvm_extra_cflags"
|
||||||
|
as_fn_append ${wine_arch}_LDFLAGS " $llvm_extra_ldflags"
|
||||||
|
CFLAGS="$llvm_extra_cflags $llvm_cflags"
|
||||||
|
fi
|
||||||
eval "${wine_arch}_TARGET=\$target"
|
eval "${wine_arch}_TARGET=\$target"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
19
configure.ac
19
configure.ac
|
@ -893,14 +893,23 @@ do
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
llvm_extra_cflags="-target $llvm_target -fuse-ld=lld"
|
llvm_extra_cflags="-target $llvm_target -fuse-ld=lld"
|
||||||
|
llvm_extra_ldflags=""
|
||||||
case $llvm_target in
|
case $llvm_target in
|
||||||
*windows) llvm_cflags="-Wl,-subsystem:console -Wl,-WX" ;;
|
*windows) llvm_cflags="-Wl,-subsystem:console -Wl,-WX" ;;
|
||||||
esac
|
esac
|
||||||
WINE_TRY_PE_CFLAGS([$llvm_extra_cflags $llvm_cflags],
|
WINE_TRY_PE_CFLAGS([$llvm_extra_cflags $llvm_cflags --no-default-config],
|
||||||
[target=$llvm_target
|
[llvm_extra_cflags="$llvm_extra_cflags --no-default-config"
|
||||||
AS_VAR_SET([${wine_arch}_DELAYLOADFLAG],["-Wl,-delayload,"])
|
llvm_extra_ldflags="--no-default-config"],
|
||||||
AS_VAR_APPEND([${wine_arch}_EXTRACFLAGS],[" $llvm_extra_cflags"])
|
[WINE_TRY_PE_CFLAGS([$llvm_extra_cflags $llvm_cflags],[],
|
||||||
CFLAGS="$llvm_extra_cflags $llvm_cflags"])
|
[llvm_extra_cflags=""])])
|
||||||
|
if test -n "$llvm_extra_cflags"
|
||||||
|
then
|
||||||
|
target=$llvm_target
|
||||||
|
AS_VAR_SET([${wine_arch}_DELAYLOADFLAG],["-Wl,-delayload,"])
|
||||||
|
AS_VAR_APPEND([${wine_arch}_EXTRACFLAGS],[" $llvm_extra_cflags"])
|
||||||
|
AS_VAR_APPEND([${wine_arch}_LDFLAGS],[" $llvm_extra_ldflags"])
|
||||||
|
CFLAGS="$llvm_extra_cflags $llvm_cflags"
|
||||||
|
fi
|
||||||
AS_VAR_SET([${wine_arch}_TARGET],[$target])])
|
AS_VAR_SET([${wine_arch}_TARGET],[$target])])
|
||||||
AS_VAR_POPDEF([wine_cv_crosscc])
|
AS_VAR_POPDEF([wine_cv_crosscc])
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue