[AMBER] Problem during pnetcdf build on CentOS 5

From: Jan-Philip Gehrcke <jgehrcke.googlemail.com>
Date: Tue, 31 Jan 2012 11:47:41 +0100

Dear developers,

I'd like to report a problem that reproducibly occurred to me during
AmberTools 1.5 parallel build on CentOS 5 (during building the ncgen
module of pnetcdf):

> make[4]: Entering directory `/data/bioinfp/jang/apps/amber11/AmberTools/src/pnetcdf/src/utils'
> cd ncgen && make
> make[5]: Entering directory `/data/bioinfp/jang/apps/amber11/AmberTools/src/pnetcdf/src/utils/ncgen'
> mpicc -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I./../../../src/lib -I. -I. -DNDEBUG main.c
> mpicc -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I./../../../src/lib -I. -I. -DNDEBUG load.c
> bison -y -d ./ncgen.y; \
> mv y.tab.c ncgentab.c; \
> mv y.tab.h ncgentab.h
> conflicts: 1 shift/reduce
> /usr/bin/m4: unrecognized option `--gnu'
> Try `/usr/bin/m4 --help' for more information.
> mv: cannot stat `y.tab.c': No such file or directory
> mv: cannot stat `y.tab.h': No such file or directory
> make[5]: *** [ncgentab.c] Error 1

The build tree is placed in a file system that I have access to from
several different operating systems. I solved the above problem by executing

> $ bison -y -d ./ncgen.y; \
> mv y.tab.c ncgentab.c; \
> mv y.tab.h ncgentab.h

in the $AMBERHOME/AmberTools/src/pnetcdf/src/utils/ncgen directory of
the above build tree on a system with a more recent version of m4
(1.4.13 vs. 1.4.5 in case of CentOS 5). This also printed

> conflicts: 1 shift/reduce

but did not raise the

> /usr/bin/m4: unrecognized option `--gnu'

error. After this simple call to bison on the newer system, the files
y.tab.c y.tab.h have been created and I could successfully finish the
parallel build on CentOS 5 by just re-invoking `make parallel`.

I could not find anything about this issue in the pnetcdf mailing list.
The ncgen.y in the AmberTools distribution differs from the ncgen.y in
the original pnetcdf distribution (release 1.2.0) in the following way:

.. -826,12 +826,12 ..
  }

  /* undefine yywrap macro, in case we are using bison instead of yacc */
-#ifdef ncmpiwrap
-#undef ncmpiwrap
+#ifdef yywrap
+#undef yywrap
  #endif

  int
-ncmpiwrap(void) /* returns 1 on EOF if no more input */
+yywrap(void) /* returns 1 on EOF if no more input */
  {
      return 1;
  }

I don't know if anyone is using pnetcdf at all, but maybe this
information helps a smart developer making the processing of ncgen.y
also work on older systems.

Jan-Philip





_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Tue Jan 31 2012 - 03:00:03 PST
Custom Search