Date: Fri, 20 Aug 93 08:50:16 EDT From: jcrigler AT polaris DOT orl DOT mmc DOT com (Jim Crigler) To: djgpp AT sun DOT soe DOT clarkson DOT edu Subject: gcc reports duplicate symbols David J Camp wrote this: : When I compile a particular program, I get the following messages. : As far as I can tell, my program is not defining any of these : symbols. I noticed that some of these are defined in more than one : of the libraries provided with gcc. Please help. -David- : : c:\tmp/ccg00073(.text+0): multiple definition of `bzero (.text)' : c:\tmp/ccf00073(.text+0): first seen here : c:\tmp/ccg00073(.text+1e): multiple definition of `bcopy (.text)' : c:\tmp/ccf00073(.text+1e): first seen here : c:\tmp/ccg00073(.text+40): multiple definition of `bcmp (.text)' : c:\tmp/ccf00073(.text+40): first seen here [etc. deleted] I had this problem when compiling vile 3.56 or 3.57. Paul Fox (pgf AT cayman DOT com), the vile developer, put me in touch with Tuan Dang (dang AT cogit DOT ign DOT fr) who did the djgpp port of vile. The answer, which was corrected in vile 3.58 and 3.59, was that the symbol `USG' came out of vile's estruct.h file #define'd. (In fact, it was `#define USG 0'. This is in keeping with the vile sources' way of keeping track of the current compilation parameters: the active system's stuff is #define'd to 1 and all other systems are #define'd to 0.) Then, when is #included from c:\djgpp\include, it tests `#ifdef USG' and not `#if USG'. The solution, of course was to `#undef USG' and then never #define it afterwards. There may have been other preprocessor conditionals to fix, but the solution is pretty easy. Jim Crigler ------------------------------------------------------------------------ Investigative reporters have discovered that the U. S. government has secretly developed near-light-speed space travel, and is currently sending philological emmisaries throughout the near sectors of the galaxy to teach (American) English to all the species they find. It is expected that their mission will be complete by the mid-23rd century.