Re: OpenSSL 3.0 for 14.0-RELEASE: issues with 1.x/3.x symbol clashing, ports linking against base OpenSSL, ports that don't compile/link against OpenSSL 3, etc
Date: Mon, 29 May 2023 19:53:44 UTC
Hi Kyle, everyone, Thanks for the hints! Unfortunately I am still not able to make your solution work. With "SUBDIR_DEPEND_modules= libcrypto" (no "S") and "SUBDIR_PARALLEL=" the build fails with: "make[4]: make[4]: don't know how to make all_subdir_secure/lib/libcrypto/libcrypto. Stop" I'm looking at other places in the source tree to try to reproduce the behaviour we want. In the meantime what I did is to remove LIBADD=crypto in modules/Makefile.inc, but I am not sure yet if this is going to work or not. Cheers, -- Pierre On Thu, May 11, 2023 at 9:45 AM Kyle Evans <kevans@freebsd.org> wrote: > On Thu, May 11, 2023 at 9:54 AM Enji Cooper <yaneurabeya@gmail.com> wrote: > > > > > > > On May 11, 2023, at 00:23, Antoine Brodin <antoine@freebsd.org> wrote: > > > > > > On Thu, May 11, 2023 at 6:31 AM Pierre Pronchery > > > <pierre@freebsdfoundation.org> wrote: > > >> > > >> Hi everyone, > > >> > > >> It's been a long and tough fight, but I finally managed to complete a > > >> `make buildworld` on amd64 with the latest state of my work on OpenSSL > > >> 3; see https://github.com/freebsd/freebsd-src/pull/740 for a first > draft > > >> of a pull-request via GitHub. > > >> > > >> I will probably not be able to work on this again until the DevSummit > at > > >> BSDCan, so feel free to take it from there until then. > > >> > > >> HTH! > > >> -- khorben > > > > > > Thanks, I have this error during buildworld: > > > > > > ===> secure/lib/libcrypto/modules/fips (all) > > > make[6]: > /usr/obj/poudriere/data/src-openssl3/amd64.amd64/secure/lib/libcrypto/modules/fips/.depend, > > > 1: ignoring stale .depend for > > > > /usr/obj/poudriere/data/src-openssl3/amd64.amd64/tmp/usr/lib/libcrypto.a > > > building shared library fips.so > > > cc -target x86_64-unknown-freebsd14.0 > > > --sysroot=/usr/obj/poudriere/data/src-openssl3/amd64.amd64/tmp > > > -B/usr/obj/poudriere/data/src-openssl3/amd64.amd64/tmp/usr/bin > > > -Wl,-zrelro -fstack-protector-strong -shared -Wl,-x > > > -Wl,--fatal-warnings -Wl,--warn-shared-textrel -o fips.so.full > > > -Wl,-soname,fips.so fips_entry.pico fipsprov.pico self_test.pico > > > self_test_kats.pico -lcrypto > > > ld: error: unable to find library -lcrypto > > > cc: error: linker command failed with exit code 1 (use -v to see > invocation) > > > *** Error code 1 > > > > Good find! > > > > The modules directory will likely need to be built in a later stage of > world (after libcrypto has been installed). That, or LDFLAGS needs to be > adjusted to find libcrypto in the build tree. > > > > I suspect it's a fairly simple one, actually: move all of the parts > that actually build libcrypto into a subdir of secure/lib/libcrypto > and make sure there's a proper SUBDIR_DEPENDS_modules= libcrypto. The > module is built in secure/lib/libcrypto/Makefile, but I would guess > either it's racing the build of modules/ (SUBDIR) against the build of > the module in the parent Makefile, or it's just going to build the > SUBDIR first every time. I don't recall the exact behavior of make > here. > > libcrypto is in _prebuild_libs, but I don't think we have any way you > can actually tell we're in the prebuild phase to avoid SUBDIR'ing in > the modules/ while we're doing the earlier build. If we did, the later > all pass should descend back into libcrypto/ and do nothing for the > lib itself but build the modules. > > Thanks, > > Kyle Evans >