Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Tim Prins (tprins_at_[hidden])
Date: 2007-09-19 18:11:22


Hi Karol,

Thanks for the reports.

I cannot help with the first problem. Maybe someone else can.

Problem 2: I have committed your suggested fix in r16163.

As for the third problem, this is very strange. It looks like what is
happening is that we are in the ompi/mpi/f77 directory compiling a .c
file. This includes ompi_config.h, which includes ompi_config_bottom.h,
which then includes string.h (/usr/include/string.h). So far so good.

Here is where it gets nasty. On FreeBSD, /usr/include/string.h includes
strings.h in some cases. But there is a strings.h in the ompi/mpi/f77
directory, so that is getting included instead of the proper
/usr/include/strings.h.

I suppose we could rename our strings.h to f77_strings.h, or something
similar. Does anyone have an opinion on this?

When you compiled v1.2.3 and the v1.2.4 prerelease, did you compile from
a tarball or a subversion checkout? I ask because it looks like the
above problem will only happen when the developer debugging code is
enabled, which is the default when building from a subversion checkout.

Thanks again for your reports,

Tim

Karol Mroz wrote:
> Hi. I have been trying to build the latest ompi-trunk (as of yesterday)
> svn snapshot (r16158) of OpenMPI on a FreeBSD 6.2 machine and have run
> into 3 build problems. I was curious if anyone else has encountered
> these errors and if they are being addressed.
>
> Problem 1
> ---------
> When running the autogen.sh script as non-root, I see the following error:
> *************************************************************************
> *** Running GNU tools
> [Running] autom4te --language=m4sh ompi_get_version.m4sh -o
> ompi_get_version.sh
> [Running] aclocal
> /usr/local/share/aclocal/glib.m4:8: warning: underquoted definition of
> AM_PATH_GLIB
> /usr/local/share/aclocal/glib.m4:8: run info '(automake)Extending
> aclocal'
> /usr/local/share/aclocal/glib.m4:8: or see
> http://sources.redhat.com/automake/automake.html#Extending-aclocal
> [Running] autoheader
> ** Adjusting libtool for OMPI :-(
> ++ patching for pathscale multi-line output (LT 1.5.x)
> [Running] autoconf
> [Running] libtoolize --automake --copy --ltdl
> -- Moving libltdl to opal/
> ** Updating Automake version in libltdl package
> [Running] aclocal
> acinclude.m4:6405: the serial number must appear before any macro
> definition
> /usr/local/share/aclocal/glib.m4:8: warning: underquoted definition of
> AM_PATH_GLIB
> /usr/local/share/aclocal/glib.m4:8: run info '(automake)Extending
> aclocal'
> /usr/local/share/aclocal/glib.m4:8: or see
> http://sources.redhat.com/automake/automake.html#Extending-aclocal
> [Running] automake
> [Running] autoconf
> autom4te-2.61: cannot open configure: Permission denied
>
> -------------------------------------------------------------------------
> It seems that the execution of "autoconf" has failed. See above for
> the specific error message that caused it to abort.
> -------------------------------------------------------------------------
> *************************************************************************
>
> After some searching, it would appear that this is an autoconf issue
> that crops up in FreeBSD but, for whatever reason, not in Linux. A quick
> workaround is to add: `chmod -vr u+w *` just before autogen issues the
> `run_and_check $ompi_autoconf` command on line 438.
>
>
> Problem 2:
> ----------
> After correcting the autogen.sh script, running it and then running
> configure with --prefix=some_directory as a parameter, it was time to
> `make all install.` Following is console output:
>
> ************************************************************************
> gcc -DHAVE_CONFIG_H -I. -I../../opal/include -I../../orte/include
> -I../../ompi/include -I../../opal/mca/paffinity/linux/plpa/src/libplpa
> -I../.. -g -Wall -Wundef -Wno-long-long -Wsign-compare
> -Wmissing-prototypes -Wstrict-prototypes -Wcomment -pedantic
> -Werror-implicit-function-declaration -finline-functions
> -fno-strict-aliasing -pthread -MT opal_pty.lo -MD -MP -MF
> .deps/opal_pty.Tpo -c opal_pty.c -fPIC -DPIC -o .libs/opal_pty.o
> opal_pty.c: In function `opal_openpty':
> opal_pty.c:127: error: implicit declaration of function `openpty'
> *** Error code 1
>
> Stop in /usr/home/kmroz/work/ompi-trunk/opal/util.
> *** Error code 1
>
> Stop in /usr/home/kmroz/work/ompi-trunk/opal/util.
> *** Error code 1
>
> Stop in /usr/home/kmroz/work/ompi-trunk/opal.
> *** Error code 1
>
> Stop in /usr/home/kmroz/work/ompi-trunk.
> ***********************************************************************
>
> It would seem that openpty needs to have libutil.h included on a
> freeBSD machine. I added a quick #ifdef/#include of libutil.h in
> opal/util/opal_pty.c and restarted make.
>
> Problem 3:
> ----------
> Compilation made it a little further this time around, but began
> complaining about ompi/mpi/f77/strings.h. More console output:
>
> ***********************************************************************
> gcc -DHAVE_CONFIG_H -I. -I../../../opal/include -I../../../orte/include
> -I../../../ompi/include
> -I../../../opal/mca/paffinity/linux/plpa/src/libplpa
> -DOMPI_PROFILE_LAYER=0 -DOMPI_COMPILING_F77_WRAPPERS=1 -I../../.. -g
> -Wall -Wundef -Wno-long-long -Wsign-compare -Wmissing-prototypes
> -Wstrict-prototypes -Wcomment -pedantic
> -Werror-implicit-function-declaration -finline-functions
> -fno-strict-aliasing -pthread -MT attr_fn_f.lo -MD -MP -MF
> .deps/attr_fn_f.Tpo -c attr_fn_f.c -fPIC -DPIC -o .libs/attr_fn_f.o
> In file included from /usr/include/string.h:49,
> from ../../../opal/include/opal_config_bottom.h:365,
> from ../../../opal/include/opal_config.h:1432,
> from ../../../ompi/include/ompi_config.h:26,
> from attr_fn_f.c:20:
> ./strings.h:43: error: syntax error before "int"
> ./strings.h:59: error: syntax error before "int"
> ./strings.h:78: error: syntax error before "int"
> ./strings.h:94: error: syntax error before "int"
> *** Error code 1
>
> Stop in /usr/home/kmroz/work/ompi-trunk/ompi/mpi/f77.
> *** Error code 1
>
> Stop in /usr/home/kmroz/work/ompi-trunk/ompi/mpi/f77.
> *** Error code 1
>
> Stop in /usr/home/kmroz/work/ompi-trunk/ompi/mpi.
> *** Error code 1
>
> Stop in /usr/home/kmroz/work/ompi-trunk/ompi.
> *** Error code 1
>
> Stop in /usr/home/kmroz/work/ompi-trunk.
> ***********************************************************************
>
> I ended up changing function declarations in ompi/mpi/f77/strings.h from
> 'OMPI_DECLSPEC int function_name()' to simply 'int function_name()'
> which also appears to be how it was done in the last stable (v1.2.3)
> release. This final change allowed make to complete.
>
> ---
>
> Please note, these errors were seen in ompi-trunk (r16158). The current
> stable release (v1.2.3) as well as the pre-release (v1.2.4) do NOT
> exhibit any of these problems when compiled on FreeBSD 6.2.
>
> One final note: running autogen.sh on a linux machine followed by
> configure/make on freeBSD was also attempted to see if some of the
> source or build scripts were being generated incorrectly on FreeBSD.
> However, this yielded the same errors with ompi-trunk as mentioned above.
>
> Any ideas?
>