[openssl-project] inline functions

Benjamin Kaduk kaduk at mit.edu
Mon Jan 28 16:25:09 UTC 2019


On Mon, Jan 28, 2019 at 07:10:55AM +0100, Richard Levitte wrote:
> On Mon, 28 Jan 2019 06:17:35 +0100,
> Dr Paul Dale wrote:
> > Richard wrote:
> > 
> >     Not really, since they are static inline. This is by design, that for any file you want to use
> >     a safestack in, you just start with a DEFINE_ line. The mistake we did was to leave a few
> >     common ones in the safestack header file. (same thing for lhash) 
> > 
> > Which means we’ve a compatibility issue.  The functions are in a public header, they can be used
> > by any application.  We need to continue supporting such use.
> > Asking a user to add a DEFINE_ line is API breaking.
> > 
> > I would be pro making such a change but we’d need to accept the consequences.
> 
> We have to accept consequences either way, either:
> 
> 1. the surprise breakage if someone includes <openssl/safestack.h> but
>    doesn't link with libcrypto, while compiling with
>    -fkeep-inline-functions (explicitly or implicitly, depending on the
>    compiler)

This one is only "surprising and new" the first time a user/project tries
to turn on -fkeep-inline-functions.

> 2. The controlled and documented change / breakage that they will have
>    to either add those DEFINE lines where they need the functionality,
>    or include another header file with common stack / lhash type
>    implementations (with the caveat that they MUST link with libcrypto
>    if they use those headers)

This one is "surprising and new" to everyone using the stuff (i.e., more
people).

-Ben


More information about the openssl-project mailing list