* [Buildroot] [PATCH 1/2] linux: introduce LINUX_KCFLAGS to add additional options to the C compiler
@ 2020-09-26 19:13 Romain Naour
2020-09-26 19:13 ` [Buildroot] [PATCH 2/2] linux: Disable -ftree-loop-distribute-patterns when building for microblaze with gcc >= 10 Romain Naour
0 siblings, 1 reply; 7+ messages in thread
From: Romain Naour @ 2020-09-26 19:13 UTC (permalink / raw)
To: buildroot
Since 9a50447b5d4b2ab0162e3235395ab9a4c8a647d5 KCFLAGS is set
to disable a compiler warning but doesn't allow to provide
more flags.
This refactoring introduce LINUX_KCFLAGS to provide more
options to the C compiler.
Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
linux/linux.mk | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/linux/linux.mk b/linux/linux.mk
index e07e014d1e..b9b223e3f3 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -71,7 +71,8 @@ LINUX_PATCH = $(filter ftp://% http://% https://%,$(LINUX_PATCHES))
# host-pkgconf will look for host libraries and not target ones.
LINUX_MAKE_ENV = \
$(HOST_MAKE_ENV) \
- BR_BINARIES_DIR=$(BINARIES_DIR)
+ BR_BINARIES_DIR=$(BINARIES_DIR) \
+ KCFLAGS="$(LINUX_KCFLAGS)"
LINUX_INSTALL_IMAGES = YES
LINUX_DEPENDENCIES = host-kmod \
@@ -154,7 +155,7 @@ endif
# sanitize the arguments passed from user space in registers.
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82435
ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_8),y)
-LINUX_MAKE_ENV += KCFLAGS=-Wno-attribute-alias
+LINUX_KCFLAGS += -Wno-attribute-alias
endif
ifeq ($(BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT),y)
--
2.25.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] linux: Disable -ftree-loop-distribute-patterns when building for microblaze with gcc >= 10
2020-09-26 19:13 [Buildroot] [PATCH 1/2] linux: introduce LINUX_KCFLAGS to add additional options to the C compiler Romain Naour
@ 2020-09-26 19:13 ` Romain Naour
2020-09-30 20:59 ` Thomas Petazzoni
0 siblings, 1 reply; 7+ messages in thread
From: Romain Naour @ 2020-09-26 19:13 UTC (permalink / raw)
To: buildroot
GCC 10 now enable by default -ftree-loop-distribute-patterns at -O2 or -Os
optimization level instead of -O3, see commit [1].
Due to this change, the microblaze kernel doesn't boot (as reported by
toolchain-builder project).
The gcc docs between version 9 and 10 has been updated accordingly [2] [3]
but there no word about this change in the gcc 10 changelog [4].
Fixes microblazebe:
https://gitlab.com/bootlin/toolchains-builder/-/jobs/729359536 (glibc)
https://gitlab.com/bootlin/toolchains-builder/-/jobs/729359538 (musl)
https://gitlab.com/bootlin/toolchains-builder/-/jobs/729359540 (uClubc-ng)
Fixes microblazeel:
https://gitlab.com/bootlin/toolchains-builder/-/jobs/729359542 (glibc)
https://gitlab.com/bootlin/toolchains-builder/-/jobs/729359544 (musl)
https://gitlab.com/bootlin/toolchains-builder/-/jobs/729359546 (uClibc-ng)
This has been reported upsteam [5].
[1] https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=5879ab5fafedc8f6f9bfe95a4cf8501b0df90edd
[2] https://gcc.gnu.org/onlinedocs/gcc-9.3.0/gcc/Optimize-Options.html#Optimize-Options
[3] https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gcc/Optimize-Options.html#Optimize-Options
[4] https://gcc.gnu.org/gcc-10/changes.html
[5] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97208
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
linux/linux.mk | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/linux/linux.mk b/linux/linux.mk
index b9b223e3f3..9ee9054bed 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -158,6 +158,12 @@ ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_8),y)
LINUX_KCFLAGS += -Wno-attribute-alias
endif
+# https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=5879ab5fafedc8f6f9bfe95a4cf8501b0df90edd
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97208
+ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_10)$(BR2_microblaze),yy)
+LINUX_KCFLAGS += -fno-tree-loop-distribute-patterns
+endif
+
ifeq ($(BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT),y)
LINUX_MAKE_ENV += DTC_FLAGS=-@
endif
--
2.25.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] linux: Disable -ftree-loop-distribute-patterns when building for microblaze with gcc >= 10
2020-09-26 19:13 ` [Buildroot] [PATCH 2/2] linux: Disable -ftree-loop-distribute-patterns when building for microblaze with gcc >= 10 Romain Naour
@ 2020-09-30 20:59 ` Thomas Petazzoni
2020-09-30 21:04 ` Romain Naour
0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni @ 2020-09-30 20:59 UTC (permalink / raw)
To: buildroot
On Sat, 26 Sep 2020 21:13:30 +0200
Romain Naour <romain.naour@gmail.com> wrote:
> +# https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=5879ab5fafedc8f6f9bfe95a4cf8501b0df90edd
> +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97208
> +ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_10)$(BR2_microblaze),yy)
> +LINUX_KCFLAGS += -fno-tree-loop-distribute-patterns
> +endif
I am wondering if this is the right approach. If the
-ftree-loop-distribute-patterns breaks stuff for the kernel, presumably
it could also break stuff for user-space software. So I guess we should
instead disable it entirely in TARGET_CFLAGS.
The gotcha being of course that we don't pass TARGET_CFLAGS to the
Linux package...
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] linux: Disable -ftree-loop-distribute-patterns when building for microblaze with gcc >= 10
2020-09-30 20:59 ` Thomas Petazzoni
@ 2020-09-30 21:04 ` Romain Naour
2020-10-01 8:06 ` Thomas Petazzoni
0 siblings, 1 reply; 7+ messages in thread
From: Romain Naour @ 2020-09-30 21:04 UTC (permalink / raw)
To: buildroot
Hi Thomas,
Le 30/09/2020 ? 22:59, Thomas Petazzoni a ?crit?:
> On Sat, 26 Sep 2020 21:13:30 +0200
> Romain Naour <romain.naour@gmail.com> wrote:
>
>> +# https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=5879ab5fafedc8f6f9bfe95a4cf8501b0df90edd
>> +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97208
>> +ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_10)$(BR2_microblaze),yy)
>> +LINUX_KCFLAGS += -fno-tree-loop-distribute-patterns
>> +endif
>
> I am wondering if this is the right approach. If the
> -ftree-loop-distribute-patterns breaks stuff for the kernel, presumably
> it could also break stuff for user-space software. So I guess we should
> instead disable it entirely in TARGET_CFLAGS.
>
> The gotcha being of course that we don't pass TARGET_CFLAGS to the
> Linux package...
Indeed, I have no ideas if the userspace built with this toolchain is really
working... except for busybox which was used by qemu_microblazeel_mmu_defconfig
Best regards,
Romain
>
> Thomas
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] linux: Disable -ftree-loop-distribute-patterns when building for microblaze with gcc >= 10
2020-09-30 21:04 ` Romain Naour
@ 2020-10-01 8:06 ` Thomas Petazzoni
2020-10-06 18:46 ` Arnout Vandecappelle
0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni @ 2020-10-01 8:06 UTC (permalink / raw)
To: buildroot
On Wed, 30 Sep 2020 23:04:22 +0200
Romain Naour <romain.naour@gmail.com> wrote:
> > The gotcha being of course that we don't pass TARGET_CFLAGS to the
> > Linux package...
>
> Indeed, I have no ideas if the userspace built with this toolchain is really
> working... except for busybox which was used by qemu_microblazeel_mmu_defconfig
I think we should be passing this flag in TARGET_CFLAGS. What bothers
me is that passing it in TARGET_CFLAGS would not resolve the Linux
build issue, as Linux isn't built with TARGET_CFLAGS...
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] linux: Disable -ftree-loop-distribute-patterns when building for microblaze with gcc >= 10
2020-10-01 8:06 ` Thomas Petazzoni
@ 2020-10-06 18:46 ` Arnout Vandecappelle
2020-10-06 18:50 ` Thomas Petazzoni
0 siblings, 1 reply; 7+ messages in thread
From: Arnout Vandecappelle @ 2020-10-06 18:46 UTC (permalink / raw)
To: buildroot
On 01/10/2020 10:06, Thomas Petazzoni wrote:
> On Wed, 30 Sep 2020 23:04:22 +0200
> Romain Naour <romain.naour@gmail.com> wrote:
>
>>> The gotcha being of course that we don't pass TARGET_CFLAGS to the
>>> Linux package...
>>
>> Indeed, I have no ideas if the userspace built with this toolchain is really
>> working... except for busybox which was used by qemu_microblazeel_mmu_defconfig
>
> I think we should be passing this flag in TARGET_CFLAGS. What bothers
> me is that passing it in TARGET_CFLAGS would not resolve the Linux
> build issue, as Linux isn't built with TARGET_CFLAGS...
If it's something needed to "fix the compiler", then it should be in the
toolchain wrapper (i.e. TOOLCHAIN_WRAPPER_OPTS).
Regards,
Arnout
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] linux: Disable -ftree-loop-distribute-patterns when building for microblaze with gcc >= 10
2020-10-06 18:46 ` Arnout Vandecappelle
@ 2020-10-06 18:50 ` Thomas Petazzoni
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Petazzoni @ 2020-10-06 18:50 UTC (permalink / raw)
To: buildroot
On Tue, 6 Oct 2020 20:46:04 +0200
Arnout Vandecappelle <arnout@mind.be> wrote:
> If it's something needed to "fix the compiler", then it should be in the
> toolchain wrapper (i.e. TOOLCHAIN_WRAPPER_OPTS).
Right, good idea!
Romain, do you think you can revisit this using TOOLCHAIN_WRAPPER_OPTS ?
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-10-06 18:50 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-26 19:13 [Buildroot] [PATCH 1/2] linux: introduce LINUX_KCFLAGS to add additional options to the C compiler Romain Naour
2020-09-26 19:13 ` [Buildroot] [PATCH 2/2] linux: Disable -ftree-loop-distribute-patterns when building for microblaze with gcc >= 10 Romain Naour
2020-09-30 20:59 ` Thomas Petazzoni
2020-09-30 21:04 ` Romain Naour
2020-10-01 8:06 ` Thomas Petazzoni
2020-10-06 18:46 ` Arnout Vandecappelle
2020-10-06 18:50 ` Thomas Petazzoni
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.