Attempting to compile the Snes9x emulator from source, version 132, causes the following output: g++ -fno-rtti -I/usr/X11R6/include -I/usr/local/include -c -O6 -mpentium -fno-exceptions -Wall -W -pedantic -pipe -fomit-frame-pointer -DMITSHM -Ii386 -I. -Iunzip -DJOYSTICK_SUPPORT -DZLIB -DNO_INLINE_SET_GET -DVAR_CYCLES -DDEBUGGER -DCPU_SHUTDOWN -DSPC700_SHUTDOWN -DUSE_DGA_EXTENSION -DUSE_VIDMODE_EXTENSION -DZSNES_FX -DEXECUTE_SUPERFX_PER_LINE -DUSE_THREADS -DSPC700_C -DNETPLAY_SUPPORT -DUNZIP_SUPPORT -DUSE_GLIDE -I/usr/include/glide unix/svga.cpp -o unix/svga.o In file included from snes9x.h:53, from unix/svga.cpp:54: port.h:67: warning: ISO C++ does not support `long long' In file included from unix/svga.cpp:727: /usr/include/asm/io.h: In function `unsigned char inb (short unsigned int)': /usr/include/asm/io.h:83: redefinition of `unsigned char inb (short unsigned int)' /usr/include/sys/io.h:45: `unsigned char inb (short unsigned int)' previously defined here /usr/include/asm/io.h: In function `unsigned char inb (short unsigned int)': /usr/include/asm/io.h:83: Internal error #19990919. /usr/include/asm/io.h:83: Internal compiler error in setup_vtbl_ptr, at ../gcc/cp/semantics.c:1203 Please submit a full bug report. See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions. make: *** [unix/svga.o] Error 1 Note: the binaries for 132 run, but have serious text problems.
The first problem is snes9x fault - C++ programs should not include kernel headers, asm/ and linux/ are not 100% ready for use in C++. There is sys/io.h header provided by glibc which should be used instead. But g++ should't ever die with ICEs on any input, so please run the above command with additional -v -save-temps options and enter into bugzilla the full output of that command and attach the resulting .ii file as attachment, so that I can debug it out. Thanks.
[spot@spot release]$ g++ -fno-rtti -I/usr/X11R6/include -I/usr/local/include -c -O6 -mpentium -fno-exceptions -Wall -W -pedantic -pipe -fomit-frame-pointer -DMITSHM -Ii386 -I. -Iunzip -DJOYSTICK_SUPPORT -DZLIB -DNO_INLINE_SET_GET -DVAR_CYCLES -DDEBUGGER -DCPU_SHUTDOWN -DSPC700_SHUTDOWN -DUSE_DGA_EXTENSION -DUSE_VIDMODE_EXTENSION -DZSNES_FX -DEXECUTE_SUPERFX_PER_LINE -DUSE_THREADS -DSPC700_C -DNETPLAY_SUPPORT -DUNZIP_SUPPORT -DUSE_GLIDE -I/usr/include/glide unix/svga.cpp -o unix/svga.o -v -save-temps g++: Warning: -pipe ignored since -save-temps specified Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs gcc version 2.96 20000731 (Red Hat Linux 7.0) /usr/lib/gcc-lib/i386-redhat-linux/2.96/cpp0 -lang-c++ -D__GNUG__=2 -v -I/usr/X11R6/include -I/usr/local/include -Ii386 -I. -Iunzip -I/usr/include/glide -D__GNUC__=2 -D__GNUC_MINOR__=96 -D__GNUC_PATCHLEVEL__=0 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__OPTIMIZE__ -Wall -W -pedantic -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__tune_pentium__ -DMITSHM -DJOYSTICK_SUPPORT -DZLIB -DNO_INLINE_SET_GET -DVAR_CYCLES -DDEBUGGER -DCPU_SHUTDOWN -DSPC700_SHUTDOWN -DUSE_DGA_EXTENSION -DUSE_VIDMODE_EXTENSION -DZSNES_FX -DEXECUTE_SUPERFX_PER_LINE -DUSE_THREADS -DSPC700_C -DNETPLAY_SUPPORT -DUNZIP_SUPPORT -DUSE_GLIDE unix/svga.cpp svga.ii GNU CPP version 2.96 20000731 (experimental) (cpplib) (i386 Linux/ELF) ignoring nonexistent directory "/usr/i386-redhat-linux/include" ignoring duplicate directory "/usr/local/include" #include "..." search starts here: #include <...> search starts here: /usr/X11R6/include /usr/local/include i386 . unzip /usr/include/glide /usr/include/g++-3 /usr/lib/gcc-lib/i386-redhat-linux/2.96/include /usr/include End of search list. In file included from /usr/include/signal.h:309, from unix/svga.cpp:47: /usr/include/bits/sigcontext.h:28:29: asm/sigcontext.h: No such file or directory In file included from /usr/include/bits/posix1_lim.h:126, from /usr/include/limits.h:30, from /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/limits.h:130, from /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/syslimits.h:7, from /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/limits.h:11, from port.h:42, from snes9x.h:52, from unix/svga.cpp:53: /usr/include/bits/local_lim.h:36:26: linux/limits.h: No such file or directory unix/svga.cpp:726:20: asm/io.h: No such file or directory
Created attachment 4593 [details] Output as requested
I'm a little bit confused because youre attached svga.ii does not include asm/io.h at all and compiles just fine. Have you changed anything in the source to make it compile before? Also, the above g++ error/warning output seems unrelated to any of those two other as well - that looks like if you had no valid /usr/include/linux and /usr/include/asm headers (either not installed kernel-headers, symlinks pointing nowhere or whatever. Could you please try to post svga.ii which triggers the internal error above (ie. #19990919)?
Closing, if you'll have svga.ii which actually triggers the ICE, please reopen the bug.