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_STATIC_SUBDIRS"]=" mca/timer/linux"
S["MCA_opal_timer_STATIC_LTLIBS"]="mca/timer/linux/libmca_timer_linux.la "
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.


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 H. Hargrove                          PHHargrove@lbl.gov
Future Technologies Group
HPC Research Department                   Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900

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