[gnu.g++] Cannot find crt0+.o

Gordon@ucl-cs.UUCP (05/19/89)

mdt> I left out -O in CFLAGS.  This was an oversight.  The compiler runs
mdt> just fine with -O.

And I put it back in;-)!

However, that old spectre of crt0+.o still haunts me.
 
karl:/stats/staff/karl/gordon/BAIES/WOOD[14] make
g++ -v
g++ version 1.35.0
g++ wood.o table.o oper.o -o wood -g -lg++ -lm -v
g++ version 1.35.0
 /stats/staff/karl/lib/gcc-ld++ -o wood -C -dc -dp -Bstatic /lib/crt0.o
               /lib/Mcrt1.o wood.o table.o oper.o -lg++ /stats/staff/karl/lib/gcc-gnulib -lg -lc
/stats/staff/karl/lib/gcc-ld++: text symbol `___DTOR_LIST__' redefined as set vector.  Files:
 C++.hacksa12670
 /stats/staff/karl/lib/libg++.a(stream.o)
/stats/staff/karl/lib/gcc-ld++: text symbol `___CTOR_LIST__' redefined as set vector.  Files:
 C++.hacksa12670
 /stats/staff/karl/lib/libg++.a(stream.o)
/lib/crt0.o: Undefined symbol __DYNAMIC referenced from text

make: *** Error 1
karl:/stats/staff/karl/gordon/BAIES/WOOD[15]

The file does in fact live in stats/staff/karl/lib/crt0+.o, along with its friends
like gcc-gnulib.

karl:/stats/staff/karl/lib[53] ll
total 3706
-rwxr-xr-x  1 gordon       6477 May 11 15:35 bison.hairy
-rwxr-xr-x  1 gordon      11822 May 11 15:35 bison.simple
-rwxr-xr-x  1 gordon      16384 May  2 16:05 collect
-rw-rw-r--  1 gordon     425853 May 19 10:25 cplus-parse.output
-rwxr-xr-x  1 gordon        236 May 19 10:59 crt0+.o
-rwxr-xr-x  1 gordon        136 May 19 10:59 crt1+.o
drwxr-xr-x  2 gordon       3072 Apr 23 16:05 g++-include
-rwxr-xr-x  1 gordon     131072 May  2 16:06 gcc-as
-rwxr-xr-x  1 gordon     835584 May  2 16:06 gcc-c++
-rwxr-xr-x  1 gordon     507904 May 18 22:47 gcc-cc1
-rwxr-xr-x  1 gordon     688128 May 19 10:59 gcc-cc1plus
-rwxr-xr-x  1 gordon      73728 May 19 10:28 gcc-cpp
-rwxr-xr-x  1 gordon       8334 May 18 22:45 gcc-gnulib
drwxr-xr-x  7 gordon       1024 May 18 22:54 gcc-include
-rwxr-xr-x  1 gordon      40960 May 19 10:59 gcc-ld++
-rwxr-xr-x  1 gordon     326548 Apr 28 11:43 libc.a
-rwxr-xr-x  1 gordon     652798 May 11 12:03 libg++.a
karl:/stats/staff/karl/lib[54] 

Up to that point, everything is peachy. For example,

karl:/stats/staff/karl/gordon/BAIES/WOOD[4] rm wood.o ; make wood.o
g++ -g -O -v -c wood.cc
g++ version 1.35.0
 /stats/staff/karl/lib/gcc-cpp -+ -v -undef -D__GNU__ -D__GNUG__ -D__cplusplus
    -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__
    -D__OPTIMIZE__ -D__HAVE_68881__ -Dmc68020 wood.cc /tmp/cca13462.cpp
GNU CPP version 1.35
 /stats/staff/karl/lib/gcc-cc1plus /tmp/cca13462.cpp -quiet -dumpbase wood.cc
  -opt -version -G -o /tmp/cca13462.s
GNU C++ version 1.35.0 (68k, MIT syntax) compiled by GNU C version 1.35.
 /stats/staff/karl/lib/gcc-as -mc68020 /tmp/cca13462.s -o wood.o
karl:/stats/staff/karl/gordon/BAIES/WOOD[5] 


This is what happens for `make ld++`

gcc version 1.35
 /stats/staff/karl/lib/gcc-cpp -v -Dmc68020 -DSUN3=3 -DTARGET=SUN3
-DSTANDARD_SEARCH_DIRS="/stats/staff/karl/lib", "/lib", "/usr/lib" -DSOS -DESKIT
-DSOS -DESKIT -undef -D__GNUC__ -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__
-D__unix__ -D__OPTIMIZE__ -D__HAVE_68881__ -Dmc68020 newld.c /tmp/cca12708.cpp

GNU CPP version 1.35
 /stats/staff/karl/lib/gcc-cc1 /tmp/cca12708.cpp -quiet
-dumpbase newld.c -g -O -version -o /tmp/cca12708.s
GNU C version 1.35 (68k, MIT syntax) compiled by GNU C version 1.35.
 /stats/staff/karl/lib/gcc-as -mc68020 -o newld.o /tmp/cca12708.s
gcc -o ld++  newld.o -lg -lc

I usally edit ld.c directly to fix it up; this did not help this time.
Gordon.




karl:/stats/staff/karl/gordon/src/g++[121] config.g++ sun3-os4
Linked `config.h' to `config/xm-sunos4+.h'.
Linked `tm.h' to `config/tm-sun3+.h'.
Linked `md' to `config/m68k.md'.
Linked `aux-output.c' to `config/out-m68k.c'.
Links are now set up for use with a sun3-os4.

Thu May 18 22:17:30 BST 1989