Ok, got it. However, the below patch also gives the attached kernel panic. Also with adk revision
f8d0864c18907ea4e21d0657b34869cda66dd452
that does boot when using gcc 7...
--- linux-a2092141807514666a273971cc8fa9e80f14439f/arch/arm/Makefile.orig 2019-04-13 19:01:23.129152269 +0200 +++ linux-a2092141807514666a273971cc8fa9e80f14439f/arch/arm/Makefile 2019-04-13 19:03:51.038118795 +0200 @@ -29,6 +29,11 @@ # Never generate .eh_frame KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm)
+# kernel always built with soft float, define it early so it participates in +# cc-option evaluation for arch and tune settings +KBUILD_CFLAGS += -msoft-float + + # This should work on most of the modern platforms KBUILD_DEFCONFIG := multi_v7_defconfig
@@ -130,7 +135,7 @@ endif
# Need -Uarm for gcc < 3.x -KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm +KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -Uarm KBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_ISA) $(arch-y) $(tune-y) -include asm/unified.h -msoft-float
CHECKFLAGS += -D__arm__ -m32
On 11.04.19 21:04, lich000king wrote:
Hi
Sounds a lot like this:
https://www.spinics.net/lists/arm-kernel/msg712490.html
and the solution is there as well. But I don't know where to put this flag in adk.
And I don't know how to fix this otherwise. Updating the kernel to 5.0.7, glibc to 2.29, mpfr to 4.0.2 and llvm to 7.0.1 did not help...
The patch below makes it build, but trying to boot gives a kernel panic, so I guess this is not the right way.
Can anyone help?
Thanks
Oliver
a7e51dedd4/fix-arch.patch
linux-1026f584d33f27cf0101590a41d2d8a7e51dedd4/arch/arm/Makefile.orig 2019-04-09 18:02:25.564918359 +0200 +++ linux-1026f584d33f27cf0101590a41d2d8a7e51dedd4/arch/arm/Makefile 2019-04-09 18:13:01.159228340 +0200 @@ -64,7 +64,7 @@ # macro, but instead defines a whole series of macros which makes # testing for a specific architecture or later rather impossible. arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m -arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a) +arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 -march=armv7-a arch-$(CONFIG_CPU_32v6) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6) # Only override the compiler option if ARMv6. The ARMv6K extensions are # always available in ARMv7
On 07.04.19 19:18, lich000king wrote:
Hi again
It looks like this is a problem with gcc 8. The kernel won't build, neither with uglibc-ng nor with glibc selected. Also not with gcc version git.
gcc 7 builds fine and boots, (arm, raspberry pi 3 model b+, new appliance, kernel and bootloader updated as per my patch).
Build is possible on gcc 8 when choosing aarch64. Unfortunately, this does not boot (rainbow screen, can't ping).
Any ideas how to make gcc 8 work?
Oliver
On 18.03.19 21:36, lich000king wrote:
Hi all
When I try to build a new appliance for arm, raspberry pi 3 model b+ (just these two things selected in menuconfig, rev. f8d0864c18907ea4e21d0657b34869cda66dd452), I get some errors like this:
tmp/cckyIFbk.s: Assembler messages: /tmp/cckyIFbk.s:67: Error: selected processor does not support `dmb ish' in ARM
Looks like something goes wrong with some flags.
make.log:
https://mega.nz/#!BxJnwQgR!-7Gkl_WuBg5L_0CFNf8Jp43Fqduu2siI47gvocJIXys
I get no problem when choosing aarch64:
https://mega.nz/#!RtZzXagR!QIvUgjipkzg_y32zReKYjRPCKHfK7dy2bcGjw1vR4RE
Does somebody know if something changed in the definitions of these flags, maybe in a newer version of GCC, since that changed recently?
Don't really know where to start looking...
Cheers
Oliver