v5.17-rc3 compile failure on aarch64

Qu Wenruo quwenruo.btrfs at gmx.com
Thu Feb 17 03:59:10 PST 2022



On 2022/2/17 19:50, Mark Rutland wrote:
> On Thu, Feb 17, 2022 at 04:37:49PM +0800, Qu Wenruo wrote:
>> Hi,
>
> Hi,
>
> [adding LAKML so other arm/arm64 folk can chime in]
>
>> Recently I found v5.17-rc3 kernel failed to compile on my aarch64 setup,
>> it failed with the following error messages:
>>
>>    AR      lib/zstd/built-in.a
>>    LD [M]  lib/zstd/zstd_compress.o
>> ld: __patchable_function_entries has both ordered
>> [`__patchable_function_entries' in lib/zstd/common/entropy_common.o] and
>> unordered [`__patchable_function_entries' in
>> lib/zstd/common/error_private.o] sections
>> ld: final link failed: bad value
>> make[2]: *** [scripts/Makefile.build:484: lib/zstd/zstd_compress.o] Error 1
>> make[1]: *** [scripts/Makefile.build:550: lib/zstd] Error 2
>> make: *** [Makefile:1831: lib] Error 2
>> make: *** Waiting for unfinished jobs....
>
> Uh-oh; that doesn't look good.
>
> In case this is configuration-dependent, could you share your .config?

Sure, attached.

>
>> But the same code base compiles fine inside my x86_64 VM.
>>
>> The aarch64 environment is an VM running on RockPro64 or RPI CM4.
>>
>> With a little older gcc (v10.2.0) and bintuils (2.35).
>
> Is this a custom-built toolchain, or one shipped by a distribution?

Shipped by distro (ArchlinuxARM), native, no cross chain.

And it's mostly upstream, or very lightly backported.

>
> If possible, can you see if you can reproduce this with one of the
> kernel.org cross toolchains:
>
>    https://mirrors.edge.kernel.org/pub/tools/crosstool/
>
> ... because if you can, that will be much easier for someone else to
> reproduce and analyse.
>
> The closest builds are 9.3.0 and 10.3.0, for both arm64 and x86_64.

Sorry, not cross tool chain but native toolchain.

>
> FWIW, I had a go building v5.17-rc3 defconfig with ftrace and zstd bits
> eanbled with both GCC 9.3.0 and GCC 10.3.0, and I could not reproduce
> the problem.

After the incident, I tried the following things, and got it solved:

- Upgrade to gcc 11.1.0 and binutils 2.36.1
   The same kernel base, no "make clean"

   And got the same error.

- "make clean" for the kernel and recompile
   Now the failure is gone.

   Thus I guess it's mostly some old .o is being re-used...

Sorry for the inconvenience, I should just re-compile (even it's super
time-consuming) before reporting...

Thanks,
Qu

>
> Thanks,
> Mark.
>
>> While for my x86_64 VM it has newer gcc (11.1.0) and binutiles (2.36.1)
>>
>> I'm super happy to upgrade my tool chain for my aarch64 VM, but I'm a
>> little concerned if there is something worthy fixed.
>>
>> Thanks,
>> Qu
-------------- next part --------------
A non-text attachment was scrubbed...
Name: config.gz
Type: application/gzip
Size: 38334 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20220217/351f08de/attachment-0001.gz>


More information about the linux-arm-kernel mailing list