This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

gcc-2.95.3: internal compiler error during libojc compilation


- --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 -------


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]