Opened 3 months ago

Last modified 3 months ago

#65088 assigned defect

mumps @5.3.1: undefined symbols

Reported by: bosmacs (Craig Bosma) Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version: 2.7.2
Keywords: monterey Cc:
Port: mumps

Description

When building MUMPS (for PETSc), I get the following linker failure, which appears to be related to the scotch dependency:

:info:build Undefined symbols for architecture x86_64:
:info:build   "_scotchfgraphbuild_", referenced from:
:info:build       ___mumps_ana_ord_wrappers_MOD_mumps_scotch_kway_mixedto64 in ana_orderings_wrappers_m.o
:info:build       ___mumps_ana_ord_wrappers_MOD_mumps_scotch_kway_mixedto32 in ana_orderings_wrappers_m.o
:info:build   "_scotchfgraphexit_", referenced from:
:info:build       ___mumps_ana_ord_wrappers_MOD_mumps_scotch_kway_mixedto64 in ana_orderings_wrappers_m.o
:info:build       ___mumps_ana_ord_wrappers_MOD_mumps_scotch_kway_mixedto32 in ana_orderings_wrappers_m.o
:info:build   "_scotchfgraphpart_", referenced from:
:info:build       ___mumps_ana_ord_wrappers_MOD_mumps_scotch_kway_mixedto64 in ana_orderings_wrappers_m.o
:info:build       ___mumps_ana_ord_wrappers_MOD_mumps_scotch_kway_mixedto32 in ana_orderings_wrappers_m.o
:info:build   "_scotchfstratexit_", referenced from:
:info:build       ___mumps_ana_ord_wrappers_MOD_mumps_scotch_kway_mixedto64 in ana_orderings_wrappers_m.o
:info:build       ___mumps_ana_ord_wrappers_MOD_mumps_scotch_kway_mixedto32 in ana_orderings_wrappers_m.o
:info:build   "_scotchfstratinit_", referenced from:
:info:build       ___mumps_ana_ord_wrappers_MOD_mumps_scotch_kway_mixedto64 in ana_orderings_wrappers_m.o
:info:build       ___mumps_ana_ord_wrappers_MOD_mumps_scotch_kway_mixedto32 in ana_orderings_wrappers_m.o
:info:build ld: symbol(s) not found for architecture x86_64

This happens on two separate systems, one an x86_64, the other M1/aarch64, both on Monterey.

In addition, the port is a bit out of date, as the current version of MUMPS is 5.5.

Change History (3)

comment:1 Changed 3 months ago by ryandesign (Ryan Schmidt)

Keywords: monterey added
Owner: set to MarcusCalhoun-Lopez
Port: mumps added
Status: newassigned
Summary: MUMPS 5.3.1 fails to link on x86_61 and aarch64mumps @5.3.1: undefined symbols

comment:2 Changed 3 months ago by bosmacs (Craig Bosma)

After further investigation, the missing symbols do appear in libscotch.dylib, but not libptscotch.dylib -- at least for the MP version of scotch.

comment:3 Changed 3 months ago by bosmacs (Craig Bosma)

This is expected with SCOTCH 6.0 and greater, as the MUMPS FAQ states:

Furthermore, in the SCOTCH 6.0.x series, the PT-SCOTCH library does not include the SCOTCH library. Therefore, when using PT-SCOTCH, the SCOTCH library must also be provided during the link phase. A typical example of LSCOTCH definition in your Makefile.inc will then look like:

LSCOTCH = -L$(LSCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr -lscotch

I modified the MUMPS patch to Makefile.inc to include -lscotch which allowed MUMPS to build and install successfully. Unfortunately PETSc with +mumps now fails to build, which was my goal from the beginning. It appears its configure checks for MUMPS link to the static version and do not include the dependency -lscotch.

Note: See TracTickets for help on using tickets.