Subject: G98 i386 Makefile

From: Christoph van Wüllen <[email-masked]>
Date: Mon, 18 Jun 2001 08:44:30 +0200

I just saw a new "i386" Makefile from D.Fox which was meant to solve 
some linker problems. However, the bug is not fixed, and I consider 
this Makefile a very
dangerous one (depending on the linker version, the block data unit might not
be linked).

It is clear for a stable "make" for e.g. l402.exe, you need to
perform three steps:

(1) copy l402.a to s save place
(2) extract AND DELETE the block data (bd0402.o)
(3) do the link -- no problem now, since bd0402.o no longer resides in l402.a
(4) restore the original l402.a

e.g.:

l402.exe: $(EXTRAS) l402.a
         $(RUNFSP) -e m$* $(BSDDIR)/main.F
         $(RUNMAKE) $(MAKELOC) OPTFLAG='$(OPTFLAG)' $(EXTRAS) $*.a m$*.o
!!!!    cp l402.a l402_save_place.a
         ar x l402.a bd0402.o
!!!!    ar d l402.a bd0402.o
         $(RUNF77) $(FFLAGS) -o $*.exe m$*.o $(EXTOBJ) $*.a bd0402.o 
$(EXTRAS) $(GAULIB) $(LIBS)
         rm -f m$*.* bd0402.o
!!!!    mv l402_save_place.a l402.a

(lines with !!!! were added). This fix is so obvious that I do not know why
Gaussian still has not solved the problem. This must also be applied 
to the other links with block-data units.

I hope that this message makes it into the archives to get rid of 
this infamous link problem once for all.