Re: [Linux v5.17.9] -Wdeprecated-declarations warnings with LLVM-14 and OpenSSL v3.0.x

From: Willy Tarreau
Date: Thu Jun 09 2022 - 15:23:47 EST


On Thu, Jun 09, 2022 at 09:19:20PM +0200, Sedat Dilek wrote:
> On Thu, Jun 9, 2022 at 9:05 PM Linus Torvalds
> <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > On Thu, Jun 9, 2022 at 11:41 AM Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote:
> > >
> > > Why go back and forth... do it like Alexander the Great and the Gordian knot.
> > >
> > > Sword - Swash - Done.
> > >
> > > commit 6bfb56e93bcef41859c2d5ab234ffd80b691be35
> > > "cert host tools: Stop complaining about deprecated OpenSSL functions"
> >
> > Well, it's not like that is the *right* fix.
> >
> > But I think for now, the answer is "leave it like that until we can
> > just get rid of the ENGINE API entirely".
> >
> > I absolutely detest the "deprecation" warnings. We used to do that in
> > the kernel too, and it was a complete disaster. The warnings are very
> > noisy, and nobody ever cares about them, so it's simply not worth it.
> >
> > So we deprecated "__deprecated" in the kernel itself:
> >
> > 771c035372a0 deprecate the '__deprecated' attribute warnings
> > entirely and for good
> >
> > and I don't think we should care about it when it comes to OpenSSL either.
> >
> > Eventually, that deprecated interface will go away entirely, and by
> > then we hopefully don't care about really old openssl implementations
> > and will have gotten rid of the uses.
> >
> > But for now, I think putting our head in the sand is actually the
> > _better_ model rather than fighting some battle over old vs new
> > libraries.
> >
> > Because sometimes, if you ignore a problem, it really does just go away.
> >
>
> To be honest: I like your approach, Linus.
> Very pragma-tic.
> That's why you use pragma's in your patch :-).
>
> I invested too much of my lifetime in making things work "correctly".
> And yes, it's post-rc1...
>
> Most of the apps in the Debian world passed the OpenSSL-v3 transition.

IIRC you can also disable the deprecation warnings by defining the
OPENSSL_SUPPRESS_DEPRECATED macro. It doesn't require to change the
compiler's options and allows us to put our head in the sand.

Willy