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?