Port-amiga archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: GCC8 v.s. amiga
Hi Rin!
Thanks for your detailed answer.
On 6/8/20 2:52 AM, Rin Okuyama wrote:
> Hi. Sorry for the late reply. Some updates:
>
> On 2020/06/04 19:06, Rin Okuyama wrote:
>> For my Amiga A1200 with 68060, kernel built by GCC8 does not work.
>> It randomly crashes, and I could not enter DDB nor even obtain
>> backtrace; it suddenly freezes.
>
> I forgot to note an important information: ``randomly'' here means when
> kernel freezes is almost unpredictable. Some time, it crashes just after
> exec /sbin/init, but other time, it freezes after survival of 12 hours in
> multiuser with heavy load!
>
> When kern_tc.o is built by GCC7, I've never observed such a freeze.
> Uptime exceeds few days at least.
>
> This is why everything takes a loooong time ;).
OK.
> On 2020/06/04 19:11, John Paul Adrian Glaubitz wrote:
>> Do you have the possibility to test GCC 10? The m68k backend has been
>> partially rewritten for version 10 which has fixed some bugs in the
>> code generation.
>
> Yeah, I donated that campaign a little :).
Thanks.
>> At least on Debian, the kernel built with GCC 10 boots fine on my
>> Amiga 4000 and qemu-m68k.
>
> Unfortunately, GCC10 (and also 9 and 8) crashes by ICE when building our
> kernel:
>
> | # compile A1200/kern_tc.o
> | ...
> | during RTL pass: expand
> | In file included from ../../../../sys/param.h:145,
> | from ../../../../kern/kern_tc.c:49:
> | ../../../../sys/time.h: In function 'tc_windup':
> | ../../../../sys/time.h:113:11: internal compiler error: Segmentation fault
> | 113 | bt->frac += x;
> | | ^~
> | 0xe76208 crash_signal
> | /build/work/gcc-10.1.0/gcc/toplev.c:328
> | Please submit a full bug report,
> | ...
>
> cf.: https://nxr.netbsd.org/xref/src/sys/sys/time.h#113
>
> I guess why Linux builds and ours does not is:
>
> (1) Linux #undef STRICT_ALIGNMENT and friends, but we do not
> (2) We #define BIGGEST_ALIGNMENT 64, but Linux does not
>
> For GCC in our local tree, we worked around for this:
>
> http://cvsweb.netbsd.org/bsdweb.cgi/src/external/gpl3/gcc/dist/gcc/expr.c#rev1.2
>
> | Module Name: src
> | Committed By: chs
> | Date: Sun Oct 9 21:17:34 UTC 2011
> |
> | Modified Files:
> | src/external/gpl3/gcc/dist/gcc: expr.c
> |
> | Log Message:
> | in emit_push_insn(), ignore alignment if we don't have a type.
> | works around a gcc ICE on m68k. from mrg.
> |
> | To generate a diff of this commit:
> | cvs rdiff -u -r1.1.1.1 -r1.2 src/external/gpl3/gcc/dist/gcc/expr.c
>
> If this patch applied, GCC10 does build our kernel, but
>
> (a) Kernel built by GCC8 with kern_tc.o replaced by that with GCC10
> ---> eventually crashes as before
>
> (b) Entire kernel built by GCC10
> ---> does not boot singleuser
Could you please report these issues upstream?
Thanks,
Adrian
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glaubitz%debian.org@localhost
`. `' Freie Universitaet Berlin - glaubitz%physik.fu-berlin.de@localhost
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
Home |
Main Index |
Thread Index |
Old Index