Opened 3 years ago

Last modified 3 years ago

#62795 closed defect

openmpi: declare lib dependency on target compiler — at Version 3

Reported by: mascguy (Christopher Nielsen) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: openmpi

Description (last modified by mascguy (Christopher Nielsen))

While the various openmpi-* subports declare a build dependency on the target compiler, they do not declare a lib dependency for it.

The implications are that:

  1. The target compiler will be installed for a source build, only to be uninstalled during a reclaim operation.
  2. For a binary install, the target compiler will never be installed. So when a user attempts to use the associated compiler wrappers, they will fail with "The Open MPI wrapper compiler was unable to find the specified compiler."

This doesn't provide a good user experience. Instead, we should add a lib dependency on the target compiler, to avoid this situation.

Of note, this is already being done for mpich-* subports. But apparently this was missed for openmpi.

Change History (3)

comment:1 Changed 3 years ago by mascguy (Christopher Nielsen)

This has been a problem before, and a ticket was created 7 years ago. But either a) it was never properly fixed for openmpi; or b) a regression occurred sometime since then.

issue:43350 - mpich and openmpi shouldn't have compilers as only build-time dependencies

comment:2 Changed 3 years ago by mascguy (Christopher Nielsen)

Interestingly enough, while this is being taken care of for mpich Clang subports, it's not for GCC versions.

mpich's port file states that the compilers PG takes care of things for GCC. While that may have been true in the past, it isn't the case anymore.

Unless we have a regression in the compilers PG...?

Last edited 3 years ago by mascguy (Christopher Nielsen) (previous) (diff)

comment:3 Changed 3 years ago by mascguy (Christopher Nielsen)

Description: modified (diff)
Note: See TracTickets for help on using tickets.