Index | Thread | Search

From:
Antoine Jacoutot <ajacoutot@bsdfrog.org>
Subject:
Re: little house of cyrus-sasl2 horrors
To:
ports@openbsd.org
Date:
Mon, 17 Nov 2025 15:20:43 +0100

Download raw body.

Thread
On Mon, Nov 17, 2025 at 03:17:44PM +0100, Claudio Jeker wrote:
> cyrus-sasl2 trips over C23 because its md5 code still defaults to no
> prototypes because this feature is way to modern for such a critical
> piece of software.
> 
> In C23 a prototype of static void MD5_memcpy () is equal to
> static void MD5_memcpy (void) which is not what we want.

OK.

> -- 
> :wq Claudio
> 
> Index: patches/patch-include_makemd5_c
> ===================================================================
> RCS file: patches/patch-include_makemd5_c
> diff -N patches/patch-include_makemd5_c
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-include_makemd5_c	17 Nov 2025 14:08:08 -0000
> @@ -0,0 +1,19 @@
> +Enable PROTOTYPES by default, even base-gcc handles this modern feature.
> +
> +Index: include/makemd5.c
> +--- include/makemd5.c.orig
> ++++ include/makemd5.c
> +@@ -155,11 +155,11 @@ static int print_pre(FILE *f)
> + 	  "\n"
> + 	  "/* PROTOTYPES should be set to one if and only if the compiler supports\n"
> + 	  "  function argument prototyping.\n"
> +-	  "The following makes PROTOTYPES default to 0 if it has not already\n"
> ++	  "The following makes PROTOTYPES default to 1 if it has not already\n"
> + 	  "  been defined with C compiler flags.\n"
> + 	  " */\n"
> + 	  "#ifndef PROTOTYPES\n"
> +-	  "#define PROTOTYPES 0\n"
> ++	  "#define PROTOTYPES 1\n"
> + 	  "#endif\n"
> + 	  "\n"
> + 	  "/* POINTER defines a generic pointer type */\n"
> 

-- 
Antoine