Summary: | x11-libs/pixman: fails to build with >=sys-devel/clang-5 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Vladimir Smirnov (RETIRED) <civil> |
Component: | Current packages | Assignee: | Gentoo X packagers <x11> |
Status: | RESOLVED FIXED | ||
Severity: | blocker | CC: | herrtimson, llvm |
Priority: | Highest | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | https://bugs.freedesktop.org/show_bug.cgi?id=104886 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 408963 | ||
Attachments: |
pixman-0.34.0-clang5.patch
emerge --info build.log |
Description
Vladimir Smirnov (RETIRED)
2018-02-01 20:56:30 UTC
Created attachment 517500 [details]
emerge --info
pximan-0.34.0-clang5.patch works on both gcc and clang5. I can commit the patch by myself, but as I'm not part of X11 I'd like to check up with somebody before doing anything. Created attachment 517504 [details]
build.log
We usually apply patches only after upstream approves them, unless they are for Gentoo specific things. And maybe it is a bug in clang, that it defines HAVE_GCC_VECTOR_EXTENSIONS while supporting only a subset of what is listed here: https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html @x11: please be lenient here, pixman cannot be installed on macOS without a rememedy/patch. You can consider Gentoo Prefix a Gentoo-specific thing, if that makes your decision process easier. If it helps, we can apply conditionally on tc-is-clang or a CHOST check. I could also live with a blunt hack like this: --- a/pixman-0.34.0.ebuild +++ b/pixman-0.34.0.ebuild @@ -3,7 +3,7 @@ EAPI=5 XORG_MULTILIB=yes -inherit xorg-2 +inherit xorg-2 flag-o-matic toolchain-funcs EGIT_REPO_URI="https://anongit.freedesktop.org/git/pixman.git" DESCRIPTION="Low-level pixel manipulation routines" @@ -15,6 +15,8 @@ IUSE="altivec iwmmxt loongson2f cpu_flags_x86_mmxext neon cpu_flags_x86_sse2 cpu_flags_x86_ssse3" src_configure() { + # workaround bug #646360 + tc-is-clang && append-cppflags -Dvector_size=fooblahblah XORG_CONFIGURE_OPTIONS=( $(use_enable cpu_flags_x86_mmxext mmx) $(use_enable cpu_flags_x86_sse2 sse2) Thanks. Sorry for not having a look sooner. The patch looks fine to me. I'll give it a commit message and send it upstream. I used to work on pixman, so I can actually push it and make a new release. I tested clang 5 and 6, and while everything compiles, it fails the test suite: FAIL: combiner-test FAIL: gradient-crash-test FAIL: stress-test I don't feel good about making a release claiming to fix clang support if these tests fail. This is now fixed upstream by https://gitlab.freedesktop.org/pixman/pixman/commit/bd2b49185b28c5024597a5e530af9fc25de3193a We're investigating the failures when built with clang in https://gitlab.freedesktop.org/pixman/pixman/issues/22 The patch is included in the 0.36.0 pixman release. |