Bug 21661

Summary: internal compiler error
Product: [Retired] Red Hat Linux Reporter: Matthew Galgoci <mgalgoci>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED RAWHIDE QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2000-12-04 13:06:01 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Matthew Galgoci 2000-12-03 22:20:48 UTC
I am trying to build the linux frame diverter utilities. The version that
I am trying to build is located here:

http://perso.wanadoo.fr/magpie/EtherDivert/divert-utils-0.30.tar.gz

I noticed that there was a problem with the way that the include files
were included, so I modified the package according to this patch:

--- divert-utils-0.30.new/Makefile.orig	Sun Dec  3 17:12:26 2000
+++ divert-utils-0.30.new/Makefile	Sun Dec  3 17:06:03 2000
@@ -6,7 +6,7 @@
 
 # Set the path to the Linux kernel includes, containing the diverter patch
 # ########################################################################
-LXDIR = /usr/src/linux
+LXDIR = /usr/include/linux
 
 
 ### DON'T CHANGE ANYTHING BEYOND THIS LINE ###
--- divert-utils-0.30.new/divert.c.orig	Sun Dec  3 17:14:59 2000
+++ divert-utils-0.30.new/divert.c	Sun Dec  3 17:05:33 2000
@@ -7,7 +7,7 @@
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <linux/sockios.h>
-#include <net/divert.h>
+#include <divert.h>
 #include <time.h>


I then proceeded to compile the application, and I provoked an internal 
error in gcc:

[root@razor divert-utils-0.30.new]# make
gcc -O -I/usr/include/linux   -c divert.c
In file included from /usr/include/sys/types.h:209,
                 from divert.c:7:
/usr/include/sys/select.h:63:15: warning: "FD_SET" redefined
/usr/include/linux/time.h:108:1: warning: this is the location of the
previous definition
/usr/include/sys/select.h:64:15: warning: "FD_CLR" redefined
/usr/include/linux/time.h:109:1: warning: this is the location of the
previous definition
/usr/include/sys/select.h:65:17: warning: "FD_ISSET" redefined
/usr/include/linux/time.h:110:1: warning: this is the location of the
previous definition
/usr/include/sys/select.h:66:16: warning: "FD_ZERO" redefined
/usr/include/linux/time.h:111:1: warning: this is the location of the
previous definition
In file included from /usr/include/bits/types.h:166,
                 from /usr/include/stdio.h:41,
                 from divert.c:2:
/usr/include/bits/pthreadtypes.h:48: parse error before `size_t'
/usr/include/bits/pthreadtypes.h:48: warning: no semicolon at end of struct
or union
/usr/include/bits/pthreadtypes.h:51: parse error before `__stacksize'
/usr/include/bits/pthreadtypes.h:51: warning: data definition has no type
or storage class
/usr/include/bits/pthreadtypes.h:52: warning: data definition has no type
or storage class
In file included from /usr/include/_G_config.h:45,
                 from /usr/include/libio.h:31,
                 from /usr/include/stdio.h:70,
                 from divert.c:2:
/usr/include/gconv.h:71: parse error before `size_t'
/usr/include/gconv.h:84: parse error before `size_t'
/usr/include/gconv.h:93: parse error before `size_t'
/usr/include/gconv.h:169: parse error before `size_t'
/usr/include/gconv.h:169: warning: no semicolon at end of struct or union
/usr/include/gconv.h:172: parse error before `}'
/usr/include/gconv.h:172: warning: data definition has no type or storage
class
In file included from /usr/include/libio.h:31,
                 from /usr/include/stdio.h:70,
                 from divert.c:2:
/usr/include/_G_config.h:47: field `__cd' has incomplete type
/usr/include/_G_config.h:50: field `__cd' has incomplete type
/usr/include/_G_config.h:53: Internal error: Segmentation fault.
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
make: *** [divert.o] Error 1


I have no idea if this is caused by broken-ass code in the frame diverter
utility or gcc, or a combination of both, so I am reporting this as a 
gcc bug because gcc tells me to.

The version of linux that I am compiling this against is the following:
Linux razor.meridian.redhat.com 2.4.0-test12pre2 #1 SMP Tue Nov 28 21:45:02
EST 2000 i686 unknow

The version of gcc that I am using is the following:
[root@razor divert-utils-0.30.new]# gcc --version
2.96

[root@razor divert-utils-0.30.new]# rpm -qa | grep gcc         
gcc-g77-2.96-56
gcc-2.96-56
gcc-chill-2.96-56
gcc-java-2.96-56
gcc-c++-2.96-56
gcc-objc-2.96-56

The version of glibc that I am using is the following:
[root@razor divert-utils-0.30.new]# rpm -q glibc
glibc-2.2-5


If you need more information, let me know.

Comment 1 Jakub Jelinek 2000-12-04 13:05:58 UTC
This is most probably already fixed, can you try gcc-2.96-64?

Comment 2 Jakub Jelinek 2000-12-19 11:13:58 UTC
gcc as of 2.96-69 will definitely not ICE on such input (worst case it
will print as last error "confused by earlier errors, bailing out" as
gcc 2.95.2 or egcs used to do in similar situations as well).