Date: Mon, 29 May 2023 13:53:44 -0600 From: Pierre Pronchery <pierre@freebsdfoundation.org> To: Kyle Evans <kevans@freebsd.org> Cc: Enji Cooper <yaneurabeya@gmail.com>, Antoine Brodin <antoine@freebsd.org>, freebsd-arch@freebsd.org Subject: 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 Message-ID: <CAAA5UuDV-EatresGFW_zfFMQYsP2MY-iHU_RzHnPnf=kbfHpLg@mail.gmail.com> In-Reply-To: <CACNAnaEYx9VUeMwVeZ=wN2yjUVmLxT-n_Kjk1wFW_O94SH09rg@mail.gmail.com> References: <CAALwa8=-3cej2YDF5FpGMNWhgQ4SoTKUQH9aArNNqxdWN8ptJA@mail.gmail.com> <CEFF2332-CC06-4F5E-9618-ABBD5949BFDE@gmail.com> <CACNAnaEYx9VUeMwVeZ=wN2yjUVmLxT-n_Kjk1wFW_O94SH09rg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--00000000000066a7b105fcda72fe Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Kyle, everyone, Thanks for the hints! Unfortunately I am still not able to make your solution work. With "SUBDIR_DEPEND_modules=3D libcrypto" (no "S") and "SUBDIR_PARALLEL=3D" 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=3Dcrypto 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=E2=80=AFAM Kyle Evans <kevans@freebsd.org> wro= te: > On Thu, May 11, 2023 at 9:54=E2=80=AFAM Enji Cooper <yaneurabeya@gmail.co= m> wrote: > > > > > > > On May 11, 2023, at 00:23, Antoine Brodin <antoine@freebsd.org> wrote= : > > > > > > =EF=BB=BFOn Thu, May 11, 2023 at 6:31=E2=80=AFAM 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 OpenS= SL > > >> 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 DevSummi= t > at > > >> BSDCan, so feel free to take it from there until then. > > >> > > >> HTH! > > >> -- khorben > > > > > > Thanks, I have this error during buildworld: > > > > > > =3D=3D=3D> secure/lib/libcrypto/modules/fips (all) > > > make[6]: > /usr/obj/poudriere/data/src-openssl3/amd64.amd64/secure/lib/libcrypto/mod= ules/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=3D/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=3D 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 > --00000000000066a7b105fcda72fe Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>Hi Kyle, everyone,</div><div><br></div>Thanks for the= hints!<div><br></div><div>Unfortunately I am still not able to make your s= olution work. With "SUBDIR_DEPEND_modules=3D libcrypto" (no "= ;S") and "SUBDIR_PARALLEL=3D" the build fails with:</div><di= v>"make[4]: make[4]: don't know how to make all_subdir_secure/lib/= libcrypto/libcrypto. Stop"</div><div><br></div><div>I'm looking at= other places in the source tree to try to reproduce the behaviour we want.= </div><div><br></div><div>In the meantime what I did is to remove LIBADD=3D= crypto in modules/Makefile.inc, but I am not sure yet if this is going to w= ork or not.</div><div><br></div><div>Cheers,</div><div>-- Pierre</div></div= ><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Th= u, May 11, 2023 at 9:45=E2=80=AFAM Kyle Evans <<a href=3D"mailto:kevans@= freebsd.org" target=3D"_blank">kevans@freebsd.org</a>> wrote:<br></div><= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);pa= dding-left:1ex">On Thu, May 11, 2023 at 9:54=E2=80=AFAM Enji Cooper <<a = href=3D"mailto:yaneurabeya@gmail.com" target=3D"_blank">yaneurabeya@gmail.c= om</a>> wrote:<br> ><br> ><br> > > On May 11, 2023, at 00:23, Antoine Brodin <<a href=3D"mailto:a= ntoine@freebsd.org" target=3D"_blank">antoine@freebsd.org</a>> wrote:<br= > > ><br> > > =EF=BB=BFOn Thu, May 11, 2023 at 6:31=E2=80=AFAM Pierre Pronchery= <br> > > <<a href=3D"mailto:pierre@freebsdfoundation.org" target=3D"_bl= ank">pierre@freebsdfoundation.org</a>> wrote:<br> > >><br> > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Hi eve= ryone,<br> > >><br> > >> It's been a long and tough fight, but I finally managed t= o complete a<br> > >> `make buildworld` on amd64 with the latest state of my work o= n OpenSSL<br> > >> 3; see <a href=3D"https://github.com/freebsd/freebsd-src/pull= /740" rel=3D"noreferrer" target=3D"_blank">https://github.com/freebsd/freeb= sd-src/pull/740</a> for a first draft<br> > >> of a pull-request via GitHub.<br> > >><br> > >> I will probably not be able to work on this again until the D= evSummit at<br> > >> BSDCan, so feel free to take it from there until then.<br> > >><br> > >> HTH!<br> > >> -- khorben<br> > ><br> > > Thanks,=C2=A0 I have this error during buildworld:<br> > ><br> > > =3D=3D=3D> secure/lib/libcrypto/modules/fips (all)<br> > > make[6]: /usr/obj/poudriere/data/src-openssl3/amd64.amd64/secure/= lib/libcrypto/modules/fips/.depend,<br> > > 1: ignoring stale .depend for<br> > > /usr/obj/poudriere/data/src-openssl3/amd64.amd64/tmp/usr/lib/libc= rypto.a<br> > > building shared library fips.so<br> > > cc -target x86_64-unknown-freebsd14.0<br> > > --sysroot=3D/usr/obj/poudriere/data/src-openssl3/amd64.amd64/tmp<= br> > > -B/usr/obj/poudriere/data/src-openssl3/amd64.amd64/tmp/usr/bin<br= > > > -Wl,-zrelro=C2=A0 =C2=A0-fstack-protector-strong -shared -Wl,-x<b= r> > > -Wl,--fatal-warnings -Wl,--warn-shared-textrel=C2=A0 -o fips.so.f= ull<br> > > -Wl,-soname,fips.so fips_entry.pico fipsprov.pico self_test.pico<= br> > > self_test_kats.pico=C2=A0 -lcrypto<br> > > ld: error: unable to find library -lcrypto<br> > > cc: error: linker command failed with exit code 1 (use -v to see = invocation)<br> > > *** Error code 1<br> ><br> > Good find!<br> ><br> > 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 a= djusted to find libcrypto in the build tree.<br> ><br> <br> I suspect it's a fairly simple one, actually: move all of the parts<br> that actually build libcrypto into a subdir of secure/lib/libcrypto<br> and make sure there's a proper SUBDIR_DEPENDS_modules=3D libcrypto. The= <br> module is built in secure/lib/libcrypto/Makefile, but I would guess<br> either it's racing the build of modules/ (SUBDIR) against the build of<= br> the module in the parent Makefile, or it's just going to build the<br> SUBDIR first every time. I don't recall the exact behavior of make<br> here.<br> <br> libcrypto is in _prebuild_libs, but I don't think we have any way you<b= r> can actually tell we're in the prebuild phase to avoid SUBDIR'ing i= n<br> the modules/ while we're doing the earlier build. If we did, the later<= br> all pass should descend back into libcrypto/ and do nothing for the<br> lib itself but build the modules.<br> <br> Thanks,<br> <br> Kyle Evans<br> </blockquote></div> --00000000000066a7b105fcda72fe--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAAA5UuDV-EatresGFW_zfFMQYsP2MY-iHU_RzHnPnf=kbfHpLg>