Opened 3 years ago

Last modified 3 years ago

#62656 closed defect

rust @1.51.0 does not build on 10.9: Dyld: lazy symbol binding failed: Symbol not found: _linkat (OS 10.9) — at Version 6

Reported by: cave-canem Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.6.99
Keywords: mavericks Cc: herbygillot (Herby Gillot)
Port: rust

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

I changed on line #93 of Portfile-rust ${os.major} < 14} to ${os.major} < 13, and tried to build "rust" with mp-clang-11.

Result:

dyld: lazy symbol binding failed: Symbol not found: _linkat
  Referenced from: /opt/MacPorts/var/macports/build/_opt_macports-ports_lang_rust/rust/work/rustc-1.51.0-src/build/stage0-x86_64/bin/cargo
  Expected in: /usr/lib/libSystem.B.dylib

The problem is that now the "mpv @ 0.33.1" and "youtube-dl @ 2021.04.01" ports (in particular) depend on the rav1e port, which depends on the "rust" port.

In other words, not only the rust port breaks, but other ports as well!

As a possible solution, can you add a static linking variant to the rust port?

See attached log with debug information.

See also link: https://github.com/rust-lang/libc/issues/2036

Change History (7)

Changed 3 years ago by cave-canem

Attachment: main.log.tar.gz added

main.log

comment:1 Changed 3 years ago by cave-canem

Description: modified (diff)

comment:2 Changed 3 years ago by cave-canem

Description: modified (diff)

comment:3 Changed 3 years ago by kencu (Ken)

rav1e was just removed from libheif for many systems. [aebe51e3cd62e27205f1a41df8ab0668395cf73b/macports-ports] and this should improve your immediate problem installing mpv once that rolls out to you. (We'll probably wind up removing it from more or all systems soon enough).

You can't static link rust to fix this.

(BTW, isn't it just wonderful that MacPorts supports Mavericks so well?! Please tell all your friends how great it is.)

Last edited 3 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:4 Changed 3 years ago by kencu (Ken)

Description: modified (diff)

comment:5 Changed 3 years ago by kencu (Ken)

Cc: cave-canem g5pw@… removed
Summary: rust @1.51.0 Dyld: lazy symbol binding failed: Symbol not found: _linkat (OS 10.9)rust @1.51.0 does not build on 10.9: Dyld: lazy symbol binding failed: Symbol not found: _linkat (OS 10.9)

comment:6 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: herbygillot added; herby.gillot@… removed
Description: modified (diff)
dyld: lazy symbol binding failed: Symbol not found: _linkat

I guess that's why the port doesn't allow you to install rust on 10.9. :)

Note: See TracTickets for help on using tickets.