B20: make confused with //a style drive specifiers

Graham Dumpleton Graham.Dumpleton@ra.pad.otc.com.au
Mon Feb 15 15:23:00 GMT 1999

 > >>>>> Graham Dumpleton <Graham.Dumpleton@ra.pad.otc.com.au> writes:
 > Graham> Came across the following problem in B20 which I believe should
 > Graham> work. [...]
 > Graham> need2 := //g/a //g/b //g/c //g/d //g/e //g/f
 > Graham> all2 : $(need2)
 > Graham> $(need2) : % :
 > Graham>		@echo $@
 > Graham> make: *** No rule to make target `//g/a', needed by `all2'.  Stop.
 > I reported this bug back in November (see in the archives at
 > < http://www.cygnus.com/ml/gnu-win32/1998-Nov/0419.html > for my report) and it
 > has nothing to do with the //a style drive letters.  The problem is that make
 > cannot cope with the second or later path in a static rule being an absolute
 > path name.  Hugh Winkler (hughw@scoutsys.com) identified the problem and
 > produced a version of make that works (see
 > < http://www.cygnus.com/ml/gnu-win32/1998-Nov/0586.html >).  This message also
 > contains the URL of the fixed binary.
 > For whatever reason this fix never made it into B20.1, but I presume it will
 > appear when make 3.77 is incorporated into the next release.
 > BTW Graham, if you found this bug by using makeit under cygwin, let me know
 > because we've been using that combination here for the last few months.
 > -- 
 > Malcolm Purvis (malcolmp@abc.gov.au)

Thanks, looking at the pages you refer to this is the same problem. I didn't
go that far back through the archive of mail to the mailing list.

I did run across the problem when trying to install OSE and makeit. It showed
up when setting OSE_ROOT_DIRECTORY to "//g/dscpl/ose". I was able to continue
by using "g:/dscpl/ose" however.

Would be interested to hear if you only installed makeit or whether you got
the OSE C++ class libraries to build and install as well. When I install the
OSE C++ class libraries I get lots of problems with multiply defined symbols.
Both the EGCS 1.1 and 1.1.1 compilers under B20 will when using debug in
some cases expand inline functions of templates but give them global scope
meaning that when multiple object files are linked with those expansions
you get multiple definitions for the inline functions. Also get multiple
definitions for virtual function tables as well some times.

Just occurred to me though that I might get further if I don't compile in
debug as compiler may behave differently in that case. Might account for
why I couldn't create test program as I wasn't using debug when building a
test program.

Graham Dumpleton (grahamd@nms.otc.com.au)

More information about the Cygwin mailing list