Hi Richard, On Sat, Apr 5, 2014 at 6:51 PM, Richard wrote: > > Hello Everyone, > > I recently (two weeks ago or so) upgraded the cygwin installation on an XP > 64 bit (corp edition) box and in getting things running on it again I've > been having various troubles, even though I was VERY careful to watch for > any installation errors - none were noticed. Normally I don't do development > on this box but copy over from other systems. I had at least one program > that was not behaving correctly - it would apparently hide output sent to > stdout among other mysteries. After fiddling with things I decided to just > rebuild on that box from sources - it's almost all gnu c. (Note that this > code needs to run unchanged on many different platforms.) > > At some point I get to the gcc call to bind together three object files into > an executable - all the object files having just been built with zero errors > - and I get this particular "undefined reference to `len'" error. Of course > I went hunting for the use of 'len' - which is a pretty absurd effort as a > simple grep matches on coutless noise such as 'filename' or 'strlen', etc.
Have you tried the -w option of grep? > However, a thorough search revealed no uses of just 'len', yet I don't deny > I could possibly have overlooked it. Try the following in the directory where the object files are: nm *.o | grep -P '\.o:|\blen\b' > Even so, this directory was taken > wholesale from a 64 bit system (Win 7) with an older cygwin installation > where the code compiles and runs fine. So somehow I don't think it's > actually in my code but rather a library reference problem somehow. > > The specific set of error output from make is: > > $ gcc -o ctjc.exe ctjc.o hashc.o sha1.o; > ctjc.o:ctjc.c:(.text+0x2287): undefined reference to `len' > ctjc.o:ctjc.c:(.text+0x2287): relocation truncated to fit: R_X86_64_PC32 > against undefined symbol `len' You may have a mix of 32-bit and 64-bit object files. What does the following command print? file *.o Csaba -- GCS a+ e++ d- C++ ULS$ L+$ !E- W++ P+++$ w++$ tv+ b++ DI D++ 5++ The Tao of math: The numbers you can count are not the real numbers. Life is complex, with real and imaginary parts. "Ok, it boots. Which means it must be bug-free and perfect. " -- Linus Torvalds "People disagree with me. I just ignore them." -- Linus Torvalds -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple