All of lore.kernel.org
 help / color / mirror / Atom feed
* Regression: commit 987fdfec2410 causes build to incorrectly issue warning
@ 2021-07-02 13:13 Russell King - ARM Linux admin
  2021-07-02 14:48 ` Russell King (Oracle)
  0 siblings, 1 reply; 3+ messages in thread
From: Russell King - ARM Linux admin @ 2021-07-02 13:13 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon
  Cc: Nathan Chancellor, Masahiro Yamada, linux-arm-kernel

Hi,

Commit 987fdfec2410 ("arm64: move --fix-cortex-a53-843419 linker test to
Kconfig") breaks the ability to detect linker support for this option.
Building 5.13 for aarch64 with Debian binutils 2.31.1 results in:

.../arch/arm64/Makefile:25: ld does not support --fix-cortex-a53-843419; kernel may be susceptible to erratum

This is because ARM64_LD_HAS_FIX_ERRATUM_843419 is not set in the
Kconfig, indicating that the Kconfig test for linker support for
--fix-cortex-a53-843419 has failed, yet this version of binutils does
support this option:

$ aarch64-linux-gnu-ld --help | grep -e --fix-cortex-a53-843419 | wc -l
8

Reverting this commit fixes the problem for me.

Thanks.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Regression: commit 987fdfec2410 causes build to incorrectly issue warning
  2021-07-02 13:13 Regression: commit 987fdfec2410 causes build to incorrectly issue warning Russell King - ARM Linux admin
@ 2021-07-02 14:48 ` Russell King (Oracle)
  2021-07-05  0:31   ` Masahiro Yamada
  0 siblings, 1 reply; 3+ messages in thread
From: Russell King (Oracle) @ 2021-07-02 14:48 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon
  Cc: Nathan Chancellor, Masahiro Yamada, linux-arm-kernel

On Fri, Jul 02, 2021 at 02:13:01PM +0100, Russell King - ARM Linux admin wrote:
> Hi,
> 
> Commit 987fdfec2410 ("arm64: move --fix-cortex-a53-843419 linker test to
> Kconfig") breaks the ability to detect linker support for this option.
> Building 5.13 for aarch64 with Debian binutils 2.31.1 results in:
> 
> .../arch/arm64/Makefile:25: ld does not support --fix-cortex-a53-843419; kernel may be susceptible to erratum
> 
> This is because ARM64_LD_HAS_FIX_ERRATUM_843419 is not set in the
> Kconfig, indicating that the Kconfig test for linker support for
> --fix-cortex-a53-843419 has failed, yet this version of binutils does
> support this option:
> 
> $ aarch64-linux-gnu-ld --help | grep -e --fix-cortex-a53-843419 | wc -l
> 8
> 
> Reverting this commit fixes the problem for me.

Sadly, while reverting the commit fixes it during the initial build
run, the warning pops up when doing the installation step.

I'm not entirely sure what's going on here. Having put the commit
back, and re-run strace (and waited ages) it appears that the
ld-option command does succeed, and I eventually end up with the
option present in .config.

However, it seems that if we have a .config that has the errata
enabled, but doesn't contain the _LD_ option, then we end up issuing
the warning before we re-run the Kconfig step.

Eventually, I seem to have ended up with the _LD_ option set. Quite
how, I don't know. When I originally noticed the problem, I had done
a full rebuild. I then re-ran the build several times, and the warning
popped up every time.

Now that I've touched arch/arm64/Kconfig and re-run the build, it
doesn't warn anymore - in fact, while investigating this and stracing,
the option magically set itself and the problem has vanished.

There is definitely weirdness and unpredictability going on with
Kbuild - I can't explain it. Maybe its just become way to complex...

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Regression: commit 987fdfec2410 causes build to incorrectly issue warning
  2021-07-02 14:48 ` Russell King (Oracle)
@ 2021-07-05  0:31   ` Masahiro Yamada
  0 siblings, 0 replies; 3+ messages in thread
From: Masahiro Yamada @ 2021-07-05  0:31 UTC (permalink / raw)
  To: Russell King (Oracle)
  Cc: Catalin Marinas, Will Deacon, Nathan Chancellor, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 2429 bytes --]

On Fri, Jul 2, 2021 at 11:48 PM Russell King (Oracle)
<linux@armlinux.org.uk> wrote:
>
> On Fri, Jul 02, 2021 at 02:13:01PM +0100, Russell King - ARM Linux admin wrote:
> > Hi,
> >
> > Commit 987fdfec2410 ("arm64: move --fix-cortex-a53-843419 linker test to
> > Kconfig") breaks the ability to detect linker support for this option.
> > Building 5.13 for aarch64 with Debian binutils 2.31.1 results in:
> >
> > .../arch/arm64/Makefile:25: ld does not support --fix-cortex-a53-843419; kernel may be susceptible to erratum
> >
> > This is because ARM64_LD_HAS_FIX_ERRATUM_843419 is not set in the
> > Kconfig, indicating that the Kconfig test for linker support for
> > --fix-cortex-a53-843419 has failed, yet this version of binutils does
> > support this option:
> >
> > $ aarch64-linux-gnu-ld --help | grep -e --fix-cortex-a53-843419 | wc -l
> > 8
> >
> > Reverting this commit fixes the problem for me.
>
> Sadly, while reverting the commit fixes it during the initial build
> run, the warning pops up when doing the installation step.
>
> I'm not entirely sure what's going on here. Having put the commit
> back, and re-run strace (and waited ages) it appears that the
> ld-option command does succeed, and I eventually end up with the
> option present in .config.
>
> However, it seems that if we have a .config that has the errata
> enabled, but doesn't contain the _LD_ option, then we end up issuing
> the warning before we re-run the Kconfig step.
>
> Eventually, I seem to have ended up with the _LD_ option set. Quite
> how, I don't know. When I originally noticed the problem, I had done
> a full rebuild. I then re-ran the build several times, and the warning
> popped up every time.
>
> Now that I've touched arch/arm64/Kconfig and re-run the build, it
> doesn't warn anymore - in fact, while investigating this and stracing,
> the option magically set itself and the problem has vanished.
>
> There is definitely weirdness and unpredictability going on with
> Kbuild - I can't explain it. Maybe its just become way to complex...
>
> --
> RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
> FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!


I do not know your issue occurs, and not perfectly sure if this
is related to your case, but I also see some cases where this false-positive
warning is displayed.

Could you please try the attached patch?


-- 
Best Regards
Masahiro Yamada

[-- Attachment #2: 0001-arm64-move-warning-about-toolchains-to-archprepare.patch --]
[-- Type: text/x-patch, Size: 2962 bytes --]

From 39ad4bd3b42a7ba3d512254f5a0d23aae1295743 Mon Sep 17 00:00:00 2001
From: Masahiro Yamada <masahiroy@kernel.org>
Date: Mon, 5 Jul 2021 01:49:18 +0900
Subject: [PATCH] arm64: move warning about toolchains to archprepare

Commit 987fdfec2410 ("arm64: move --fix-cortex-a53-843419 linker test to
Kconfig") fixed the false-positive warning in the installation step.

Yet, there are some cases where this false-positive is shown. For example,
you can see it when you cross 987fdfec2410 during git-bisect.

  $ git checkout 987fdfec2410^
    [ snip ]
  $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig all
    [ snip ]
  $ git checkout v5.13
    [ snip]
  $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig all
    [ snip ]
  arch/arm64/Makefile:25: ld does not support --fix-cortex-a53-843419; kernel may be susceptible to erratum

In the stale include/config/auto.config, CONFIG_ARM64_ERRATUM_843419=y
is set without CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419, so the warning
is displayed while parsing the Makefiles.

Make will restart with the updated include/config/auto.config, hence
CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419 will be set eventually, but
this warning is a surprise for users.

Commit 25896d073d8a ("x86/build: Fix compiler support check for
CONFIG_RETPOLINE") addressed a similar issue.

Move $(warning ...) out of the parse stage of Makefiles.

The same applies to CONFIG_ARM64_USE_LSE_ATOMICS.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---
 arch/arm64/Makefile | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 3b5b1c480449..8b6fdd466d92 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -21,19 +21,11 @@ LDFLAGS_vmlinux		+= -shared -Bsymbolic -z notext \
 endif
 
 ifeq ($(CONFIG_ARM64_ERRATUM_843419),y)
-  ifneq ($(CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419),y)
-$(warning ld does not support --fix-cortex-a53-843419; kernel may be susceptible to erratum)
-  else
+  ifeq ($(CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419),y)
 LDFLAGS_vmlinux	+= --fix-cortex-a53-843419
   endif
 endif
 
-ifeq ($(CONFIG_ARM64_USE_LSE_ATOMICS), y)
-  ifneq ($(CONFIG_ARM64_LSE_ATOMICS), y)
-$(warning LSE atomics not supported by binutils)
-  endif
-endif
-
 cc_has_k_constraint := $(call try-run,echo				\
 	'int main(void) {						\
 		asm volatile("and w0, w0, %w0" :: "K" (4294967295));	\
@@ -177,6 +169,17 @@ vdso_install:
 
 archprepare:
 	$(Q)$(MAKE) $(build)=arch/arm64/tools kapi
+ifeq ($(CONFIG_ARM64_ERRATUM_843419),y)
+  ifneq ($(CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419),y)
+	@echo "warning: ld does not support --fix-cortex-a53-843419; kernel may be susceptible to erratum" >&2
+  endif
+endif
+ifeq ($(CONFIG_ARM64_USE_LSE_ATOMICS),y)
+  ifneq ($(CONFIG_ARM64_LSE_ATOMICS),y)
+	@echo "warning: LSE atomics not supported by binutils" >&2
+  endif
+endif
+
 
 # We use MRPROPER_FILES and CLEAN_FILES now
 archclean:
-- 
2.27.0


[-- Attachment #3: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-07-05  0:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-02 13:13 Regression: commit 987fdfec2410 causes build to incorrectly issue warning Russell King - ARM Linux admin
2021-07-02 14:48 ` Russell King (Oracle)
2021-07-05  0:31   ` Masahiro Yamada

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.