| Summary: | Fails to build pixman-0.34.0 with clang 5.x or later | ||
|---|---|---|---|
| Product: | pixman | Reporter: | Vladimir <civil.over> |
| Component: | pixman | Assignee: | Matt Turner <mattst88> |
| Status: | RESOLVED MOVED | QA Contact: | |
| Severity: | normal | ||
| Priority: | medium | ||
| Version: | 0.34.x | ||
| Hardware: | Other | ||
| OS: | All | ||
| Whiteboard: | |||
| i915 platform: | i915 features: | ||
| Attachments: |
pixman-clang.patch
clang.patch |
||
|
Description
Vladimir
2018-01-31 14:47:08 UTC
Created attachment 137100 [details] [review] clang.patch Apparently gcc doesn't support __has_builtin macro. So correct patch will be like new attachment I can confirm this patch works. It would be nice to get it committed and into a 0.34.1 release, since it blocks building on macOS. This affects Xcode 9.3 so the pixman formula in Homebrew is now broken on macOS 10.13, which is what the vast majority of users use now. As Philip Chimento said, a release with the patch applied would be appreciated. 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. Failing tests are another bug. As you might notice my patch is only replacing __builtin_shuffle with __builtin_shufflevector for a helper function in test. Tests for example will pass allright with CFLAGS="-O1", but not with CFLAGS="-O2" Also the same tests will fail under the same conditions if you just disable vector ops for clang in util-prng.c, so again, not related to the patch. -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pixman/pixman/issues/21. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.