#72054 closed defect (duplicate)

texlive-bin @2024.70613_1: build failure when gmp is installed for the wrong architecture in /usr/local

Reported by: david888p Owned by: drkp (Dan Ports)
Priority: Normal Milestone:
Component: ports Version: 2.10.5
Keywords: arm64 sequoia Cc:
Port: texlive-bin

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Upgraded to latest Sequoia [15.3.1], upgraded to latest MacPorts [2.10.5], manually removed Xcode app and /Library/Developer directories, reinstalled Xcode [16.2 (16C5032a)] & command line tools.

port clean texlive-bin
port install texlive-bin

--log extract--

:info:build /usr/bin/clang ....
:info:build ld: warning: ignoring file '/usr/local/lib/libgmp.10.dylib': found architecture 'x86_64', required architecture 'arm64'
:info:build 1 warning generated.
:info:build mv -f luatexdir/lua/.deps/libluatex_a-lstrlibext.Tpo ....
:info:build Undefined symbols for architecture arm64:
.
.
.
:info:build ld: symbol(s) not found for architecture arm64
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)
.
.
.
:error:build See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_tex_texlive-bin/texlive-bin/main.log for details.

Attachments (1)

main.log (2.8 MB) - added by david888p 16 months ago.
texlive-bin/main.log

Change History (4)

Changed 16 months ago by david888p

Attachment: main.log added

texlive-bin/main.log

comment:1 Changed 16 months ago by david888p

I found the cause of the build error and a fix, but consider there to still be a defect.

The build failed due to a very old gmp installation (located in /usr/local/bin), which was originally built on an x86 architecture Mac and inadvertently brought over to the new arm-based Mac. The fix was to rebuild gmp (the latest available) in the standard way outside of MacPorts. Another option could have been to remove the non-MacPorts version.

I consider this to still be a defect because the MacPorts build of texlive looks to /user/local/lib for gmp libraries and not to the MacPorts directory, /opt/local. Since gmp is a requirement for texlive and is downloaded and built as part of the texlive MacPorts installation, the MacPorts version should be used preferentially to any other version.

Last edited 16 months ago by david888p (previous) (diff)

comment:2 Changed 16 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: dports@… drkp removed
Description: modified (diff)
Owner: set to drkp
Status: newassigned
Summary: texlive-bin @2024.70613_1: ld: symbol(s) not found for architecture arm64texlive-bin @2024.70613_1: build failure when gmp is installed for the wrong architecture in /usr/local

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

Resolution: duplicate
Status: assignedclosed

To clarify: gmp is not "downloaded and built as part of the texlive MacPorts installation" (emphasis mine), at least I hope it isn't; if it is, that would be a bug. In fact, gmp is listed as a dependency of the texlive-bin port, therefore MacPorts will install the gmp port before building the texlive-bin port and when the texlive-bin port is built it should use the gmp that was already installed (not build its own separate copy).

You're right that ideally texlive-bin would find MacPorts gmp instead of the one you had in /usr/local. However, builds inadvertently finding things in /usr/local is such a common problem that we strongly recommend you not install anything in /usr/local; see wiki:FAQ#usrlocal.

Duplicate of #66146.

Note: See TracTickets for help on using tickets.