LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2004-06-02 16:19:20


On Wed, 2 Jun 2004, Richard Hadsell wrote:

>> That's odd -- we have specific tests in configure for snprintf. Can you
>> send your configure output and config.log (please compress!).
>
> I did enough investigating to determine that the configuration is
> probably o.k., but some source files are ignoring the configuration.
> Specifically, any source that calls snprintf should include etc_misc.h.
> Iadded '#include <etc_misc.h>' to these files, and the build gets much
> farther:
>
> otb/sys/kenyad/pqcreate.c
> share/ssi/coll/smp/src/ssi_coll_smp.c
> share/ssi/coll/smp/src/ssi_coll_smp_util.c

How embarrissing! I wonder how on earth that has lived in the tree for so
long. I have committed a fix to the 7.0 branch and to the SVN trunk.
Thanks for tracking that down.

It sounds like we're going to need to do a 7.0.7...

> The next problem the build encounters is when it starts to build romio:
>
> Making all in romio
> gmake[2]: Entering directory
> `/tmp_mnt/netDISKS/master/netmt/DIGITAL6/rnd/lam/lam-7.0.6/romio'
> make clean
> Make: Unknown flag argument w. Stop.
> gmake[2]: *** [mpio] Error 1
> gmake[2]: Leaving directory
> `/tmp_mnt/netDISKS/master/netmt/DIGITAL6/rnd/lam/lam-7.0.6/romio'
> gmake[1]: *** [romio-all] Error 2
> gmake[1]: Leaving directory
> `/tmp_mnt/netDISKS/master/netmt/DIGITAL6/rnd/lam/lam-7.0.6'
> gmake: *** [all-recursive] Error 1
>
> Any ideas where to look for this one?

Yikes.

Well, ROMIO uses its own Makefiles -- it doesn't use Automake. So I'm
guessing it's something within there that's dying. First pass through
that file, though, I don't see any places where "-w" is used. You might
want to directly edit the romio/Makefile and remove some "@" from Make
rules (to make them be echoed when they execute), and it might involve a
binary search from there to find the real problem. I would I could offer
more help here... :-\

Here's the general scheme of what the ROMIO makefile is doing -- there's
two rules in play:

-----
mpio:
         $(MAKE) clean
         $(MAKE) mpiolib
         $(MAKE) clean
         @if test "$(NOPROFILE)" = 0 ; then\
             $(MAKE) profile; \
         fi;\
         $(MAKE) clean
         $(RANLIB) $(LIBNAME)
         @if test "$(FROM_MPICH)" = 0 -a "$(FROM_MPICH2)" = 0 ; then \
            echo " "; \
            echo "Completed build of ROMIO. Check the output for errors."; \
            echo " " ;\
            echo "To compile the example programs, cd to the test directory"; \
            echo "and type make."; \
            echo "Run the examples the way you would run any MPI program."; \
            echo "Each program takes the filename as a command-line argument"; \
            echo "'-fname filename'." ; \
            echo " " ;\
         fi
         @sleep 1

clean:
         @-rm -f work.pc work.pcl
         @dirs=`echo "$(DIRS)"`; \
         for x in $(FILE_SYSTEM) ;\
          do \
              dirs=`echo "$$dirs" adio/ad_$$x` ;\
          done ; \
         if test "$(BUILD_MPI_INFO)" = 1 ; then \
             dirs=`echo "$$dirs" mpi2-other/info` ;\
             if test "$(NOF77)" = 0 ; then\
                 dirs=`echo "$$dirs" mpi2-other/info/fortran` ;\
             fi;\
         fi; \
         if test "$(BUILD_MPI_ARRAY)" = 1 ; then \
             dirs=`echo "$$dirs" mpi2-other/array` ;\
             if test "$(NOF77)" = 0 ; then\
                 dirs=`echo "$$dirs" mpi2-other/array/fortran` ;\
             fi;\
         fi; \
         if test "$(NOF77)" = 0 ; then\
             dirs=`echo "$$dirs" mpi-io/fortran` ;\
         fi;\
         for dir in $$dirs ;\
          do \
             echo " " ;\
             echo cleaning directory $$dir ;\
             (cd $$dir; rm -f *.o) ;\
          done; \
          echo " " ;\
          echo cleaning directory test ;\
          (cd test; $(MAKE) clean);\
          echo " ";
-----

As you can see, the first thing that the "all" target does it invoke the
"clean" target. The clean target simply kills a bunch of files, builds up
a list of directoriews, and then does a "for" to traverse through them.
You might want to add some echo statements in there to see how far it gets
before it does, etc.

I'm guessing that one of the macros that's getting expanded has the
erroneous flag (or is erroneously empty?), which is causing the problem.

Let me know what you find. If we do 7.0.7, a fix for this should be
included.

-- 
{+} Jeff Squyres
{+} jsquyres_at_[hidden]
{+} http://www.lam-mpi.org/