Installing mingw-runtime with: USE="libraries idl tools" crossdev --ex-only --ex-pkg cross-i686-w64-mingw32/mingw64-runtime -t i686-w64-mingw32 installs the wrong library location: ls /usr/i686-w64-mingw32/usr/lib64/ libmangle.a libpseh.a libpthread.a libpthread.dll.a libwinpthread.a libwinpthread.dll.a libwinpthread.la These should be inside /usr/i686-w64-mingw32/usr/lib/ The same happens for x86_64-w64-mingw32 as well.
Please post your 'emerge --info' and 'i686-w64-mingw32 --info'. while lib64 is wrong for i686 target i'm not so sure about x86_64.
(In reply to Sergei Trofimovich from comment #1) > Please post your 'emerge --info' and 'i686-w64-mingw32 --info'. > > while lib64 is wrong for i686 target i'm not so sure about x86_64. Why are all the other libs under lib then? https://bpaste.net/show/632ccd0318b8
This also leads to a linker error[1] when compiling x86-64-win64-mingw64-gcc with pthreads. Symlinking everything from /usr/i686-w64-mingw32/usr/lib64/ to /usr/i686-w64-mingw32/usr/lib/ worked around the issue and let me compile gcc just fine. [1] /usr/libexec/gcc/x86_64-w64-mingw32/ld: cannot find -lpthread
It might also be worth mentioning that this behavior is new to mingw64-runtime-5.0.3-r2 while 5.0.3-r1 installs the libraries listed in the original post into /usr/x86_64-w64-mingw32/usr/lib and all the other libraries into /usr/x86_64-w64-mingw32/lib.
I still don't see output of 'emerge --info' and 'i686-w64-mingw32 --info'. Did I miss it? Topic seems to be incorrect as *-w64-* targets use mingw64-runtime, not mingw-runtime.
Created attachment 530816 [details] emerge --info Although I am not the original poster, I hereby provide the requested information. Additionally, I am not experiencing any problems with the i686 installation. All libraries are installed into /usr/i686-w64-mingw32/usr/lib/ as they should. It is only the x86_64 toolchain that exhibits the reported linker error because of the pthread libraries being in lib64.
Created attachment 530818 [details] emerge-i686-w64-mingw32 --info
Created attachment 530820 [details] emerge-x86_64-w64-mingw32 --info Although I do not see where this would alter the log, this one is taken while using the working mingw64-runtime-5.0.3-r1 instead of the failing 5.0.3-r2.
I'm also hitting this issue when compiling cross-x86_64-w64-mingw32/gcc-7.3.0-r3 with EXTRA_ECONF="--enable-threads=posix" and cross-x86_64-w64-mingw32/mingw64-runtime-5.0.4.
Created attachment 544244 [details] mingw64-runtime-5.0.4-r1.ebuild This ebuild sets libdir to lib instead of lib64 as a workaround for x86_64-w64-mingw32. This leads to all the libraries being installed in lib thus allowing the linker to pick them up and, in consequence, lets gcc compile fine with pthreads support without the need for manual symlinking. Although I think making the linker search the lib64 dir in addition to lib would be a better solution, that might need a modification of the toolchain.eclass and would be better done by someone familiar with it.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1fae5b17fa009c7bfb405dd186566c48c42c5390 commit 1fae5b17fa009c7bfb405dd186566c48c42c5390 Author: James Le Cuirot <chewi@gentoo.org> AuthorDate: 2019-09-16 20:49:42 +0000 Commit: Sergei Trofimovich <slyfox@gentoo.org> CommitDate: 2019-09-16 21:18:52 +0000 dev-util/mingw64-runtime: Don't install USE=libraries libs to lib64 Closes: https://bugs.gentoo.org/653246 Package-Manager: Portage-2.3.76, Repoman-2.3.17 Signed-off-by: James Le Cuirot <chewi@gentoo.org> Closes: https://github.com/gentoo/gentoo/pull/12944 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> ...ingw64-runtime-6.0.0-r2.ebuild => mingw64-runtime-6.0.0-r3.ebuild} | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)