Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] trunk build failure on {Free,Net,Open}BSD
From: Paul Hargrove (phhargrove_at_[hidden])
Date: 2014-01-09 00:43:43


Ralph,

Nevermind my previous emails about autotools, tarballs, etc.
I just did "svn di -r30171:30172" on one system and applied with "patch".
The result is that the build is able to get past opal/util/path.c
When the rest of the test completes, I'll report the results.

I am still concerned by the remaining instances of defined(__BSD) in
opal/util/path.c which seem to render opal_path_nfs() a no-op on BSD-family
systems. The doxygen comment preceding opal_path_nfs() describes logic for
FreeBSD which appears to match the code protected by defined(__BSD).

-Paul

On Wed, Jan 8, 2014 at 8:10 PM, Ralph Castain <rhc_at_[hidden]> wrote:

> Actually, as I look at it, the logic escapes me anyway. Basically, you
> only have two options - use the vfs struct for Sun, and use fs struct for
> everything else. I'm not aware of any other choice, and indeed the list of
> all the systems for the latter actually is intended to amount to "anything
> else".
>
> So I just changed it to an "else" statement in the trunk and scheduled it
> for 1.7.4 if it passes muster - see how this works for you.
>
> Ralph
>
>
> On Jan 8, 2014, at 4:52 PM, Paul Hargrove <phhargrove_at_[hidden]> wrote:
>
> This partial make output shows a build failure of the current trunk
> tarball on FreeBSD-9/x86-64:
> CC path.lo
> /home/phargrov/OMPI/openmpi-trunk-freebsd9-amd64/openmpi-1.9a1r30146/opal/util/path.c:
> In function 'opal_path_df':
> /home/phargrov/OMPI/openmpi-trunk-freebsd9-amd64/openmpi-1.9a1r30146/opal/util/path.c:556:
> error: 'buf' undeclared (first use in this function)
> /home/phargrov/OMPI/openmpi-trunk-freebsd9-amd64/openmpi-1.9a1r30146/opal/util/path.c:556:
> error: (Each undeclared identifier is reported only once
> /home/phargrov/OMPI/openmpi-trunk-freebsd9-amd64/openmpi-1.9a1r30146/opal/util/path.c:556:
> error: for each function it appears in.)
> *** [path.lo] Error code 1
>
> Builds of the trunk on NetBSD and OpenBSD fail in the same way.
>
> The code in opal_path_df() seems not to define the variable "buf" unless
> certain defines are present, but then tries to USE the variable
> unconditionally. That unconditional use of "buf" is the proximate cause of
> the failure.
>
> A very-likely-related observation:
> The code in opal/util/path.c seems to expect __BSD to be defined under
> *some* circumstance, but it is not defined by any current
> {Free,Net,Open}BSD:
>
> FreeBSD-9:
> $ touch empty.c
> $ gcc -dM -E empty.c | grep BSD
> #define __FreeBSD_cc_version 900001
> #define __VERSION__ "4.2.1 20070831 patched [FreeBSD]"
> #define __FreeBSD__ 9
>
> NetBSD-6:
> -bash-4.2$ touch empty.c
> -bash-4.2$ gcc -dM -E empty.c | grep BSD
> #define __NetBSD__ 1
>
> OpenBSD-5:
> -bash-4.2$ touch empty.c
> -bash-4.2$ gcc -dM -E empty.c | grep BSD
> #define __OpenBSD__ 1
>
> So, there are TWO issues:
>
> 1) opal_path_df() defines the variable "buf" only conditionally but then
> uses it UNconditionally.
>
> 2) logic which appears to be intended for at least FreeBSD is probably not
> reachable in any build.
>
> -Paul
>
> --
> Paul H. Hargrove PHHargrove_at_[hidden]
> Future Technologies Group
> Computer and Data Sciences Department Tel: +1-510-495-2352
> Lawrence Berkeley National Laboratory Fax: +1-510-486-6900
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>
>
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>

-- 
Paul H. Hargrove                          PHHargrove_at_[hidden]
Future Technologies Group
Computer and Data Sciences Department     Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900