This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
gcc-2.95.3: internal compiler error during libojc compilation
- To: gcc at gcc dot gnu dot org
- Subject: gcc-2.95.3: internal compiler error during libojc compilation
- From: Yann Droneaud <yann dot droneaud at iupmime dot univ-lemans dot fr>
- Date: Thu, 22 Mar 2001 09:58:04 +0100 (MET)
- Cc: yann dot droneaud at iupmime dot univ-lemans dot fr, gcc-bugs at gcc dot gnu dot org
- --Mob_of_Kangaroos_623_000
Content-Type: TEXT/plain; charset=us-ascii
Content-MD5: bG2uPk+3utJI/IE7tzUArg==
I try to compile gcc-2.95.3 and I get this:
make[1]: Entering directory
`/tmp/build/checkout/gcc/sparc-sun-solaris2.7/libobjc'
/tmp/build/checkout/gcc/gcc/xgcc -B/tmp/build/checkout/gcc/gcc/
- -B/iup/bigiup1/yann_droneaud/sparc-sun-solaris2.7/sparc-sun-solaris2.7/bin/
- -fgnu-runtime -c -o linking.o -I. -I. -g -O2 -DIN_GCC -I./objc -I./../../gcc
- -I./../../gcc/config -I../../gcc -I./../../include linking.m
In file included from objc/Object.h:30,
from linking.m:28:
objc/objc.h:51: parse error before `const'
xgcc: Internal compiler error: program cc1obj got fatal signal 11
make[1]: *** [linking.o] Error 1
make[1]: Leaving directory
`/tmp/build/checkout/gcc/sparc-sun-solaris2.7/libobjc'
make: *** [all-target-libobjc] Error 2
The configuration:
2x Ultra Sparc
Solaris 2.7
binutils 2.10.1.0.2
gcc 2.95.2
Package was configured with:
./configure --prefix=/iup/bigiup1/yann_droneaud/sparc-sun-solaris2.7
- --with-gnu-ld --with-gnu-as --enable-shared --enable-objc-gc
- --enable-java-gc=boehm --enable-haifa --enable-threads=posix
Attached a verbose compilation and the preprocessed file.
GDB log:
p9937@lucke:/tmp/build/checkout/gcc/sparc-sun-solaris2.7/libobjc $ gdb /tmp/buil
d/checkout/gcc/gcc/cc1obj core
GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.7"...
Core was generated by `/tmp/build/checkout/gcc/gcc/cc1obj /var/tmp/cc5kfB19.mi -
quiet -dumpbase linkin'.
Program terminated with signal 11, Segmentation Fault.
Reading symbols from /usr/lib/libc.so.1...done.
Loaded symbols for /usr/lib/libc.so.1
Reading symbols from /usr/lib/libdl.so.1...done.
Loaded symbols for /usr/lib/libdl.so.1
Reading symbols from /usr/platform/SUNW,Ultra-250/lib/libc_psr.so.1...done.
Loaded symbols for /usr/platform/SUNW,Ultra-250/lib/libc_psr.so.1
#0 split_specs_attrs (specs_attrs=0x25bd80, declspecs=0x21fadc,
prefix_attributes=0x21fae0) at c-common.c:1006
1006 a = TREE_CHAIN (a);
(gdb) bt
#0 split_specs_attrs (specs_attrs=0x25bd80, declspecs=0x21fadc,
prefix_attributes=0x21fae0) at c-common.c:1006
#1 0x198e30 in yyparse () at objc-parse.y:925
#2 0x1369c in compile_file (name=0xffbef0cf "/var/tmp/cc5kfB19.mi")
at toplev.c:3266
#3 0x17438 in main (argc=12, argv=0xffbeef44) at toplev.c:5450
(gdb) list
1001 TREE_CHAIN (a) = TREE_PURPOSE (t);
1002 a = TREE_PURPOSE (t);
1003 }
1004 /* More attrs can be linked here, move A to the end. */
1005 while (TREE_CHAIN (a) != NULL_TREE)
1006 a = TREE_CHAIN (a);
1007 }
1008 }
1009
1010 /* Terminate the lists. */
(gdb) print a
$1 = 0x0
(gdb)
- --
Yann Droneaud <yann.droneaud@iupmime.univ-lemans.fr>
- --Mob_of_Kangaroos_623_000
Content-Type: TEXT/plain; name="linking.log"; charset=us-ascii; x-unix-mode=0644
Content-Description: linking.log
Content-MD5: l548OJ4Tt6swWaML6svdag==
Reading specs from /tmp/build/checkout/gcc/gcc/specs
gcc version 2.95.3 20010315 (release)
/tmp/build/checkout/gcc/gcc/cpp0 -lang-objc -v -I. -I. -I./objc -I./../../gcc -I./../../gcc/config -I../../gcc -I./../../include -isystem /iup/bigiup1/yann_droneaud/sparc-sun-solaris2.7/sparc-sun-solaris2.7/bin/include -isystem /tmp/build/checkout/gcc/gcc/include -D__OBJC__ -D__GNUC__=2 -D__GNUC_MINOR__=95 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__OPTIMIZE__ -g -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) -DIN_GCC linking.m /var/tmp/cc5kfB19.mi
GNU CPP version 2.95.3 20010315 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
.
objc
../../gcc
../../gcc/config
../../gcc
../../include
/tmp/build/checkout/gcc/gcc/include
/iup/bigiup1/yann_droneaud/sparc-sun-solaris2.7/include
/iup/bigiup1/yann_droneaud/sparc-sun-solaris2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.3/../../../../sparc-sun-solaris2.7/include
/iup/bigiup1/yann_droneaud/sparc-sun-solaris2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.3/include
/usr/include
End of search list.
The following default directories have been omitted from the search path:
/iup/bigiup1/yann_droneaud/sparc-sun-solaris2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.3/../../../../include/g++-3
End of omitted list.
/tmp/build/checkout/gcc/gcc/cc1obj /var/tmp/cc5kfB19.mi -quiet -dumpbase linking.m -g -O2 -version -fgnu-runtime -lang-objc -o /var/tmp/ccUWBr1d.s
GNU Obj-C version 2.95.3 20010315 (release) (sparc-sun-solaris2.7) compiled by GNU C version 2.95.3 20010315 (release).
In file included from objc/Object.h:30,
from linking.m:28:
objc/objc.h:51: parse error before `const'
xgcc: Internal compiler error: program cc1obj got fatal signal 11
- --Mob_of_Kangaroos_623_000
Content-Type: TEXT/plain; name="linking.mii"; charset=us-ascii; x-unix-mode=0644
Content-Description: linking.mii
Content-MD5: d/b4C4liTqNLmelLDJbTOA==
# 1 "linking.m"
# 1 "objc/Object.h" 1
# 1 "objc/objc.h" 1
# 1 "/tmp/build/checkout/gcc/gcc/include/stddef.h" 1 3
# 61 "/tmp/build/checkout/gcc/gcc/include/stddef.h" 3
typedef int ptrdiff_t;
typedef unsigned int size_t;
typedef long int wchar_t;
typedef unsigned int wint_t;
# 317 "/tmp/build/checkout/gcc/gcc/include/stddef.h" 3
# 34 "objc/objc.h" 2
typedef unsigned char BOOL;
typedef const struct objc_selector
{
void *sel_id;
const char *sel_types;
} *SEL;
inline static BOOL
sel_eq (SEL s1, SEL s2)
{
if (s1 == 0 || s2 == 0)
return s1 == s2;
else
return s1->sel_id == s2->sel_id;
}
typedef struct objc_object {
struct objc_class* class_pointer;
} *id;
typedef id (*IMP)(id, SEL, ...);
typedef char *STR;
typedef struct objc_class *MetaClass;
typedef struct objc_class *Class;
struct objc_class {
MetaClass class_pointer;
struct objc_class* super_class;
const char* name;
long version;
unsigned long info;
long instance_size;
struct objc_ivar_list* ivars;
struct objc_method_list* methods;
struct sarray * dtable;
struct objc_class* subclass_list;
struct objc_class* sibling_class;
struct objc_protocol_list *protocols;
void* gc_object_type;
};
# 140 "objc/objc.h"
@class Protocol;
typedef void* retval_t;
typedef void(*apply_t)(void);
typedef union {
char *arg_ptr;
char arg_regs[sizeof (char*)];
} *arglist_t;
IMP objc_msg_lookup(id receiver, SEL op);
# 30 "objc/Object.h" 2
# 1 "objc/typedstream.h" 1
# 1 "objc/hash.h" 1
# 1 "/tmp/build/checkout/gcc/gcc/include/stddef.h" 1 3
# 342 "/tmp/build/checkout/gcc/gcc/include/stddef.h" 3
# 31 "objc/hash.h" 2
typedef struct cache_node
{
struct cache_node *next;
const void *key;
void *value;
} *node_ptr;
typedef unsigned int (*hash_func_type)(void *, const void *);
typedef int (*compare_func_type)(const void *, const void *);
typedef struct cache
{
node_ptr *node_table;
unsigned int size;
unsigned int used;
unsigned int mask;
unsigned int last_bucket;
hash_func_type hash_func;
compare_func_type compare_func;
} *cache_ptr;
extern cache_ptr module_hash_table, class_hash_table;
cache_ptr hash_new (unsigned int size,
hash_func_type hash_func,
compare_func_type compare_func);
void hash_delete (cache_ptr cache);
void hash_add (cache_ptr *cachep, const void *key, void *value);
void hash_remove (cache_ptr cache, const void *key);
node_ptr hash_next (cache_ptr cache, node_ptr node);
void *hash_value_for_key (cache_ptr cache, const void *key);
BOOL hash_is_key_in_hash (cache_ptr cache, const void *key);
static inline unsigned int
hash_ptr (cache_ptr cache, const void *key)
{
return ((size_t)key / sizeof (void *)) & cache->mask;
}
static inline unsigned int
hash_string (cache_ptr cache, const void *key)
{
unsigned int ret = 0;
unsigned int ctr = 0;
while (*(char*)key) {
ret ^= *(char*)key++ << ctr;
ctr = (ctr + 1) % sizeof (void *);
}
return ret & cache->mask;
}
static inline int
compare_ptrs (const void *k1, const void *k2)
{
return !(k1 - k2);
}
static inline int
compare_strings (const void *k1, const void *k2)
{
if (k1 == k2)
return 1;
else if (k1 == 0 || k2 == 0)
return 0;
else
return !strcmp (k1, k2);
}
# 31 "objc/typedstream.h" 2
# 1 "/usr/include/stdio.h" 1 3
#pragma ident "@(#)stdio.h 1.69 98/07/13 SMI"
# 1 "/usr/include/sys/feature_tests.h" 1 3
#pragma ident "@(#)feature_tests.h 1.17 97/12/04 SMI"
# 1 "/usr/include/sys/isa_defs.h" 1 3
#pragma ident "@(#)isa_defs.h 1.16 99/05/25 SMI"
# 218 "/usr/include/sys/isa_defs.h" 3
# 316 "/usr/include/sys/isa_defs.h" 3
# 15 "/usr/include/sys/feature_tests.h" 2 3
# 22 "/usr/include/stdio.h" 2 3
# 1 "/usr/include/sys/va_list.h" 1 3
#pragma ident "@(#)va_list.h 1.11 97/11/22 SMI"
typedef void *__va_list;
# 23 "/usr/include/stdio.h" 2 3
# 1 "/usr/include/stdio_tag.h" 1 3
#pragma ident "@(#)stdio_tag.h 1.3 98/04/20 SMI"
typedef struct __FILE __FILE;
# 24 "/usr/include/stdio.h" 2 3
# 1 "/usr/include/stdio_impl.h" 1 3
#pragma ident "@(#)stdio_impl.h 1.7 98/04/17 SMI"
typedef int ssize_t;
# 36 "/usr/include/stdio_impl.h" 3
struct __FILE
{
ssize_t _cnt;
unsigned char *_ptr;
unsigned char *_base;
unsigned char _flag;
unsigned char _file;
unsigned __orientation:2;
unsigned __filler:6;
};
# 25 "/usr/include/stdio.h" 2 3
typedef __FILE FILE;
typedef long long __longlong_t;
typedef long off_t;
typedef __longlong_t off64_t;
typedef long fpos_t;
typedef __longlong_t fpos64_t;
extern FILE __iob[20 ];
extern unsigned char _sibuf[], _sobuf[];
# 227 "/usr/include/stdio.h" 3
extern unsigned char *_bufendtab[];
extern FILE *_lastbuf;
# 257 "/usr/include/stdio.h" 3
extern int remove(const char *);
extern int rename(const char *, const char *);
extern FILE *tmpfile(void);
extern char *tmpnam(char *);
extern int fclose(FILE *);
extern int fflush(FILE *);
extern FILE *fopen(const char *, const char *);
extern FILE *freopen(const char *, const char *, FILE *);
extern void setbuf(FILE *, char *);
extern void setbuffer(FILE *, char *, size_t);
extern int setlinebuf(FILE *);
extern int setvbuf(FILE *, char *, int, size_t);
extern int fprintf(FILE *, const char *, ...);
extern int fscanf(FILE *, const char *, ...);
extern int printf(const char *, ...);
extern int scanf(const char *, ...);
extern int snprintf(char *, size_t, const char *, ...);
extern int sprintf(char *, const char *, ...);
extern int sscanf(const char *, const char *, ...);
extern int vfprintf(FILE *, const char *, __va_list);
extern int vprintf(const char *, __va_list);
extern int vsnprintf(char *, size_t, const char *, __va_list);
extern int vsprintf(char *, const char *, __va_list);
extern int fgetc(FILE *);
extern char *fgets(char *, int, FILE *);
extern int fputc(int, FILE *);
extern int fputs(const char *, FILE *);
extern int getc(FILE *);
extern int getchar(void);
extern char *gets(char *);
extern int putc(int, FILE *);
extern int putchar(int);
extern int puts(const char *);
extern int ungetc(int, FILE *);
extern size_t fread(void *, size_t, size_t, FILE *);
extern size_t fwrite(const void *, size_t, size_t, FILE *);
extern int fgetpos(FILE *, fpos_t *);
extern int fseek(FILE *, long, int);
extern int fsetpos(FILE *, const fpos_t *);
extern long ftell(FILE *);
extern void rewind(FILE *);
extern void clearerr(FILE *);
extern int feof(FILE *);
extern int ferror(FILE *);
extern void perror(const char *);
extern int __filbuf(FILE *);
extern int __flsbuf(int, FILE *);
extern FILE *fdopen(int, const char *);
extern char *ctermid(char *);
extern int fileno(FILE *);
# 358 "/usr/include/stdio.h" 3
extern FILE *popen(const char *, const char *);
extern char *cuserid(char *);
extern char *tempnam(const char *, const char *);
extern int getopt(int, char *const *, const char *);
extern int getsubopt(char **, char *const *, char **);
extern char *optarg;
extern int optind, opterr, optopt;
extern int getw(FILE *);
extern int putw(int, FILE *);
extern int pclose(FILE *);
extern int fseeko(FILE *, off_t, int);
extern off_t ftello(FILE *);
extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern FILE *tmpfile64(void);
extern int fgetpos64(FILE *, fpos64_t *);
extern int fsetpos64(FILE *, const fpos64_t *);
extern int fseeko64(FILE *, off64_t, int);
extern off64_t ftello64(FILE *);
# 515 "/usr/include/stdio.h" 3
# 567 "/usr/include/stdio.h" 3
# 32 "objc/typedstream.h" 2
typedef int (*objc_typed_read_func)(void*, char*, int);
typedef int (*objc_typed_write_func)(void*, const char*, int);
typedef int (*objc_typed_flush_func)(void*);
typedef int (*objc_typed_eof_func)(void*);
typedef struct objc_typed_stream {
void* physical;
cache_ptr object_table;
cache_ptr stream_table;
cache_ptr class_table;
cache_ptr object_refs;
int mode;
int type;
int version;
int writing_root_p;
objc_typed_read_func read;
objc_typed_write_func write;
objc_typed_eof_func eof;
objc_typed_flush_func flush;
} TypedStream;
int objc_write_type (TypedStream* stream, const char* type, const void* data);
int objc_read_type (TypedStream* stream, const char* type, void* data);
int objc_write_types (TypedStream* stream, const char* type, ...);
int objc_read_types (TypedStream* stream, const char* type, ...);
int objc_write_object_reference (TypedStream* stream, id object);
int objc_write_root_object (TypedStream* stream, id object);
long objc_get_stream_class_version (TypedStream* stream, Class class);
int objc_write_array (TypedStream* stream, const char* type,
int count, const void* data);
int objc_read_array (TypedStream* stream, const char* type,
int count, void* data);
int objc_write_object (TypedStream* stream, id object);
int objc_read_object (TypedStream* stream, id* object);
TypedStream* objc_open_typed_stream (FILE* physical, int mode);
TypedStream* objc_open_typed_stream_for_file (const char* file_name, int mode);
void objc_close_typed_stream (TypedStream* stream);
BOOL objc_end_of_typed_stream (TypedStream* stream);
void objc_flush_typed_stream (TypedStream* stream);
# 31 "objc/Object.h" 2
@interface Object
{
Class isa;
}
+ initialize;
- - init;
+ new;
+ alloc;
- - free;
- - copy;
- - shallowCopy;
- - deepen;
- - deepCopy;
- - (Class)class;
- - (Class)superClass;
- - (MetaClass)metaClass;
- - (const char *)name;
- - self;
- - (unsigned int)hash;
- - (BOOL)isEqual:anObject;
- - (int)compare:anotherObject;
- - (BOOL)isMetaClass;
- - (BOOL)isClass;
- - (BOOL)isInstance;
- - (BOOL)isKindOf:(Class)aClassObject;
- - (BOOL)isMemberOf:(Class)aClassObject;
- - (BOOL)isKindOfClassNamed:(const char *)aClassName;
- - (BOOL)isMemberOfClassNamed:(const char *)aClassName;
+ (BOOL)instancesRespondTo:(SEL)aSel;
- - (BOOL)respondsTo:(SEL)aSel;
- - (BOOL)conformsTo:(Protocol*)aProtocol;
+ (IMP)instanceMethodFor:(SEL)aSel;
- - (IMP)methodFor:(SEL)aSel;
+ (struct objc_method_description *)descriptionForInstanceMethod:(SEL)aSel;
- - (struct objc_method_description *)descriptionForMethod:(SEL)aSel;
- - perform:(SEL)aSel;
- - perform:(SEL)aSel with:anObject;
- - perform:(SEL)aSel with:anObject1 with:anObject2;
- - (retval_t)forward:(SEL)aSel :(arglist_t)argFrame;
- - (retval_t)performv:(SEL)aSel :(arglist_t)argFrame;
+ poseAs:(Class)aClassObject;
- - (Class)transmuteClassTo:(Class)aClassObject;
- - subclassResponsibility:(SEL)aSel;
- - notImplemented:(SEL)aSel;
- - shouldNotImplement:(SEL)aSel;
- - doesNotRecognize:(SEL)aSel;
- - error:(const char *)aString, ...;
+ (int)version;
+ setVersion:(int)aVersion;
+ (int)streamVersion: (TypedStream*)aStream;
- - read: (TypedStream*)aStream;
- - write: (TypedStream*)aStream;
- - awake;
@end
# 28 "linking.m" 2
# 1 "objc/NXConstStr.h" 1
@interface NXConstantString: Object
{
char *c_string;
unsigned int len;
}
- -(const char *) cString;
- -(unsigned int) length;
@end
# 29 "linking.m" 2
void __objc_linking (void)
{
[Object name];
[NXConstantString name];
}
- --Mob_of_Kangaroos_623_000--
------- End of forwarded message -------