This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
collect2 compiles C with g77 !
- To: egcs at cygnus dot com (egcs mailing list)
- Subject: collect2 compiles C with g77 !
- From: "Philippe De Muyter" <phdm at macqel dot be>
- Date: Tue, 11 Nov 1997 02:51:46 +0100 (MET)
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]