genattr: Internal compiler error in `read_rtx', at ../../src/gcc-2.95.2/gcc/rtl.c:888 - Processor M68040 - Operating system System V R3V8 Unix from Motorola
Manfred Hollstein
mhollstein@cygnus.com
Fri Dec 31 20:54:00 GMT 1999
Hi Chris,
I've been working on a Motorola "delta" box with R3V7 on an M68030 for
quite some time. IIRC, the last gcc/egcs, which I've built successfully
on that system, was egcs-1.1.2; then I changed positions and since then
I do not have access to it anymore.
Anyways, I have some recommendations, which you may find useful:
(1) configure the tools using "delta", not "delta-sysv3"! The former
is translated into "m68k-motorola-sysv" by config.sub, while the
latter goes into "m68k-motorola-sysv3" - do you see the small
difference? All the various config?* scripts check for the *-sysv
pattern, but the *-sysv3 will fail at least in libstdc++ (look
in libstdc++/configure.in)
(2) Do NOT tweak with the /lib/what-ever-the-cc-config-file-is-called
to put in information about GNU as etc. Just leave it as it is,
so that
- cc will use Motorola's native /bin/as and /bin/ld
- while gcc will find GNU as and ld anyway - provided you've been
using the SAME host/target and prefix arguments for configuring
gcc and binutils.
(3) I always used an environment variable "FP=" while building the libgcc1
part during stage1; this instructs the native cc to not generate any
FPU instructions - it was appropriate for me, as I had to support
systems without an FPU as well, and since libgcc1 is not multilib'ed
I chose the lowest common denominator...
Regarding your probs with genattr, as I wrote above, I haven't checked any
gcc since egcs-1.1.2 on this system, so I can only assume:
- either gcc-2.95.2 doesn't work on this machine anymore
- or you've done something wrong in setting up your environment
> ./genattr ../../src/gcc-2.95.2/gcc/config/m68k/m68k.md > tmp-attr.h
> switch format wrong in rtl.read_rtx(). format was: s.
> file position: 13096
> genattr: Internal compiler error in `read_rtx', at
> ../../src/gcc-2.95.2/gcc/rtl.c:888
In order to debug this, you can look at byte 13096 in gcc/config/m68k/m68k.md
and see how this relates with line 888 in gcc/rtl.c. If this doesn't show
up any obvious hints, you should probably fire up the debugger.
BTW, I still may have some delta related patches to the various programs
needed to build a GNU tool chain, which I haven't been able to contribute
so far; if you're interested, drop me a note and I'll send them to you.
In case you want to try egcs-1.1.2, you should still be able to get that
from
< ftp://egcs.cygnus.com/pub/egcs/releases/egcs-1.1.2/egcs-1.1.2.tar.gz >
You may also try to contact Philippe De Muyter < mailto:phdm@macqel.be >,
as he is still working on a similar system, AFAIK.
HTH.
l8er
manfred
On Fri, 3 December 1999, 18:00:34, Chris.Beere@cwcom.co.uk wrote:
> Hello,
> We are trying to upgrade our GNU C compiler from 2.4.5 to 2.95.2 as
> we could not get perl compiled and it was suggested our version is very old.
> The operating system is an old version of System V Unix R3V8 from Motorola,
> running on their delta platform which uses the M68040 processor.
> I have downloaded a number of utilities to make sure everything is as
> up-to-date as possible. Utilities are:-
>
> (hilda)# bison --version
> GNU Bison version 1.28
> ----------------------------------------------------------------------------
> ------------------------------------------------------------
> (hilda)# gawk --version
> GNU Awk 3.0.4
> Copyright (C) 1989, 1991-1999 Free Software Foundation.
>
> This program is free software; you can redistribute it and/or modify
> it under the terms of the GNU General Public License as published by
> the Free Software Foundation; either version 2 of the License, or
> (at your option) any later version.
>
> This program is distributed in the hope that it will be useful,
> but WITHOUT ANY WARRANTY; without even the implied warranty of
> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> GNU General Public License for more details.
>
> You should have received a copy of the GNU General Public License
> along with this program; if not, write to the Free Software
> Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
> ----------------------------------------------------------------------------
> ------------------------------------------------------------
> (hilda)# sed --version
> GNU sed version 3.02
>
> Copyright (C) 1998 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
> to the extent permitted by law.
> ----------------------------------------------------------------------------
> ------------------------------------------------------------
> (hilda)# make --version
> GNU Make version 3.78.1, by Richard Stallman and Roland McGrath.
> Built for m68k-motorola-sysv3
> Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
> Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.
> There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
> PARTICULAR PURPOSE.
>
> Report bugs to <bug-make@gnu.org>.
> ----------------------------------------------------------------------------
> ------------------------------------------------------------
> (hilda)# /usr/bin/gnucc --version
> gnucc: Extraneous argument to `--' option
> gnucc: No input files specified.
> (hilda)# /usr/bin/gnucc -v
> gcc version 2.4.5
> ----------------------------------------------------------------------------
> ------------------------------------------------------------
> (hilda)# as -V
> as: assembler - @(#)pass0.c 55.1 91/05/29
> Nonexistent file
> ----------------------------------------------------------------------------
> ------------------------------------------------------------
> (hilda)# ld -V
> ld : SYSTEM V/68 R3V7, Motorola C Issue 03.70 (91/07/26) : Version 1.8.2.1:
> 11/19/85
> ----------------------------------------------------------------------------
> ------------------------------------------------------------
> (hilda)# gas -v
> GNU assembler version 2.9.1 (delta-sysv3)
> ----------------------------------------------------------------------------
> ------------------------------------------------------------
> (hilda)# gld -V
> GNU ld version 2.9.1 (with BFD 2.9.1)
> Supported emulations:
> delta68
> ----------------------------------------------------------------------------
> ------------------------------------------------------------
> The configure command run in the build directory obj was:-
>
> ../src/*gcc-2.95.2/configure --host=delta-sysv3 \
> --enable-cpp --with-gnu-as --with-gnu-ld \
> --enable-languages=c++ >configure.log 2>&1 &
>
> The make command run in the build directory obj was:-
>
> make bootstrap >>make.log 2>&1 &
>
> The first time it failed trying to assemble the floating point instructions.
> I had my compiler configuration file set to use gas. It produced this
> error:-
> _ashrsi3
>
> _ashlsi3
>
> _divdf3
>
> /usr/tmp/ctmAAAa17388.s: Assembler messages:
> /usr/tmp/ctmAAAa17388.s:7: Error: Unknown operator -- statement `fdmov.d
> 8(%fp),
> %fp0' ignored
> /usr/tmp/ctmAAAa17388.s:8: Error: invalid instruction for this architecture;
> nee
> ds 68040 or 68060 -- statement `fddiv.d 16(%fp),%fp0' ignored
>
> make[2]: *** [libgcc1.a] Error 1
>
> make[2]: Leaving directory `/users2/gnu/gcc/obj/gcc'
>
> I changed my compiler configuration file to use as and it got to the
> internal compiler error. The output just before this follows:-
>
> (hilda)# make
> make[1]: Entering directory `/users2/gnu/gcc/obj/libiberty'
> make[2]: Entering directory `/users2/gnu/gcc/obj/libiberty/testsuite'
> make[2]: Nothing to be done for `all'.
> make[2]: Leaving directory `/users2/gnu/gcc/obj/libiberty/testsuite'
> make[1]: Leaving directory `/users2/gnu/gcc/obj/libiberty'
> make[1]: Entering directory `/users2/gnu/gcc/obj/texinfo'
> Making all in intl
> make[2]: Entering directory `/users2/gnu/gcc/obj/texinfo'
> Making all in intl
> make[3]: Entering directory `/users2/gnu/gcc/obj/texinfo/intl'
> make[3]: Nothing to be done for `all'.
> make[3]: Leaving directory `/users2/gnu/gcc/obj/texinfo/intl'
> Making all in lib
> make[3]: Entering directory `/users2/gnu/gcc/obj/texinfo/lib'
> make[3]: Nothing to be done for `all'.
> make[3]: Leaving directory `/users2/gnu/gcc/obj/texinfo/lib'
> Making all in makeinfo
> make[3]: Entering directory `/users2/gnu/gcc/obj/texinfo/makeinfo'
> make[3]: Nothing to be done for `all'.
> make[3]: Leaving directory `/users2/gnu/gcc/obj/texinfo/makeinfo'
> make[2]: Leaving directory `/users2/gnu/gcc/obj/texinfo'
> make[1]: Leaving directory `/users2/gnu/gcc/obj/texinfo'
> make[1]: Entering directory `/users2/gnu/gcc/obj/etc'
> make[1]: Nothing to be done for `all'.
> make[1]: Leaving directory `/users2/gnu/gcc/obj/etc'
> make[1]: Entering directory `/users2/gnu/gcc/obj/gcc'
> (cd intl && make all)
> make[2]: Entering directory `/users2/gnu/gcc/obj/gcc/intl'
> make[2]: Nothing to be done for `all'.
> make[2]: Leaving directory `/users2/gnu/gcc/obj/gcc/intl'
> ./genattr ../../src/gcc-2.95.2/gcc/config/m68k/m68k.md > tmp-attr.h
> switch format wrong in rtl.read_rtx(). format was: s.
> file position: 13096
> genattr: Internal compiler error in `read_rtx', at
> ../../src/gcc-2.95.2/gcc/rtl.
> c:888
> Please submit a full bug report.
> See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
> instructions.
> make[1]: *** [s-attr] Error 33
> make[1]: Leaving directory `/users2/gnu/gcc/obj/gcc'
> make: *** [all-gcc] Error 2
> (hilda)#
>
> I think I have supplied everything mentioned in the instruction at the
> specified web address except:-
>
> Preprocessed output of the source file that caused the compiler error
>
> How do I generate that?
>
> regards
>
> Chris Beere
>
> Phone: +44 (0) 1923 435817
> Fax: +44 (0) 1923 435370
> Email: chris.beere@cwcom.co.uk
>
>
More information about the Gcc-bugs
mailing list