State of Clang in MSYS2

Hello,

I’m involved with maintenance of Clang and related LLVM packages for MSYS2.

It was based on Martell’s patches (with his permission for MSYS2) from his git repository and MSYS2 own fixes so number of patches might be overwhelming: https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-clang

Maybe some of these patches could make it’s way to the upstream.

Tools state at version 3.9.1 :

Clang: mostly works (there are issues found)

LLMV: mostly works (not tested well enough)

LLD: creates broken executable

LLDB: runs but not further tested since lldb-server is not build-able for mingw-w64

libc++: need further testing
libc++abi: need further testing

compiler-rt: need further testing

Open clang issues (at MSYS2):
https://github.com/Alexpux/MINGW-packages/issues/1677
https://github.com/Alexpux/MINGW-packages/issues/1678 (not that much Clang issue but rather mingw-64 with GCC)
https://github.com/Alexpux/MINGW-packages/issues/1834

Any help will be welcome.

make check seems to hang during LLVM tests but here is make check-clang:
Failing Tests (18):
Clang :: Driver/mingw.cpp
Clang :: Modules/dependency-dump.m
Clang :: Modules/dependency-gen.modulemap
Clang :: PCH/chain-categories.m
Clang :: PCH/chain-categories2.m
Clang :: PCH/chain-class-extension.m
Clang :: PCH/chain-conversion-lookup.cpp
Clang :: PCH/chain-cxx.cpp
Clang :: PCH/chain-default-argument-instantiation.cpp
Clang :: PCH/chain-empty-initial-namespace.cpp
Clang :: PCH/chain-friend-instantiation.cpp
Clang :: PCH/chain-implicit-definition.cpp
Clang :: PCH/chain-late-anonymous-namespace.cpp
Clang :: PCH/chain-openmp-threadprivate.cpp
Clang :: PCH/chain-pending-instantiations.cpp
Clang :: PCH/chain-staticvar-instantiation.cpp
Clang :: PCH/cxx-chain-function-template.cpp
Clang :: PCH/replaced-decl.m

Expected Passes : 9349
Expected Failures : 16
Unsupported Tests : 227
Unexpected Failures: 18

Full output is available here: https://gist.github.com/mati865/b4a2c96f82b22ac41eca32714092db1d

Is there any interest from You in providing at lest minimal support to it?

Cheers,

Mateusz Mikuła

I would volunteer to try to get these patches in, but I don’t have the bandwidth for it. I was hoping someone else would speak up, but I guess not. =/

I briefly looked over them and they seem to be just a huge pile of
different unrelated changes, e.g. there is lldb patch, patch for
libc++ to allow compilation with gcc, some reverts of reverts, some
backports and so on.

Will it be possible to clean them up, rebase to 4.0 and submit to
Phabricator? Ideally as "one patch per topic".

I’ve updated LLVM and Clang patches: https://github.com/mati865/MINGW-packages/tree/clang-svn/mingw-w64-clang-svn

LLVM patches start with 00xx and Clang patches start with 01xx.

First patch assigned to Reid: https://reviews.llvm.org/D29464

More patches will come soon

Patches are here: https://github.com/mati865/MINGW-packages/tree/clang-svn/mingw-w64-clang-svn

make check-clang:
Failing Tests (21):
Clang :: Driver/mingw.cpp

Clang :: Index/pr20320.cpp

Clang :: Modules/dependency-dump-dependent-module.m

Clang :: Modules/dependency-dump.m

Clang :: Modules/dependency-gen.modulemap

Clang :: PCH/chain-categories.m

Clang :: PCH/chain-categories2.m

Clang :: PCH/chain-class-extension.m

Clang :: PCH/chain-conversion-lookup.cpp

Clang :: PCH/chain-cxx.cpp

Clang :: PCH/chain-default-argument-instantiation.cpp

Clang :: PCH/chain-empty-initial-namespace.cpp

Clang :: PCH/chain-friend-instantiation.cpp

Clang :: PCH/chain-implicit-definition.cpp

Clang :: PCH/chain-late-anonymous-namespace.cpp

Clang :: PCH/chain-openmp-threadprivate.cpp

Clang :: PCH/chain-pending-instantiations.cpp

Clang :: PCH/chain-staticvar-instantiation.cpp

Clang :: PCH/cxx-chain-function-template.cpp

Clang :: PCH/debug-info-pch-path.c

Clang :: PCH/replaced-decl.m

Expected Passes : 10094

Expected Failures : 16

Unsupported Tests : 250

Unexpected Failures: 21

https://gist.github.com/mati865/3a350709f853e4a8cb1fc40980a4f5b0

I don’t have rights to commit, should I ask someone to do it with: , , ?

Also while browsing bugzilla I came into . I have developed workaround for MinGW It tricks libstc++ to think Clang supports _float128 but<type_traits> included

Just mention it in the review when it is accepter and the reviewer usually will commit it for you right after.

I committed the two obvious ones. D29952 contains some discussion, so
I left it as-is.

Thank you Anton.

I was waiting for Reid response about D29952 so it's fine.

W dniu 06.03.2017 o 10:51, Anton Korobeynikov pisze:

Looks like there was issue with https://reviews.llvm.org/D29772 and
cfe/trunk/ prefix is missing.

Should I recreate patch and update this diff?

W dniu 06.03.2017 o 10:51, Anton Korobeynikov pisze: