Re: git: 267f8c1f4b09 - main - crypto/openssl: make vendor imports easier/less error prone

From: Wolfram Schneider <wosch_at_freebsd.org>
Date: Mon, 25 Aug 2025 08:31:02 UTC
On Fri, 22 Aug 2025 at 02:34, Enji Cooper (yaneurabeya)
<yaneurabeya@gmail.com> wrote:
>
>
> > On Aug 21, 2025, at 2:07 PM, Jessica Clarke <jrtc27@freebsd.org> wrote:
> >
> > On 21 Aug 2025, at 18:05, Enji Cooper <ngie@freebsd.org> wrote:
> >>
> >> The branch main has been updated by ngie:
> >>
> >> URL: https://cgit.FreeBSD.org/src/commit/?id=267f8c1f4b09431b335d5f48d84586047471f978
> >>
> >> commit 267f8c1f4b09431b335d5f48d84586047471f978
> >> Author:     Enji Cooper <ngie@FreeBSD.org>
> >> AuthorDate: 2025-08-01 04:03:33 +0000
> >> Commit:     Enji Cooper <ngie@FreeBSD.org>
> >> CommitDate: 2025-08-21 17:02:46 +0000
> >>
> >>   crypto/openssl: make vendor imports easier/less error prone
> >>
> >>   This change adds a custom BSD makefile containing multiple high-level PHONY
> >>   targets, similar to targets provided by the ports framework.
> >>
> >>   The Makefile does the following:
> >>   - Reruns Configure with a deterministic set of arguments to ensure that
> >>     all appropriate features have been enabled/disabled in OpenSSL.
> >>   - Preens the pkgconfig files to remove duplicate paths in their
> >>     `CFLAGS` and `includedir` variables.
> >>   - Rebuilds all ASM files to ensure that the content contained is fresh.
> >>   - Rebuilds all manpages to ensure that the content contained in the
> >>     manpages is fresh.
> >>
> >>   Some additional work needs to be done to make the manpage regeneration
> >>   "operation" reproducible (the date the manpages were generated is
> >>   embedded in the files).
> >>
> >>   All dynamic configuration previously captured in
> >>   `include/openssl/configuration.h` and `include/crypto/bn_conf.h` has been
> >>   moved to `freebsd/include/dynamic_freebsd_configuration.h` and
> >>   `freebsd/include/crypto/bn_conf.h`, respectively. This helps
> >>   ensure that future updates don't wipe out FreeBSD customizations to
> >>   these files, which tune behavior on a per-target architecture basis, e.g.,
> >>   ARM vs x86, 32-bit vs 64-bit, etc.
> >>
> >>   MFC after: 1 month
> >>   Differential Revision:  https://reviews.freebsd.org/D51663
> >
> > Something in this breaks building on macOS (where, as of recently, we
> > build libcrypto as a bootstrap library for use by the certctl bootstrap
> > tool):
> >
> > /Users/runner/work/freebsd-src/freebsd-src/crypto/openssl/crypto/bio/bio_sock2.c:64:9: error: call to undeclared function 'ktls_enable'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
> > ktls_enable(sock);
> > ^
> > /Users/runner/work/freebsd-src/freebsd-src/crypto/openssl/crypto/bio/bio_sock2.c:202:5: error: call to undeclared function 'ktls_enable'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
> > ktls_enable(sock);
> > ^
> > 2 errors generated.
> > --- bio_sock2.o ---
> > *** [bio_sock2.o] Error code 1
> >
> > Presumably you need a BOOTSTRAPPING check somewhere.
>
> It looks like the problem is MacOS doesn’t support KTLS and now KTLS has been fixed on FreeBSD.
>
> MK_OPENSSL_KTLS needs to be disabled when doing “make bootstrapping” on MacOS.

setting MK_OPENSSL_KTLS=no does not unbreak building on macOS. You
have to disable the ssl build at all with  MK_OPENSSL=no to get it
running again.

-Wolfram

-- 
Wolfram Schneider <wosch@FreeBSD.org> https://wolfram.schneider.org