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.schucha...@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.

Best regards

Heinrich

Reply via email to