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]

collect2 compiles C with g77 !


On m68k-motorola-sysv all g77/execute tests fail because collect2 tries
to compile a c-program with a fortran compiler :).  Details using -v and
-Wl,-debug options follow.

Does someone know the best way to fix that ?  I can think of at least three :
	1. Make collect2 always invoke gcc
	2. Make g77 recognize .c suffix and invoke cc1
	3. Make collect2 directly generate assembler, not C.

Philippe

Reading specs from /usr/gnu/tmp/egcs/gcc/specs
gcc version egcs-2.90.16 971105 (gcc2-970802 experimental)
 /usr/gnu/tmp/egcs/gcc/f771 /usr/gnu/tmp/egcs-971105/gcc/testsuite/g77.f-torture/execute/971102-1.f -fset-g77-defaults -quiet -dumpbase 971102-1.f -O0 -w -version -fversion -o /usr/tmp/cca17627.s
GNU F77 version egcs-2.90.16 971105 (gcc2-970802 experimental) (m68k-motorola-sysv) compiled by GNU C version egcs-2.90.16 971105 (gcc2-970802 experimental).
GNU Fortran Front End version 0.5.22-19970929
 as -o /usr/tmp/cca176271.o /usr/tmp/cca17627.s
 /usr/gnu/tmp/egcs/gcc/ld -o /tmp/971102-1.x /usr/gnu/tmp/egcs/gcc/crt0.o -L/usr/gnu/tmp/egcs/gcc -L/usr/local/m68k-motorola-sysv/lib -L/usr/local/lib /usr/tmp/cca176271.o -debug -lf2c -lm -lgcc -lc881 -lgcc
collect2 version egcs-2.90.16 971105 (gcc2-970802 experimental) (68k, SGS/AT&T sysV68 syntax)
ld_file_name        = /usr/local/bin/ld
c_file_name         = /usr/gnu/tmp/egcs/gcc/g77
nm_file_name        = /bin/nm
strip_file_name     = /usr/local/m68k-motorola-sysv/bin/strip
c_file              = /usr/tmp/cca17630.c
o_file              = /usr/tmp/cca17630.o
COLLECT_NAMES       = /usr/gnu/tmp/egcs/gcc/ld
COLLECT_GCC_OPTIONS = '-B/usr/gnu/tmp/egcs/gcc/' '-v' '-w' '-O0' '-o' '/tmp/971102-1.x'
COLLECT_GCC         = /usr/gnu/tmp/egcs/gcc/g77
COMPILER_PATH       = /usr/gnu/tmp/egcs/gcc/m68k-motorola-sysv/egcs-2.90.16/:/usr/gnu/tmp/egcs/gcc/:/usr/local/lib/gcc-lib/m68k-motorola-sysv/egcs-2.90.16/:/usr/local/lib/gcc-lib/m68k-motorola-sysv/:/usr/lib/gcc/m68k-motorola-sysv/egcs-2.90.16/:/usr/lib/gcc/m68k-motorola-sysv/:/usr/local/m68k-motorola-sysv/bin/m68k-motorola-sysv/egcs-2.90.16/:/usr/local/m68k-motorola-sysv/bin/
LIBRARY_PATH        = /usr/gnu/tmp/egcs/gcc/m68k-motorola-sysv/egcs-2.90.16/:/usr/gnu/tmp/egcs/gcc/:/usr/local/lib/gcc-lib/m68k-motorola-sysv/egcs-2.90.16/:/usr/lib/gcc/m68k-motorola-sysv/egcs-2.90.16/:/usr/local/m68k-motorola-sysv/lib/m68k-motorola-sysv/egcs-2.90.16/:/usr/local/m68k-motorola-sysv/lib/:/usr/local/lib/m68k-motorola-sysv/egcs-2.90.16/:/usr/local/lib/:/lib/m68k-motorola-sysv/egcs-2.90.16/:/lib/:/usr/lib/m68k-motorola-sysv/egcs-2.90.16/:/usr/lib/

/usr/local/bin/ld -o /tmp/971102-1.x /usr/gnu/tmp/egcs/gcc/crt0.o -L/usr/gnu/tmp/egcs/gcc -L/usr/local/m68k-motorola-sysv/lib -L/usr/local/lib /usr/tmp/cca176271.o -lf2c -lm -lgcc -lc881 -lgcc
 /bin/nm -p /tmp/971102-1.x

nm output with constructors/destructors.

0 constructor(s) found
0 destructor(s)  found
[Leaving /tmp/971102-1.x]

========== output_file = /tmp/971102-1.x, c_file = /usr/tmp/cca17630.c
#ifdef __cplusplus
extern "C" {
#endif
typedef void entry_pt();

extern void *x1 __asm__ ("_GLOBAL__F___bb_exit_func");
extern void *x2 __asm__ ("_GLOBAL__F___fixunsdfdi");
extern void *x3 __asm__ ("_GLOBAL__F___umoddi3");
extern void *x4 __asm__ ("_GLOBAL__F__exit_dummy_decl");
extern void *x5 __asm__ ("_GLOBAL__F___udivdi3");
extern void *x6 __asm__ ("_GLOBAL__F___do_global_dtors");
extern void *x7 __asm__ ("_GLOBAL__F___fixdfdi");
extern void *x8 __asm__ ("_GLOBAL__F___floatdidf");
	static void *frame_table[] = {
		&x1,
		&x2,
		&x3,
		&x4,
		&x5,
		&x6,
		&x7,
		&x8,
	0
};
extern void __register_frame_table (void *);
extern void __deregister_frame (void *);
static void reg_frame () {
	__register_frame_table (frame_table);
	}
static void dereg_frame () {
	__deregister_frame (frame_table);
	}

entry_pt * __CTOR_LIST__[] = {
	(entry_pt *) 1,
	reg_frame,
	0
};


entry_pt * __DTOR_LIST__[] = {
	(entry_pt *) 1,
	dereg_frame,
	0
};

extern entry_pt __main;
entry_pt *__main_reference = __main;

#ifdef __cplusplus
}
#endif
========== end of c_file

/usr/gnu/tmp/egcs/gcc/g77 -c -o /usr/tmp/cca17630.o -fno-exceptions /usr/tmp/cca17630.c
/usr/tmp/cca17630.c:1: undefined or invalid # directive
/usr/tmp/cca17630.c:2: 
   extern "C" {
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:3: undefined or invalid # directive
/usr/tmp/cca17630.c:4: 
   typedef void entry_pt();
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:6: 
   extern void *x1 __asm__ ("_GLOBAL__F___bb_exit_func");
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:7: 
   extern void *x2 __asm__ ("_GLOBAL__F___fixunsdfdi");
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:8: 
   extern void *x3 __asm__ ("_GLOBAL__F___umoddi3");
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:9: 
   extern void *x4 __asm__ ("_GLOBAL__F__exit_dummy_decl");
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:10: 
   extern void *x5 __asm__ ("_GLOBAL__F___udivdi3");
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:11: 
   extern void *x6 __asm__ ("_GLOBAL__F___do_global_dtors");
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:12: 
   extern void *x7 __asm__ ("_GLOBAL__F___fixdfdi");
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:13: 
   extern void *x8 __asm__ ("_GLOBAL__F___floatdidf");
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:14: 
           static void *frame_table[] = {
           1           2
Unrecognized statement name at (1) and invalid form for assignment or statement-function definition at (2)
/usr/tmp/cca17630.c:14: 
           static void *frame_table[] = {
                                   ^
Unrecognized character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:15: 
                   &x1,
                   ^
Statement at (^) begins with invalid token [info -f g77 M LEX]
/usr/tmp/cca17630.c:16: 
                   &x2,
                   ^
Statement at (^) begins with invalid token [info -f g77 M LEX]
/usr/tmp/cca17630.c:17: 
                   &x3,
                   ^
Statement at (^) begins with invalid token [info -f g77 M LEX]
/usr/tmp/cca17630.c:18: 
                   &x4,
                   ^
Statement at (^) begins with invalid token [info -f g77 M LEX]
/usr/tmp/cca17630.c:19: 
                   &x5,
                   ^
Statement at (^) begins with invalid token [info -f g77 M LEX]
/usr/tmp/cca17630.c:20: 
                   &x6,
                   ^
Statement at (^) begins with invalid token [info -f g77 M LEX]
/usr/tmp/cca17630.c:21: 
                   &x7,
                   ^
Statement at (^) begins with invalid token [info -f g77 M LEX]
/usr/tmp/cca17630.c:22: 
                   &x8,
                   ^
Statement at (^) begins with invalid token [info -f g77 M LEX]
/usr/tmp/cca17630.c:24: 
   };
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:25: 
   extern void __register_frame_table (void *);
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:26: 
   extern void __deregister_frame (void *);
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:27: 
   static void reg_frame () {
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:28: 
           __register_frame_table (frame_table);
           ^
Statement at (^) begins with invalid token [info -f g77 M LEX]
/usr/tmp/cca17630.c:29: 
           }
           ^
Unrecognized character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:30: 
   static void dereg_frame () {
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:31: 
           __deregister_frame (frame_table);
           ^
Statement at (^) begins with invalid token [info -f g77 M LEX]
/usr/tmp/cca17630.c:32: 
           }
           ^
Unrecognized character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:34: 
   entry_pt * __CTOR_LIST__[] = {
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:35: 
           (entry_pt *) 1,
           ^
Statement at (^) begins with invalid token [info -f g77 M LEX]
/usr/tmp/cca17630.c:36: 
           reg_frame,
           1        2
Unrecognized statement name at (1) and invalid form for assignment or statement-function definition at (2)
/usr/tmp/cca17630.c:38: 
   };
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:41: 
   entry_pt * __DTOR_LIST__[] = {
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:42: 
           (entry_pt *) 1,
           ^
Statement at (^) begins with invalid token [info -f g77 M LEX]
/usr/tmp/cca17630.c:43: 
           dereg_frame,
           1          2
Unrecognized statement name at (1) and invalid form for assignment or statement-function definition at (2)
/usr/tmp/cca17630.c:45: 
   };
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:47: 
   extern entry_pt __main;
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:48: 
   entry_pt *__main_reference = __main;
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:50: undefined or invalid # directive
/usr/tmp/cca17630.c:51: 
   }
   ^
Invalid first character at (^) [info -f g77 M LEX]
/usr/tmp/cca17630.c:52: undefined or invalid # directive
collect2: gcc returned 1 exit status
[Leaving /usr/tmp/cca17630.c]
[Leaving /usr/tmp/cca17630.o]
[Leaving /usr/tmp/cca17630.x]
[Leaving /usr/tmp/cca17630.ld]
[Leaving /tmp/971102-1.x]


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