[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gm2] build failure
From: |
Gaius Mulley |
Subject: |
Re: [Gm2] build failure |
Date: |
10 Nov 2005 00:19:16 +0000 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 |
Waldek Hebisch <address@hidden> writes:
> Gaius Mulley wrote:
> > John B Wallace Jr <address@hidden> writes:
> >
> > > The build of the latest CVS sources (03 November 2005) failed on my system
> > > (SUSE Linux 9.3 / Athlon 64):
> > >
> > > ./xgm2 -Wnil -Wcase -Wbounds -Wreturn -g -funbounded-by-reference
> > > -Wverbose-unbounded -Wpim -Wpedantic-param-names -Wextended-opaque
> > > -Wpedantic-cast -c -B./stage1/gm2
> > > -I../../gcc-3.3.6/gcc/gm2/ulm-lib-gm2/std:../../gcc-3.3.6/gcc/gm2/ulm-lib-gm2/sys:../../gcc-3.3.6/gcc/gm2/gm2-libs
> > > ../../gcc-3.3.6/gcc/gm2/ulm-lib-gm2/std/TimeIO.mod
> > > -o gm2/ulm-lib-gm2/std/TimeIO.o
> > > ../../gcc-3.3.6/gcc/gm2/ulm-lib-gm2/std/TimeIO.mod: In function `RdTime':
> > > ../../gcc-3.3.6/gcc/gm2/ulm-lib-gm2/std/TimeIO.mod:367: internal compiler
> > > error: in classify_argument, at config/i386/i386.c:1883
> > > Please report this crash to the GNU Modula-2 mailing list <address@hidden>
> > > make[1]: *** [gm2/ulm-lib-gm2/std/TimeIO.o] Error 1
> > > make[1]: Leaving directory `/home/john/gm2/host-build/gcc'
> > > make: *** [all-gcc] Error 2
> > >
> >
> > Hi John,
> >
> > any chance you can email me the complete log, please. (Together with
> > the ./configure command),
> >
>
> this looks like the problem Gnu Pascal had: in 3.3.x series amd64 backend
> was unable to pass sets as arguments to functions/procedures. Namely,
> amd64 backend wants to pass arguments in register, and makes decision
> based on types. Unknown type gives the message above. 3.4.x series
> contains code to handle sets, but for 3.3.x Gnu Pascal still have to
> patch the backend.
>
> BTW. Set support in the backend is semi-broken: Gnu Pascal have a
> sizeable patch to the set code quite. Part of the patch is because
> Gnu Pascal want somewhat different represatation of sets (using
> fullwords) then provided by the backend, but the rest is due to bugs.
> I have tried to get fixes to set code into the mainline, but
> the part that chages functionality is outside.
>
> If GM2 wants to use backed set then coordinating with Gnu Pascal
> seems desirable -- it is nice to have common representation and
> common calling convention.
>
> *** gcc/config/i386/i386.c.orig Tue May 18 07:07:52 2004
> --- gcc/config/i386/i386.c Sun Oct 24 11:26:55 2004
> ***************
> *** 1879,1884 ****
> --- 1879,1909 ----
> }
> }
> }
> + else if (TREE_CODE (type) == SET_TYPE)
> + {
> + if (bytes <= 4)
> + {
> + classes[0] = X86_64_INTEGERSI_CLASS;
> + return 1;
> + }
> + else if (bytes <= 8)
> + {
> + classes[0] = X86_64_INTEGER_CLASS;
> + return 1;
> + }
> + else if (bytes <= 12)
> + {
> + classes[0] = X86_64_INTEGER_CLASS;
> + classes[1] = X86_64_INTEGERSI_CLASS;
> + return 2;
> + }
> + else
> + {
> + classes[0] = X86_64_INTEGER_CLASS;
> + classes[1] = X86_64_INTEGER_CLASS;
> + return 2;
> + }
> + }
> else
> abort ();
>
Hi Waldek,
many thanks for the patch, yes I think cooperation with GNU Pascal
would be excellent. Over the last few weeks I've been trying to
improve the dwarf2 support for Modula-2 in gm2, gcc and gdb (building
on your work in gdb). I suspect some of the work would be useful for
GNU Pascal (better subrange information and array bound information
etc). My work is still incomplete (but the patches for gdb-6.3 and
gcc-3.3.6 are in the gm2 tree (inside gm2/patches)).
Ironically this work was initiated because the ppc port was failing
to build the second generation of GNU Modula-2 and I wanted gdb
to understand the first and follow sets used within gm2 :-)
Hopefully I'll get to pop a few stack frames and return to this
once gdb/gm2/gcc dwarf2 is cleared up,
Thanks for the above patch!
Gaius