Opened 7 years ago

Closed 6 years ago

#55153 closed defect (fixed)

armadillo @8.200.1 +arpack: 'mpi.h' file not found

Reported by: majoc-at-astro (majoc-at-astro) Owned by: Schamschula (Marius Schamschula)
Priority: Normal Milestone:
Component: ports Version: 2.4.2
Keywords: Cc: jjstickel (Jonathan Stickel)
Port: armadillo

Description (last modified by mf2k (Frank Schima))

Log from last Friday's build run to be attached. Here's the top bit:

:info:build In file included from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_armadillo/armadillo/work/armadillo-8.200.1/src/wrapper.cpp:51:
:info:build In file included from /opt/local/include/hdf5.h:22:
:info:build /opt/local/include/H5public.h:59:13: fatal error: 'mpi.h' file not found
:info:build #   include <mpi.h>
:info:build             ^~~~~~~
:info:build 1 error generated.

This is on macOS 10.12 with Xcode 9.0, with arpack @3.4.0_2+accelerate+gcc6 having already been successfully built; it occurs also on 10.11 with Xcode 8.3.3, and first started in early September. Annoyingly, it only seems to happen in production builds, and it consistently fails to fail when attempted on a build which is otherwise empty.

Please let me know if there's any more information you need, or what other tests to make. Please see also ticket:55080, which started failing the same way at the same time, but which does fail on an empty build.

Attachments (1)

armadillo.log.2017-10-20_13.21.52 (85.1 KB) - added by majoc-at-astro (majoc-at-astro) 7 years ago.
Build log for armadillo +arpack from production

Download all attachments as: .zip

Change History (14)

Changed 7 years ago by majoc-at-astro (majoc-at-astro)

Build log for armadillo +arpack from production

comment:1 Changed 7 years ago by Schamschula (Marius Schamschula)

Cc: mps@… removed
Owner: set to Schamschula
Status: newassigned

comment:2 Changed 7 years ago by Schamschula (Marius Schamschula)

You are building arpack +mpi. armadillo assumes arpack w/o +mpi.

comment:3 Changed 7 years ago by mf2k (Frank Schima)

Description: modified (diff)

comment:4 in reply to:  2 Changed 7 years ago by majoc-at-astro (majoc-at-astro)

Replying to Schamschula:

You are building arpack +mpi. armadillo assumes arpack w/o +mpi.

Not explicitly:

port install arpack +gcc6

But now I look, I find openmpi-gcc6 installed further up the build list for other purposes, though None is selected as gcc at the point arpack is built. That might explain why I haven't managed to reproduce the problem in test builds.

Please stand by. That's given me a bunch of things to try.

comment:5 in reply to:  2 ; Changed 7 years ago by majoc-at-astro (majoc-at-astro)

Replying to Schamschula:

You are building arpack +mpi. armadillo assumes arpack w/o +mpi.

Turns out it's not arpack, but hdf5; and hdf5 +openmpi is used elsewhere by us in multiple places. Kludging round this will not be trivial. Hm.

comment:6 in reply to:  5 Changed 7 years ago by majoc-at-astro (majoc-at-astro)

Replying to majoc-at-astro:

Replying to Schamschula:

You are building arpack +mpi. armadillo assumes arpack w/o +mpi.

Turns out it's not arpack, but hdf5 [snip]

My bad: arpack does also take +openmpi, but we don't tell it to explicitly. How it picks it up, I know not.

comment:7 Changed 7 years ago by majoc-at-astro (majoc-at-astro)

I have a partial workaround (of which I'm not proud), with which our build scripts fail to fail. Once the resulting armadillo has been tested by real users, I'll report back.

hdf5_openmpi_variants="`port installed hdf5 | awk '/active/ {print $2}'`"
port -f deactivate hdf5
port install armadillo +arpack # pulls in hdf5 with default variants
port -f deactivate hdf5
port activate hdf5 $hdf5_openmpi_variants

comment:8 Changed 6 years ago by jjstickel (Jonathan Stickel)

Cc: jjstickel added

comment:9 Changed 6 years ago by jjstickel (Jonathan Stickel)

I just got hit with this. Also see #57045 for the same problem with gdal. However, gdal has an openmpi variant; armadillo does not.

comment:10 Changed 6 years ago by Schamschula (Marius Schamschula)

Correct: armadillo has no cmake provision for mpi.

comment:11 Changed 6 years ago by jjstickel (Jonathan Stickel)

I created a pull request that I think fixes the problem for hdf5 +openmpi:

https://github.com/macports/macports-ports/pull/3102

comment:12 Changed 6 years ago by jjstickel (Jonathan Stickel)

@Schamschula don't forget to close this ticket with your fix in dba07a0.

comment:13 Changed 6 years ago by Schamschula (Marius Schamschula)

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.