On 01/05/2024 12:26 AM, Xi Ruoyao wrote:
On Thu, 2024-01-04 at 16:57 +0800, Huacai Chen wrote:
On Wed, Dec 27, 2023 at 7:06 PM Xi Ruoyao <xry111@xxxxxxxxxxx> wrote:
On Wed, 2023-12-27 at 15:03 +0800, WANG Xuerui wrote:
And even though the kernel is built with relaxation disabled, so
far a small number of R_LARCH_RELAX marker relocs are still emitted as
part of la.* pseudo instructions in assembly.
I'd consider it a toolchain bug... Is there a reproducer?
Any updates? Should I apply this patch for loongarch-next?
Tiezhu told me this should be reproducible with GCC 14 and Binutils-2.42
development snapshots and defconfig. I'm trying...
1. How to reproduce
I update the latest upstream toolchains (20240105):
[fedora@linux 6.7.test]$ gcc --version
gcc (GCC) 14.0.0 20240105 (experimental)
[fedora@linux 6.7.test]$ as --version
GNU assembler (GNU Binutils) 2.41.50.20240105
[fedora@linux 6.7.test]$ ld --version
GNU ld (GNU Binutils) 2.41.50.20240105
and then test it again, here is the failure info:
[fedora@linux 6.7.test]$ git log --oneline | head -1
610a9b8f49fb Linux 6.7-rc8
[fedora@linux 6.7.test]$ make loongson3_defconfig
[fedora@linux 6.7.test]$ make
...
AR built-in.a
AR vmlinux.a
LD vmlinux.o
OBJCOPY modules.builtin.modinfo
GEN modules.builtin
GEN .vmlinux.objs
MODPOST Module.symvers
make[2]: *** [scripts/Makefile.modpost:145: Module.symvers] Error 139
make[1]: *** [/home/fedora/6.7.test/Makefile:1863: modpost] Error 2
make: *** [Makefile:234: __sub-make] Error 2
2. Additional info
I can confirm that the slightly older version of toolchains (20231127)
have no the above failure, so I guess this is related with toolchains.
3. How to fix
(1) One way is to modify the kernel code, with this kernel patch,
there is no building failure with the latest upstream toolchains.
(2) The other way is to analysis and fix the binutils code,
it need more work to do.
Thanks,
Tiezhu