[MacPorts] #62252: rust @1.47.0_0: Failed to build rust: command execution failed

MacPorts noreply at macports.org
Thu Apr 8 07:25:19 UTC 2021


#62252: rust @1.47.0_0: Failed to build rust: command execution failed
------------------------+--------------------
  Reporter:  macdeport  |      Owner:  g5pw
      Type:  defect     |     Status:  closed
  Priority:  Normal     |  Milestone:
 Component:  ports      |    Version:  2.6.4
Resolution:  fixed      |   Keywords:
      Port:  rust       |
------------------------+--------------------

Comment (by cjones051073):

 Replying to [comment:19 kencu]:
 > Replying to [comment:11 herbygillot]:
 > > {{{
 > > :info:build Undefined symbols for architecture x86_64:
 > > :info:build   "_macports_legacy_sysconf", referenced from:
 > > :info:build
 llvm::sys::commandLineFitsWithinSystemLimits(llvm::StringRef,
 llvm::ArrayRef<char const*>) in libLLVMSupport.a(Program.cpp.o)
 > > :info:build
 llvm::sys::commandLineFitsWithinSystemLimits(llvm::StringRef,
 llvm::ArrayRef<llvm::StringRef>) in libLLVMSupport.a(Program.cpp.o)
 > > :info:build ld: symbol(s) not found for architecture x86_64
 > > :info:build clang: error: linker command failed with exit code 1 (use
 -v to see invocation)
 > > }}}
 > >
 > > My guess is that this may have to do with the `legacysupport` added in
 this commit: [e4c13e2baf252842c5702dcfed2fca79c4e8fc14/macports-ports]
 > >
 >
 > FYI the reason this occurs is:
 >
 > the legacy support library is built, showing no need for the
 macports_legacy_sysconf wrap based on the system version being built
 against.
 >
 > later, software tries to build against an older deployment target. The
 legacysupport headers see the deployment target and so they think the
 macports_legacy_sysconf wrap is needed, but when it goes to link, that
 symbol doesn't exist in the library.
 >
 > I am trying to sort out how to elegantly handle this issue.

 Maybe the thing to do is to always build the method
 macports_legacy_sysconf in the c file, such that it will then always
 appear in the dynamic and static libs, but to carry on only exposing its
 use in the wrapped headers when required. That way with the scenario above
 the symbols will still be found when an older deployment target is used.

-- 
Ticket URL: <https://trac.macports.org/ticket/62252#comment:20>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list