[Mesa-dev] [PATCH 1/3] util: Fix SHA1 implementation on big endian

Emil Velikov emil.l.velikov at gmail.com
Fri Nov 24 13:32:20 UTC 2017


On 24 November 2017 at 10:25, Eric Engestrom <eric.engestrom at imgtec.com> wrote:
> On Thursday, 2017-11-23 11:08:04 -0800, Matt Turner wrote:
>> The code defines a macro blk0(i) based on the preprocessor condition
>> BYTE_ORDER == LITTLE_ENDIAN. If true, blk0(i) is defined as a byte swap
>> operation. Unfortunately, if the preprocessor macros used in the test
>> are no defined, then the comparison becomes 0 == 0 and it evaluates as
>> true.
>> ---
>>  src/util/sha1/sha1.c | 9 +++++++++
>>  1 file changed, 9 insertions(+)
>>
>> diff --git a/src/util/sha1/sha1.c b/src/util/sha1/sha1.c
>> index ef59ea1dfc..2c629520c3 100644
>> --- a/src/util/sha1/sha1.c
>> +++ b/src/util/sha1/sha1.c
>> @@ -16,8 +16,17 @@
>>
>>  #include <stdint.h>
>>  #include <string.h>
>> +#include "u_endian.h"
>
> If you're including this header, why not use
> `#ifdef PIPE_ARCH_LITTLE_ENDIAN` instead of
> `#if BYTE_ORDER == LITTLE_ENDIAN`?
>
> `#error` becomes unnecessary
>
I won't bother with that - we do want to address all the cases where
undefined macro is used in #if statement.
This is handled by -Wundef which seemingly is not part of Wall and we
don't use - patch incoming in a second.

We want to make it a Werror=undef after we fix the ~60 issues. More
than half of those are coming from gtest :-\

Thanks for fixing these Matt. As-is the series is
Reviewed-by: Emil Velikov <emil.velikov at collabora.com>

-Emil


More information about the mesa-dev mailing list