r253898 - Driver: fallback to the location of clang if no sysroot,

Martell Malone via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 24 02:43:01 PST 2015


>
> This breaks mingw support on openSUSE :

My first question is why on SUSE is clang installed in /opt while mingw-w64
in /usr?

x86_64-w64-mingw32-gcc is in $PATH, and this used to work fine before
> this commit.

It doesn't look for gcc on linux that is a windows host only thing.
It didn't do that before this commit also.
SUSE was just lucky because we hard coded /usr as the base path.

I don't like the idea of hard coding for just a single distro so I think
We could optionally do some search for "x86_64-w64-mingw32-gcc" on non
windows hosts
Just like we do for "gcc" on windows hosts.
This should fix SUSE while maintaining the new more reasonable search
pattern.

If Yaron approves this idea I will commit it with a test case for SUSE so
we don't break it again :)
Yaron your thoughts?

Kind Regards
Martell

On Tue, Nov 24, 2015 at 12:02 AM, Ismail Donmez <ismail at i10z.com> wrote:

> Hi,
>
> On Mon, Nov 23, 2015 at 8:59 PM, Martell Malone via cfe-commits
> <cfe-commits at lists.llvm.org> wrote:
> > Author: martell
> > Date: Mon Nov 23 12:59:48 2015
> > New Revision: 253898
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=253898&view=rev
> > Log:
> > Driver: fallback to the location of clang if no sysroot,
> >
> > hard coding /usr makes little sense for mingw-w64.
> > If we have portable toolchains having /usr breaks that.
> > If the clang we use is in /usr/bin or /usr/sbin etc this will
> > still detect as though it was hard coded to /usr
> >
> > This makes the most sense going forward for mingw-w64 toolchains
> > on both linux and mac
>
> This breaks mingw support on openSUSE :
>
> λ cat hello.c
> #include <stdlib.h>
>
> int main()
> {
>     return 0;
> }
>
> λ clang -v -target x86_64-w64-mingw32 hello.c
> clang version 3.8.0 (trunk 253903)
> Target: x86_64-w64-windows-gnu
> Thread model: posix
> InstalledDir: /opt/clang/bin
>  "/opt/clang/bin/clang-3.8" -cc1 -triple x86_64-w64-windows-gnu
> -emit-obj -mrelax-all -disable-free -main-file-name hello.c
> -mrelocation-model pic -pic-level 2 -mthread-model posix -fmath-errno
> -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64
> -momit-leaf-frame-pointer -v -dwarf-column-info -resource-dir
> /opt/clang/bin/../lib64/clang/3.8.0 -internal-isystem
> /opt/clang/bin/../lib64/clang/3.8.0/include -internal-isystem include
> -internal-isystem /opt/clang/x86_64-w64-mingw32/sys-root/mingw/include
> -internal-isystem include-fixed -internal-isystem
> /opt/clang/x86_64-w64-mingw32/include -internal-isystem
> /opt/clang/include -fdebug-compilation-dir /home/ismail -ferror-limit
> 19 -fmessage-length 127 -fno-use-cxa-atexit -fobjc-runtime=gcc
> -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/hello-f129aa.o
> -x c hello.c
> clang -cc1 version 3.8.0 based upon LLVM 3.8.0svn default target
> x86_64-suse-linux
> ignoring nonexistent directory "include"
> ignoring nonexistent directory
> "/opt/clang/x86_64-w64-mingw32/sys-root/mingw/include"
> ignoring nonexistent directory "include-fixed"
> ignoring nonexistent directory "/opt/clang/x86_64-w64-mingw32/include"
> #include "..." search starts here:
> #include <...> search starts here:
>  /opt/clang/bin/../lib64/clang/3.8.0/include
>  /opt/clang/include
> End of search list.
> hello.c:1:10: fatal error: 'stdlib.h' file not found
> #include <stdlib.h>
>          ^
> 1 error generated.
>
> x86_64-w64-mingw32-gcc is in $PATH, and this used to work fine before
> this commit.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20151124/c6e15445/attachment.html>


More information about the cfe-commits mailing list