Opened 5 months ago

Closed 5 months ago

#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 5 months ago.
texlive-bin/main.log

Change History (4)

Changed 5 months ago by david888p

Attachment: main.log added

texlive-bin/main.log

comment:1 Changed 5 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 5 months ago by david888p (previous) (diff)

comment:2 Changed 5 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 5 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.