I don't know what's different in your build, but reeling.netbsd.org shows all 
the builds are working. Are you cross building?

christos

> On Jan 25, 2024, at 3:20 AM, Adam <a...@netbsd.org> wrote:
> 
>> Today, the build fails while making tools:
>> 
>> 
>> --- md2.lo ---
>> /dist/src/tools/compat/../../lib/libc/hash/md2/md2.c:130:4: error: call to 
>> undeclared function 'MD2Transform'; ISO C99 and later do not support 
>> implicit function declarations [-Wimplicit-function-declaration]
>>                       MD2Transform(context); /* resets i */
>>                       ^
>> /dist/src/tools/compat/../../lib/libc/hash/md2/md2.c:163:1: error: 
>> conflicting types for 'MD2Transform'
>> MD2Transform(MD2_CTX *context)
>> ^
>> /dist/src/tools/compat/../../lib/libc/hash/md2/md2.c:130:4: note: previous 
>> implicit declaration is here
>>                       MD2Transform(context); /* resets i */
>>                       ^
>> 2 errors generated.
> 
> Reverting lib/libc/hash/md2/md2.c to v1.7 fixes the build.
> 
> As I understand, MD2Transform() is used (in MD2Update()) before it is 
> defined, so to fix it properly I suggest the following patch.
> 
> Commit?
> 
> Kind regards,
> Adam
> 
> 
> 
> diff -u -r1.8 md2.c
> --- md2.c 20 Jan 2024 14:52:47 -0000 1.8
> +++ md2.c 25 Jan 2024 08:17:43 -0000
> @@ -113,6 +113,30 @@
>  memset(&context->X[0], 0, sizeof(context->X));
> }
>  +/*
> + * XXX This should not be visible, but due to an accident, it is
> + * XXX so it must remain so.
> + */
> +/*static*/ void
> +MD2Transform(MD2_CTX *context)
> +{
> + uint32_t l, j, k, t;
> +
> + /* set block "3" and update "checksum" */
> + for (l = context->C[15], j = 0; j < 16; j++) {
> + context->X[32 + j] = context->X[j] ^ context->X[16 + j];
> + l = context->C[j] ^= S[context->X[16 + j] ^ l];
> + }
> +
> + /* mangle input block */
> + for (t = j = 0; j < 18; t = (t + j) % 256, j++)
> + for (k = 0; k < 48; k++)
> + t = context->X[k] = (context->X[k] ^ S[t]);
> +
> + /* reset input pointer */
> + context->i = 16;
> +}
> +
> void
> MD2Update(MD2_CTX *context, const unsigned char *input, unsigned int inputLen)
> {
> @@ -155,28 +179,4 @@
>  MD2Init(context);
> }
>  -/*
> - * XXX This should not be visible, but due to an accident, it is
> - * XXX so it must remain so.
> - */
> -/*static*/ void
> -MD2Transform(MD2_CTX *context)
> -{
> - uint32_t l, j, k, t;
> -
> - /* set block "3" and update "checksum" */
> - for (l = context->C[15], j = 0; j < 16; j++) {
> - context->X[32 + j] = context->X[j] ^ context->X[16 + j];
> - l = context->C[j] ^= S[context->X[16 + j] ^ l];
> - }
> -
> - /* mangle input block */
> - for (t = j = 0; j < 18; t = (t + j) % 256, j++)
> - for (k = 0; k < 48; k++)
> - t = context->X[k] = (context->X[k] ^ S[t]);
> -
> - /* reset input pointer */
> - context->i = 16;
> -}
> -
> #endif /* !HAVE_MD2_H */

Reply via email to