Summary: | dev-util/mingw-runtime incorrectly installs pthreads to /usr/i686-w64-mingw32/usr/lib64 instead of /usr/i686-w64-mingw32/usr/lib/ | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Luke A. Guest <laguest> |
Component: | Current packages | Assignee: | Gentoo Toolchain Maintainers <toolchain> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | chewi, chn2guevara, cwidmer, dennis.lissov, nrndda |
Priority: | Normal | Keywords: | PullRequest |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://github.com/gentoo/gentoo/pull/12944 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
emerge --info
emerge-i686-w64-mingw32 --info emerge-x86_64-w64-mingw32 --info mingw64-runtime-5.0.4-r1.ebuild |
Description
Luke A. Guest
2018-04-15 16:31:21 UTC
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(-) |