Skip to content

brewsci-mumps: fix macOS build on Xcode 16+ and update dead source URL#88

Open
kdunn926 wants to merge 1 commit into
brewsci:masterfrom
kdunn926:fix-mumps-macos-linker-and-source-url
Open

brewsci-mumps: fix macOS build on Xcode 16+ and update dead source URL#88
kdunn926 wants to merge 1 commit into
brewsci:masterfrom
kdunn926:fix-mumps-macos-linker-and-source-url

Conversation

@kdunn926

Copy link
Copy Markdown

Summary

Two independent fixes so brewsci-mumps builds from source on current macOS.

1. Dead source URL

http://mumps.enseeiht.fr/MUMPS_5.3.5.tar.gz no longer responds (connection times out), so brew install brewsci-mumps fails at the download step. The official https://mumps-solver.org host serves the identical tarball, so only the url changes — the sha256 is unchanged (verified: e5d665fdb7043043f0799ae3dbe3b37e5b200d1ab7a6f7b2a4e463fd89507fa4).

2. -noall_load rejected by the Xcode 16+ linker

The macOS shared-library link wrapped each static archive in -Wl,-all_load <archive> ... -Wl,-noall_load. The linker shipped with Xcode 16 removed -noall_load:

ld: unknown options: -noall_load
collect2: error: ld returned 1 exit status

Switched to -Wl,-force_load,<archive>, which force-loads a single archive and needs no matching "undo" flag. This is safe because -all_load/-force_load only affect static .a inputs and every other input on those link lines is a dynamic -l. Linux behavior is unchanged (still --whole-archive / --no-whole-archive).

Test plan

  • brew install --build-from-source brewsci-mumps on macOS 15.3 (arm64), Xcode CLT 16.4 — builds cleanly (both fixes required).
  • The resulting libdmumps/libzmumps/… link and run correctly: a full Elmer FEM build with --with-mumps passes its MUMPS quick-test suite 435/435 (parallel MUMPS via ScaLAPACK + ParMetis).

Notes

  • These are source-build fixes; maintainers may want a revision bump to trigger new bottles.

Two independent fixes so the formula builds on current macOS:

* Source URL: http://mumps.enseeiht.fr no longer responds. Point url at
  the official https://mumps-solver.org host, which serves the identical
  MUMPS_5.3.5 tarball (unchanged sha256).

* Shared-lib link: the macOS branch wrapped each static archive in
  "-Wl,-all_load <archive> ... -Wl,-noall_load", but the linker shipped
  with Xcode 16 removed -noall_load, failing with
  "ld: unknown options: -noall_load". Use -Wl,-force_load,<archive>
  instead, which force-loads a single archive and needs no undo flag.
  Linux keeps the --whole-archive / --no-whole-archive wrap unchanged.

Verified: brew install brewsci-mumps builds from source on macOS 15
(arm64, Xcode CLT 16.4); the resulting libraries link and pass a full
Elmer FEM MUMPS test suite (435/435).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant