make: *** [function] Error 1
Hi Leute, versuche gerade, das Fraktalprog eyefract zu kompilieren. ./configure funktioniert auch problemlos, aber beim Aufruf von make kommt folgendes: zeus:/opt/programme/eyefract # make c++ -o complex.o -I/usr/X11R6/include -Wall -O3 -ggdb -c complex.cpp c++ -o function.o -I/usr/X11R6/include -Wall -O3 -ggdb -c function.cpp function.cpp:409: Internal compiler error in `output_die', at dwarf2out.c:5433 Please submit a full bug report. See URL:http://www.gnu.org/software/gcc/bugs.html for instructions. make: *** [function] Error 1 gcc -v ist gcc version 2.95.3 20010315 (SuSE) Jemand eine Idee, wo man mit der Fehlersuche anfangen könnte? Das Makefile sieht so aus: # Generated automatically from Makefile.in by configure. CC = c++ #gcc VER = 0.6.0 DEBUG = -ggdb FLAGS = -I/usr/X11R6/include -Wall -O3 $(DEBUG) #-I/usr/X11R6/include -Wall -O3 $(DEBUG) X_LIBS = -L/usr/X11R6/lib -lXm #-L/usr/X11R6/lib LIBST = -lm -ljpeg #-lm -lSM -lICE -lXm -lXt -lX11 -ljpeg LIBS = $(X_LIBS) $(LIBST) CFLAGS = $(FLAGS) -c OBJS = complex \ function \ state \ eyemap \ xstate \ pane \ dlgpreview \ dlgabout COBJS = complex.o \ function.o \ state.o \ eyemap.o \ xstate.o \ pane.o \ dlgpreview.o \ dlgabout.o all: $(OBJS) eyefract.cpp eyefract.h $(CC) $(LIBS) $(FLAGS) -o eyefract eyefract.cpp $(COBJS) $(OBJS) : $(CC) -o $@.o $(CFLAGS) $@.cpp clean: rm -f a.out core eyefract *~ config.* *.o Viele Grüße Peter Bergmann
Peter Bergmann [30 Jun 2002 19:36:36 +0200]:
function.cpp:409: Internal compiler error in `output_die', at dwarf2out.c:5433 Please submit a full bug report. See URL:http://www.gnu.org/software/gcc/bugs.html for
Jemand eine Idee, wo man mit der Fehlersuche anfangen könnte? Das Makefile sieht so aus:
Ja, im Compiler ;-) Die Meldung sagt dir doch, dass gcc auf einen internen Fehler läuft, was ist daran so schwer zu verstehen?
FLAGS = -I/usr/X11R6/include -Wall -O3 $(DEBUG) ^^^ -O3 taugt *nichts*, das schaltet nur _in C_ das automatische Inlinen an und das führt bei ia32 in den allermeisten Fällen zu schlechterem Code. Bei C++ ist das Ganze erst recht überflüssig.
Daher grundsätzlich -O2 verwenden. In deinem Fall würde ich mal versuchsweise auf -O1 oder -O0 gehen und dann nur dieses eine Objekt übersetzen lassen ('make function.o'). Ansonsten findest du unter ftp.gwdgde.de/pub/linux/suse/people/aj/Current_Toolchain/i386 aktuelle Versionen von gcc 3.1.1, binutils, glibc und ein Compatibilitäts-Paket. Chancen sind gut, dass der gcc 3.1 mit dem Code klarkommt, zumindest dass er dir eine vernünftige Fehlermeldung liefert. Philipp
participants (2)
-
Peter Bergmann
-
Philipp Thomas