I've poked enough at the ompi configure magic to *think* I understand the source of the problem I've seen w/ both trunk and 1.5.x on the Altix.

The problem appears to be that both timer/altix/configure.m4 and timer/linux/configure.m4 are setting the value of $timer_base_include and the LAST one "wins". Meanwhile, only the FIRST one is getting added to $static_components ("there can be only one"). So, I suspect the difference I saw between trunk and 1.5 was just a matter of which configure probe ran first.

The result of having FIRST and LAST "win" in different settings is a mismatch.

$ grep -e timer:linux -e timer:altix configure.out
--- MCA component timer:linux (m4 configuration macro, priority 30)
checking for MCA component timer:linux compile mode... static
checking if MCA component timer:linux can compile... yes
--- MCA component timer:altix (m4 configuration macro, priority 30)
checking for MCA component timer:altix compile mode... static
checking if MCA component timer:altix can compile... no

which picks timer:linux and rejects timer:altix, as compared to:

$ grep -e '"MCA_opal_timer_[SD]' -e MCA_timer_ config.status
S["MCA_opal_timer_DSO_SUBDIRS"]=""
S["MCA_opal_timer_STATIC_SUBDIRS"]=" mca/timer/linux"
S["MCA_opal_timer_STATIC_LTLIBS"]="mca/timer/linux/libmca_timer_linux.la "
S["MCA_opal_timer_DSO_COMPONENTS"]=""
S["MCA_opal_timer_STATIC_COMPONENTS"]=" linux"
D["MCA_timer_IMPLEMENTATION_HEADER"]=" \"opal/mca/timer/altix/timer_altix.h\""

Which will build timer:linux but has improperly picked up the timer:altix HEADER!


For the present, an explicit --with-timer=altix works-around the problem in either branch. However, the setting of the header variable by a NON-selected component is ERRONEOUS and should get fixed. In trunk, it may also make sense to raise the priority of timer:altix above that of timer:linux.

-Paul

On 2/15/2012 12:41 AM, Paul Hargrove wrote:
I've configured the ompi trunk (nightly tarball 1.7a1r25927) on an SGI Altix. I used no special arguments indicating that this is an Altix, and there does not appear to be an altix-specific file in contrib/platform.

My build fails as follows:

    make: Entering directory
    `/mnt/home/c_phargrov/OMPI/openmpi-trunk-linux-ia64/BLD/opal/tools/wrappers'
      CC     opal_wrapper.o
      CCLD   opal_wrapper
    ../../../opal/.libs/libopen-pal.so: undefined reference to
    `opal_timer_altix_mmdev_timer_addr'
    ../../../opal/.libs/libopen-pal.so: undefined reference to
    `opal_timer_altix_freq'
    collect2: ld returned 1 exit status



The configure-generated opal_config.h contains
#define MCA_timer_IMPLEMENTATION_HEADER "opal/mca/timer/altix/timer_altix.h"

Nothing appears to have been built in BUILDDIR/opal/mca/timer/altix.
However, BUILDDIR/opal/mca/timer/linux has been built.

-Paul

--
Paul H. Hargrove phhargr...@lbl.gov <mailto:phhargr...@lbl.gov>
Future Technologies Group
HPC Research Department Tel: +1-510-495-2352 <tel:%2B1-510-495-2352> Lawrence Berkeley National Laboratory Fax: +1-510-486-6900 <tel:%2B1-510-486-6900>

--
Paul H. Hargrove                          phhargr...@lbl.gov
Future Technologies Group
HPC Research Department                   Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900

Reply via email to