[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8981c636-6145-6589-d4c9-8cdc12801be3@physik.fu-berlin.de>
Date: Fri, 27 Jan 2023 14:29:44 +0100
From: John Paul Adrian Glaubitz <glaubitz@...sik.fu-berlin.de>
To: Tom Saeger <tom.saeger@...cle.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: Naresh Kamboju <naresh.kamboju@...aro.org>,
Rich Felker <dalias@...c.org>,
Masahiro Yamada <masahiroy@...nel.org>,
Ard Biesheuvel <ardb@...nel.org>,
Nathan Chancellor <nathan@...nel.org>,
Dennis Gilmore <dennis@...il.us>,
Palmer Dabbelt <palmer@...osinc.com>,
Arnd Bergmann <arnd@...db.de>, stable@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-sh@...r.kernel.org,
Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: [PATCH 5.4 fix build id for arm64 6/6] sh: define
RUNTIME_DISCARD_EXIT
Hi Tom!
On 1/27/23 14:25, Tom Saeger wrote:
> On Fri, Jan 27, 2023 at 08:29:23AM +0100, Greg Kroah-Hartman wrote:
>> On Tue, Jan 24, 2023 at 02:14:23PM -0700, Tom Saeger wrote:
>>> sh vmlinux fails to link with GNU ld < 2.40 (likely < 2.36) since
>>> commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv").
>>>
>>> This is similar to fixes for powerpc and s390:
>>> commit 4b9880dbf3bd ("powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT").
>>> commit a494398bde27 ("s390: define RUNTIME_DISCARD_EXIT to fix link error
>>> with GNU ld < 2.36").
>>>
>>> $ sh4-linux-gnu-ld --version | head -n1
>>> GNU ld (GNU Binutils for Debian) 2.35.2
>>>
>>> $ make ARCH=sh CROSS_COMPILE=sh4-linux-gnu- microdev_defconfig
>>> $ make ARCH=sh CROSS_COMPILE=sh4-linux-gnu-
>>>
>>> `.exit.text' referenced in section `__bug_table' of crypto/algboss.o:
>>> defined in discarded section `.exit.text' of crypto/algboss.o
>>> `.exit.text' referenced in section `__bug_table' of
>>> drivers/char/hw_random/core.o: defined in discarded section
>>> `.exit.text' of drivers/char/hw_random/core.o
>>> make[2]: *** [scripts/Makefile.vmlinux:34: vmlinux] Error 1
>>> make[1]: *** [Makefile:1252: vmlinux] Error 2
>>>
>>> arch/sh/kernel/vmlinux.lds.S keeps EXIT_TEXT:
>>>
>>> /*
>>> * .exit.text is discarded at runtime, not link time, to deal with
>>> * references from __bug_table
>>> */
>>> .exit.text : AT(ADDR(.exit.text)) { EXIT_TEXT }
>>>
>>> However, EXIT_TEXT is thrown away by
>>> DISCARD(include/asm-generic/vmlinux.lds.h) because
>>> sh does not define RUNTIME_DISCARD_EXIT.
>>>
>>> GNU ld 2.40 does not have this issue and builds fine.
>>> This corresponds with Masahiro's comments in a494398bde27:
>>> "Nathan [Chancellor] also found that binutils
>>> commit 21401fc7bf67 ("Duplicate output sections in scripts") cured this
>>> issue, so we cannot reproduce it with binutils 2.36+, but it is better
>>> to not rely on it."
>>>
>>> Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv")
>>> Link: https://lore.kernel.org/all/Y7Jal56f6UBh1abE@dev-arch.thelio-3990X/
>>> Link: https://lore.kernel.org/all/20230123194218.47ssfzhrpnv3xfez@oracle.com/
>>> Signed-off-by: Tom Saeger <tom.saeger@...cle.com>
>>> ---
>>> arch/sh/kernel/vmlinux.lds.S | 1 +
>>> 1 file changed, 1 insertion(+)
>>
>> No upstream git id?
>>
>> :(
>
> No, not yet. I'll try resending.
Can you push this via Andrew's tree until we have sorted out the new SH tree?
We're currently having issues with our git instance and we're also not yet official.
Apologies for the delay!
Adrian
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer
`. `' Physicist
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
Powered by blists - more mailing lists