Re: Build breakage with WITH_BEARSSL=1

From: Gordon Bergling <gbe_at_freebsd.org>
Date: Thu, 16 Feb 2023 07:57:38 UTC
Hi Warner,

On Wed, Feb 15, 2023 at 10:07:08AM -0700, Warner Losh wrote:
> On Sun, Feb 12, 2023, 3:18 PM Warner Losh <imp@bsdimp.com> wrote:
> > On Sun, Feb 12, 2023 at 3:54 AM Gordon Bergling <gbe@freebsd.org> wrote:
> >
> >> Hi,
> >>
> >> I am currently seeing a build breakage when building -CURRENT with
> >> WITH_BEARSSL=1.
> >>
> >> The error is the following
> >>
> >>   make[5]: "/boiler/nfs/src/lib/libsecureboot/local.trust.mk" line 109:
> >> warning: "cd /boiler/nfs/src/lib/libsecureboot && 'ls'   -1 *.pem t*.asc 2>
> >> /dev/null" returned non-zero status
> >>   /boiler/nfs/src/contrib/bearssl/src/rsa/rsa_i62_keygen.c:43:22: error:
> >> a function declaration without a prototype is deprecat  ed in all versions
> >> of C [-Werror,-Wstrict-prototypes]
> >>   br_rsa_i62_keygen_get()
> >>                        ^
> >>                         void
> >>   1 error generated.
> >>   --- rsa_i62_keygen.pico ---
> >>
> >>
> >> When disabling BEARSSL in the src.conf the build succeeds as usual.
> >>
> >> Has anyone also seen this build error. Sources are very recent and the
> >> src.conf is the following:
> >>
> >> WITH_EXTRA_TCP_STACKS=1
> >> #WITH_BEARSSL=1
> >> WITH_PIE=1
> >> WITH_RETPOLINE=1
> >> WITH_INIT_ALL_ZERO=1
> >> WITH_OPENSSL_KTLS=1
> >> WITHOUT_CLEAN=1
> >>
> >> Any help is very appreciated.
> >>
> >>
> > What does the following do for you? It's a cut and pasted patch, but it
> > should be clear enough what to do if the mailer mangles it.
> >
> > diff --git a/lib/libbearssl/Makefile.inc b/lib/libbearssl/Makefile.inc
> > index dd0e242c8ef0..2af4864d8441 100644
> > --- a/lib/libbearssl/Makefile.inc
> > +++ b/lib/libbearssl/Makefile.inc
> > @@ -4,4 +4,4 @@ BEARSSL?= ${SRCTOP}/contrib/bearssl
> >  BEARSSL_SRC= ${BEARSSL}/src
> >
> >  CFLAGS+= -I${BEARSSL}/inc
> > -
> > +CFLAGS+= ${NO_WDEPRECATED_NON_PROTOTYPE}
> >
> 
> I went ahead and committed this. Please let me know if the problem persists.

Sorry for the late reply. I just tried a fresh build and it still fails with

[..]/src/contrib/bearssl/src/rsa/rsa_i62_keygen.c:43:22: error: a function
declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
  br_rsa_i62_keygen_get()

Did you see any other possibilty to fix this?

--Gordon