Opened 9 years ago

Closed 9 years ago

#48169 closed defect (fixed)

openmpi @1.7.5 enforces flat namespace, causing problems with some applications

Reported by: hans.ekkehard.plesser@… Owned by: seanfarley (Sean Farley)
Priority: Normal Milestone:
Component: ports Version: 2.3.3
Keywords: Cc: michael-lists@…
Port: openmpi

Description

Per [118768], configure.args were extended to enforce a flat namespace when building OpenMPI. This was necessary to solve #42667 and #39826.

Unfortunately, this causes problems for other applications which rely on two-level namespaces, e.g. when combining a C++ application using MPI with a Python interface. These problems disappear when [118768] is reversed.

Since flat namespaces apparently are needed in some cases, and two-level namespaces in others, I think the openmpi port should have a variant that allows users to choose between flat and two-level namespaces. Unfortunately, the openmpi Portfile looks too intimidating for me to try to add such a variant.

Since Apple deprecates flat namespaces (Apple Developer Docs) and many ports recently seem to have been transitioning to two-level namespaces, I would suggest to make two-level namespaces (i.e., pre-[11768] behavior) the default.

Change History (6)

comment:1 Changed 9 years ago by larryv (Lawrence Velázquez)

Cc: sean@… removed
Owner: changed from macports-tickets@… to sean@…

We really really should not provide a variant for such an arcane detail. We should update to 1.8.6 and then evaluate whether the flat namespace workaround is still necessary.

comment:2 in reply to:  1 ; Changed 9 years ago by seanfarley (Sean Farley)

Replying to larryv@…:

We really really should not provide a variant for such an arcane detail. We should update to 1.8.6 and then evaluate whether the flat namespace workaround is still necessary.

I doubt those original bugs will be fixed with an upgrade because they both are (seemingly) working around Fortran problems. I honestly don't know what to do since Apple is so anti-Fortran. To be fair, nobody should use Fortran but this is our current situation.

comment:3 in reply to:  2 Changed 9 years ago by hans.ekkehard.plesser@…

Replying to sean@…:

Replying to larryv@…:

We really really should not provide a variant for such an arcane detail. We should update to 1.8.6 and then evaluate whether the flat namespace workaround is still necessary.

I doubt those original bugs will be fixed with an upgrade because they both are (seemingly) working around Fortran problems. I honestly don't know what to do since Apple is so anti-Fortran. To be fair, nobody should use Fortran but this is our current situation.

Well, the current configuration with flat namespace breaks C++ applications using 1.7.5 and 1.8.6. We currently recommend MacPorts to users of our package (NEST), but unless the flat namespace problem is fixed, we will probably switch that to Homebrew, because they build OpenMPI without the -flat-namespace option (building from Homebrew is also non-trivial, but easier than Portfile-hacking for MacPorts). So I'd really appreciate it if you could find a solution for this problem in the near future.

comment:4 Changed 9 years ago by seanfarley (Sean Farley)

I'm still looking into this, fyi, just been swamped with work.

comment:5 Changed 9 years ago by michael-lists@…

Cc: michael-lists@… added

Cc Me!

comment:6 Changed 9 years ago by seanfarley (Sean Farley)

Resolution: fixed
Status: newclosed

Fixed in r140086. Sorry for the delay!

Note: See TracTickets for help on using tickets.