Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] trunk build failed when configured with --disable-hwloc
From: Paul H. Hargrove (PHHargrove_at_[hidden])
Date: 2012-02-14 20:42:10


On 2/14/2012 5:10 PM, Paul H. Hargrove wrote:
> I have configured the ompi-trunk (from last night's tarball:
> 1.7a1r25913) with --without-hwloc.
> Having done so, I see the following failure at build time:
>
>> CC rmaps_rank_file_component.lo
>> /home/hargrove/OMPI/openmpi-trunk-linux-mips64el//openmpi-trunk/orte/mca/rmaps/rank_file/rmaps_rank_file_compo
>>
>> nent.c: In function 'orte_rmaps_rank_file_open':
>> /home/hargrove/OMPI/openmpi-trunk-linux-mips64el//openmpi-trunk/orte/mca/rmaps/rank_file/rmaps_rank_file_compo
>>
>> nent.c:111: error: 'opal_hwloc_binding_policy' undeclared (first use
>> in this function)
>> /home/hargrove/OMPI/openmpi-trunk-linux-mips64el//openmpi-trunk/orte/mca/rmaps/rank_file/rmaps_rank_file_compo
>>
>> nent.c:111: error: (Each undeclared identifier is reported only once
>> /home/hargrove/OMPI/openmpi-trunk-linux-mips64el//openmpi-trunk/orte/mca/rmaps/rank_file/rmaps_rank_file_compo
>>
>> nent.c:111: error: for each function it appears in.)
>> /home/hargrove/OMPI/openmpi-trunk-linux-mips64el//openmpi-trunk/orte/mca/rmaps/rank_file/rmaps_rank_file_component.c:111:
>> error: 'OPAL_BIND_TO_CPUSET' undeclared (first use in this function)
>
> Looks like this code is not "aware" that hwloc has been configured out.
> This is not present in the 1.5 branch configured with identical
> arguments.
>
> -Paul
>

The following appears to "fix" that, but I am uncertain if this is the
desired fix.
> --- orte/mca/rmaps/rank_file/rmaps_rank_file_component.c~
> 2012-02-14 17:25:07.653483222 -0800
> +++ orte/mca/rmaps/rank_file/rmaps_rank_file_component.c
> 2012-02-14 17:25:28.803483261 -0800
> @@ -107,8 +107,10 @@
> }
> ORTE_SET_MAPPING_POLICY(orte_rmaps_base.mapping,
> ORTE_MAPPING_BYUSER);
> ORTE_SET_MAPPING_DIRECTIVE(orte_rmaps_base.mapping,
> ORTE_MAPPING_GIVEN);
> +#if OPAL_HAVE_HWLOC
> /* we are going to bind to cpuset since the user is
> specifying the cpus */
> OPAL_SET_BINDING_POLICY(opal_hwloc_binding_policy,
> OPAL_BIND_TO_CPUSET);
> +#endif
> /* make us first */
> my_priority = 10000;
> }

HOWEVER, I am now also seeing the following occurring ONLY when
configured with --disable-hwloc:
> make[1]: Entering directory
> `/home/phargrov/openmpi-1.7a1r25913/BLD2/opal/mca/event/libevent2013'
> CC libevent2013_module.lo
> ../../../../../opal/mca/event/libevent2013/libevent2013_module.c:7:20:
> error: config.h: No such file or directory
> ../../../../../opal/mca/event/libevent2013/libevent2013_module.c: In
> function 'opal_event_init':
> ../../../../../opal/mca/event/libevent2013/libevent2013_module.c:243:
> warning: ignoring return value of 'asprintf', declared with attribute
> warn_unused_result
> make[1]: *** [libevent2013_module.lo] Error 1

It seems VERY odd to me that disabling hwloc should have that effect.
Looking deeper it appears that '#include "config.h"' in
libevent2013_module.c has been including the config.h from HWLOC,
instead of the one from libevent2013. If one examines the -I options
carefully, you will see that $(builddr)/libevent is NOT in the include
path, but that is the location of the config.h generated by libevent's
configure script!

-Paul

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