Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!SUN.COM!tiemann From: tiemann@SUN.COM (Michael Tiemann) Newsgroups: gnu.utils.bug Subject: ld bug Message-ID: <9001221559.AA01142@teacake.sun.com> Date: 22 Jan 90 15:59:09 GMT Sender: daemon@tut.cis.ohio-state.edu Reply-To: tiemann@sun.com Distribution: gnu Organization: GNUs Not Usenet Lines: 30 Here's a build which fails for reasons I understand: cd /home2/gnu/prog2c/ time make -k g++ -B/home2/gnu/g++/ -g -o p2 p2_CPU.o p2_ctrl.o p2_disk.o p2_disk_sched.o p2_fault.o p2_mem.o p2_proc.o p2_queue.o -L/home2/gnu/libg++/src /home2/gnu/usr/local/lib/g++-include/BitSet.h:359: Undefined symbol BitSet::error(char *) referenced from text segment p2_fault.c:256: Undefined symbol lg() referenced from text segment p2_fault.c:256: Undefined symbol lg() referenced from text segment p2_fault.c:256: Undefined symbol lg() referenced from text segment *** Error code 1 make: Warning: Target `all' not remade because of errors 9.2 real 1.2 user 1.2 sys Compilation finished at Mon Jan 22 07:56:07 The bug is that /home2/gnu/usr/local/lib/g++-include/BitSet.h is the line where the reference occurs, but the linker doens't tell me the offending .o file that it came from. When I switch my compiler library paths, I won't know which file to recompile (without searching). It would be nice if this error were reported like this: in file foo.o: ...all errors of file foo.o... in file bar.o: ...all errors of file bar.o... etc. Sound reasonable? Michael