[Mesa-dev] [PATCH] configure.ac: always define __STDC_CONSTANT_MACROS

Jose Fonseca jfonseca at vmware.com
Tue Jan 12 00:22:48 PST 2016


Anyway, my point is that this is not a precendent.  No idea why this 
caused problems for Oded now.  LLVM headers already requires 
__STDC_CONSTANT_MACROS being defined.

Jose


And by your argument, it's pointless to use uint32_t because

On 12/01/16 08:15, Jose Fonseca wrote:
> It's not the first time we use UINT64_C neither.
>
> Jose
>
> On 12/01/16 08:05, Ilia Mirkin wrote:
>> I think the number of things that would break if uint64_t and unsigned
>> long long were not, effectively, the same type, would be... huge. ULL
>> is a lot easier to read too, and has plenty of usage in mesa:
>>
>> $ git grep -P -i '\dULL' | wc -l
>> 302
>>
>> An argument could be made that ULL could be 128-bit on some very
>> hypothetical configuration, but even in that case, it'd still work out
>> just fine. The key is that the constant is big enough to fit the
>> value, it's not a problem if it's bigger.
>>
>> On Tue, Jan 12, 2016 at 2:55 AM, Jose Fonseca <jfonseca at vmware.com>
>> wrote:
>>> The type of the resulting variable is `uint64_t` not `unsigned long
>>> long`.
>>>
>>> To use ULL on constants one should also use `unsigned long long`
>>> everywhere
>>> else in Mesa.  Mixing uint64_t and unsigned long long seems sloppy to
>>> me, as
>>> these types could potentially be different things on different platform.
>>>
>>> We could use (uin64t_t)1, too, but it doesn't take any less typing than
>>> UINT64_C(1).
>>>
>>> Jose
>>>
>>>
>>> On 11/01/16 21:09, Ilia Mirkin wrote:
>>>>
>>>> I'm not strictly opposed to passing this in, but... why not just fix
>>>> it by removing that imho weird macro and instead use ULL suffix on
>>>> literals?
>>>>
>>>> On Mon, Jan 11, 2016 at 4:07 PM, Oded Gabbay <oded.gabbay at gmail.com>
>>>> wrote:
>>>>>
>>>>> The ISO C99 standard (7.18.4) specifies that C++
>>>>> implementations should define UINT64_C only when
>>>>> __STDC_CONSTANT_MACROS is defined.
>>>>>
>>>>> ecause we now use UINT64_C in our cpp files (since commit
>>>>> 208bfc493debe0344d0b9cb93975981f14412628), we need to add this define.
>>>>>
>>>>> This also solves compilation errors with GCC 4.8.x on ppc64le
>>>>> machines.
>>>>>
>>>>> Signed-off-by: Oded Gabbay <oded.gabbay at gmail.com>
>>>>> ---
>>>>>    configure.ac | 2 +-
>>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/configure.ac b/configure.ac
>>>>> index 9c3d1a3..8d19dab 100644
>>>>> --- a/configure.ac
>>>>> +++ b/configure.ac
>>>>> @@ -245,7 +245,7 @@ _SAVE_LDFLAGS="$LDFLAGS"
>>>>>    _SAVE_CPPFLAGS="$CPPFLAGS"
>>>>>
>>>>>    dnl Compiler macros
>>>>> -DEFINES="-D__STDC_LIMIT_MACROS"
>>>>> +DEFINES="-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS"
>>>>>    AC_SUBST([DEFINES])
>>>>>    case "$host_os" in
>>>>>    linux*|*-gnu*|gnu*)
>>>>> --
>>>>> 2.5.0
>>>>>
>>>>> _______________________________________________
>>>>> mesa-dev mailing list
>>>>> mesa-dev at lists.freedesktop.org
>>>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>>>
>>>> _______________________________________________
>>>> mesa-dev mailing list
>>>> mesa-dev at lists.freedesktop.org
>>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>>>
>>>
>



More information about the mesa-dev mailing list