[Mesa-dev] [RFC libdrm 0/2] Replace the build system with meson
Chad Versace
chadversary at chromium.org
Fri Mar 24 20:44:13 UTC 2017
On Tue 21 Mar 2017, Matt Turner wrote:
> On Mon, Mar 20, 2017 at 12:39 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> > On 20 March 2017 at 18:30, Matt Turner <mattst88 at gmail.com> wrote:
> >> On Mon, Mar 20, 2017 at 6:55 AM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> >>> These projects have been getting closer to upstream and "forcing" the
> >>> extra obstacle is effectively giving them the middle finger.
> >>
> >> No. Requiring us to compile with a 10 year old GCC is giving a middle finger.
> >>
> > Can we stop with the GCC thing ? Can we point to a place where we want
> > to use feature A introduced with GCC B and we don't ?
>
> Are you freaking serious?!
>
> This happens *all* the time. It happened like two days ago with commit
> 28b134c75c1fa3b2aaa00dc168f0eca35ccd346d. I'm sure it probably
> happened at least once in the previous month, and every month before
> that.
More examples:
- Jason and I wanted to use C11 generic expressions (that's what the
C11 spec calls them) in anvil, but old GCC => !C11.
- I *still* want to use _Generic.
- If we could use C11, then we could stop using the
include/c11/thread.h wrapper for the C11 thread features. We could use,
you know, *real* C11 threads instead of faking it.
- I want to do this:
#define let __auto_type
But __auto_type requires GCC 4.9
<https://gcc.gnu.org/gcc-4.9/changes.html> or a comparably dated clang.
- I want to use GCC's builtin overflow arithmetic functions
<https://gcc.gnu.org/onlinedocs/gcc/Integer-Overflow-Builtins.html> (such as
__builtin_mul_overflow(), __builtin_add_overflow) where we currently do overflow checking by hand.
The builtin functions are more secure (no chance of stupid mistakes) and
faster (they simply do the arithmetic op then test the overflow flag in the
CPU's status register).
- I tend to be guilty occasionally breaking the build in
anvil code, due to old GCC. I think it happened again again this week:
freenode.#dri-devel.log-2017-03-16 11:07:12 | imirkin_ | vulkan/anv_device.c:697:4: error: initializer element is not constant
freenode.#dri-devel.log-2017-03-16 11:07:12 | imirkin_ | .minImageTransferGranularity = (VkExtent3D) { 1, 1, 1 },
freenode.#dri-devel.log-2017-03-16 11:07:23 | imirkin_ | anyone seen this? i'm on HEAD
freenode.#dri-devel.log-2017-03-16 11:13:50 | vsyrjala | yep. gcc-4.9 strikes again?
freenode.#dri-devel.log-2017-03-16 11:14:54 | imirkin_ | i'm definitely using gcc-4.9
freenode.#dri-devel.log-2017-03-16 11:15:16 | vsyrjala | that '(VkExtent3D)' looks very much pointless there
freenode.#dri-devel.log-2017-03-16 11:15:56 | imirkin_ | 4.9.4 as it happens, which is the "stable" gcc on gentoo
freenode.#dri-devel.log:2017-03-16 11:18:04 | vsyrjala | looks like chadv broke it
More information about the dri-devel
mailing list