Some distros arbitrary flags into clang config files without guarding it for applicable targets, which breaks cross compilation.
From: Jacek Caban jacek@codeweavers.com
--- aclocal.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/aclocal.m4 b/aclocal.m4 index 11d7e3a3bef..5f1e7bbdbf3 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -218,7 +218,7 @@ int __cdecl mainCRTStartup(void) { return 0; }]])], [AS_VAR_SET(ac_var,yes)], [AS_VAR_SET(ac_var,no)]) CFLAGS=$ac_wine_try_cflags_saved ac_exeext=$ac_wine_try_cflags_saved_exeext]) -AS_VAR_IF([ac_var],[yes],[m4_default([$2], [AS_VAR_APPEND([${wine_arch}_EXTRACFLAGS],[" $1"])], [$3])])dnl +AS_VAR_IF([ac_var],[yes],[m4_default([$2], [AS_VAR_APPEND([${wine_arch}_EXTRACFLAGS],[" $1"])])], [$3])dnl AS_VAR_POPDEF([ac_var]) }])
dnl **** Check whether the given MinGW header is available ****
From: Jacek Caban jacek@codeweavers.com
Some distros arbitrary flags into clang config files without guarding it for applicable targets, which breaks cross compilation. --- configure.ac | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/configure.ac b/configure.ac index 8d92e4c8ab2..074086c586b 100644 --- a/configure.ac +++ b/configure.ac @@ -893,14 +893,23 @@ do esac fi llvm_extra_cflags="-target $llvm_target -fuse-ld=lld" + llvm_extra_ldflags="" case $llvm_target in *windows) llvm_cflags="-Wl,-subsystem:console -Wl,-WX" ;; esac - WINE_TRY_PE_CFLAGS([$llvm_extra_cflags $llvm_cflags], - [target=$llvm_target - AS_VAR_SET([${wine_arch}_DELAYLOADFLAG],["-Wl,-delayload,"]) - AS_VAR_APPEND([${wine_arch}_EXTRACFLAGS],[" $llvm_extra_cflags"]) - CFLAGS="$llvm_extra_cflags $llvm_cflags"]) + WINE_TRY_PE_CFLAGS([$llvm_extra_cflags $llvm_cflags --no-default-config], + [llvm_extra_cflags="$llvm_extra_cflags --no-default-config" + llvm_extra_ldflags="--no-default-config"], + [WINE_TRY_PE_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_POPDEF([wine_cv_crosscc])
From: Jacek Caban jacek@codeweavers.com
--- tools/winegcc/winegcc.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c index dc085a2ed0f..2ec6863fc25 100644 --- a/tools/winegcc/winegcc.c +++ b/tools/winegcc/winegcc.c @@ -1876,6 +1876,10 @@ int main(int argc, char **argv) opts.lib_suffix = option_arg; raw_compiler_arg = raw_linker_arg = 0; } + else if (is_option( &opts, i, "--no-default-config", &option_arg )) + { + raw_compiler_arg = raw_linker_arg = 1; + } break; }