[PATCH] lib: bzip2: remove inlining

Tom Rini trini at konsulko.com
Thu Feb 23 23:09:29 CET 2023


On Thu, Feb 23, 2023 at 10:53:44PM +0100, Heinrich Schuchardt wrote:
> 
> 
> On 2/23/23 17:40, Tom Rini wrote:
> > On Thu, Feb 23, 2023 at 05:39:08PM +0100, Heinrich Schuchardt wrote:
> > > On 2/23/23 17:30, Tom Rini wrote:
> > > > On Thu, Feb 23, 2023 at 08:15:25AM +0100, Heinrich Schuchardt wrote:
> > > > > Compiling sandbox_defconfig with CONFIG_CC_OPTIMIZE_FOR_DEBUG=y and
> > > > > gcc 12.2.0-14ubuntu1 leads to a build error:
> > > > > 
> > > > >       lib/bzip2/bzlib.c: In function 'BZ2_decompress':
> > > > >       lib/bzip2/bzlib.c:726:18: error: inlining failed in call to
> > > > >       'always_inline' 'BZ2_indexIntoF': function not considered for inlining
> > > > >         726 | __inline__ Int32 BZ2_indexIntoF ( Int32 indx, Int32 *cftab )
> > > > >             |                  ^
> > > > > 
> > > > > Leave it to the compiler if it inlines or not.
> > > > > 
> > > > > Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> > > > 
> > > > What did previous compilers do here? If we're telling the compiler to
> > > > always inline, presumably for good reason, we shouldn't just stop.
> > > > 
> > > 
> > > Inlining may make the code a bit faster. But without inlining it would be
> > > smaller. Grep for BZ_GET_SMALL to find where the inlined function is used.
> > > 
> > > In test/compression.c we check the result. 'ut compression' does not find a
> > > problem.
> > 
> > OK, and I'm wondering if the compiler regressed.
> > 
> 
> CONFIG_CC_OPTIMIZE_FOR_DEBUG is not used in any of our defconfigs and has
> been introduced long after bzip2.
> 
> Typically CONFIG_CC_OPTIMIZE_FOR_DEBUG is used in conjunction with
> CONFIG_LTO=n. In this case the error does not occur.
> 
> It seems that gcc with -Og -flto has an issue.

OK, so this combination is fine with:
gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

So I'd really like to get some compiler people to confirm that there's
not a regression on their end here.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20230223/a0df5890/attachment.sig>


More information about the U-Boot mailing list