安装 GHC 时出现自制错误:链接器没有选项 `-no_fixup_chains`

问题描述 投票:0回答:1

我尝试使用自制软件安装 GHC(因为 Xcode 需要 MacOS 13.5 及更高版本,但我仍然使用 10.15)。安装错误如下:

...

==> ./configure --prefix=/private/tmp/ghc-20240220-1137-fsefy4/ghc-9.8.1/binary
==> make install
==> cabal v2-update
==> ./configure --disable-numa --with-intree-gmp --with-ffi-libraries=/Library/Developer/CommandLineTools/
==> hadrian/build install -j4 --prefix=/usr/local/Cellar/ghc/9.8.1 --flavour=release --docs=no-sphinx-pdfs
sLast 15 lines from /Users/ntatsu/Library/Logs/Homebrew/ghc/05.build:
):
Configuring library for clock-0.8.3..
clang: warning: -Wl,-headerpad_max_install_names: 'linker' input unused [-Wunused-command-line-argument]
clang: warning: argument unused during compilation: '-L/usr/local/lib' [-Wunused-command-line-argument]
clang: warning: argument unused during compilation: '-L/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/OpenGL.framework/Versions/Current/Libraries' [-Wunused-command-line-argument]
Preprocessing library for clock-0.8.3..
linking dist/build/System/Clock_hsc_make.o failed (exit code 1)
rsp file was: "dist/build/System/hsc2hscall71403-2.rsp"
command was: /usr/local/Homebrew/Library/Homebrew/shims/mac/super/clang dist/build/System/Clock_hsc_make.o dist/build/System/Clock_hsc_utils.o -o dist/build/System/Clock_hsc_make --target=x86_64-apple-darwin -Wl,-no_fixup_chains --target=x86_64-apple-darwin -L/private/tmp/ghc-20240220-1137-fsefy4/ghc-9.8.1/binary/lib/ghc-9.6.3/lib/../lib/x86_64-osx-ghc-9.6.3/base-4.18.1.0 -liconv -L/private/tmp/ghc-20240220-1137-fsefy4/ghc-9.8.1/binary/lib/ghc-9.6.3/lib/../lib/x86_64-osx-ghc-9.6.3/ghc-bignum-1.3 -L/private/tmp/ghc-20240220-1137-fsefy4/ghc-9.8.1/binary/lib/ghc-9.6.3/lib/../lib/x86_64-osx-ghc-9.6.3/ghc-prim-0.10.0 -L/private/tmp/ghc-20240220-1137-fsefy4/ghc-9.8.1/binary/lib/ghc-9.6.3/lib/../lib/x86_64-osx-ghc-9.6.3/rts-1.0.2 -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib -lm -ldl -lffi
error: ld: unknown option: -no_fixup_chains
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Error: cabal: Failed to build clock-0.8.3 (which is required by exe:hadrian
from hadrian-0.1.0.0). See the build log above for details.


==> Formula
Path: /Users/ntatsu/Library/Caches/Homebrew/downloads/bbaa37616f442ae13a47e95eab3c322382f307b75eded5e9038acbad2f3729b9--ghc.rb
==> Configuration
HOMEBREW_VERSION: 4.2.9
ORIGIN: https://github.com/Homebrew/brew
HEAD: e5fefd73cd97cd36ae3af29551f529ae59b333d6
Last commit: 25 hours ago
Core tap JSON: 20 Feb 08:50 UTC
Core cask tap JSON: 20 Feb 08:50 UTC
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CASK_OPTS: []
HOMEBREW_MAKE_JOBS: 4
HOMEBREW_VERBOSE: set
Homebrew Ruby: 3.1.4 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/bin/ruby
CPU: quad-core 64-bit kabylake
Clang: 12.0.0 build 1200
Git: 2.43.1 => /usr/local/bin/git
Curl: 7.64.1 => /usr/bin/curl
macOS: 10.15.7-x86_64
CLT: 12.0.0.32.29
Xcode: N/A
==> ENV
LD: ld
HOMEBREW_CC: clang
HOMEBREW_CXX: clang++
CMAKE_PREFIX_PATH: /usr/local/opt/sphinx-doc:/usr/local
CMAKE_INCLUDE_PATH: /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/OpenGL.framework/Versions/Current/Headers
CMAKE_LIBRARY_PATH: /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/OpenGL.framework/Versions/Current/Libraries
CMAKE_FRAMEWORK_PATH: /usr/local/opt/[email protected]/Frameworks
PKG_CONFIG_PATH: /usr/local/opt/[email protected]/lib/pkgconfig:/usr/local/opt/xz/lib/pkgconfig
PKG_CONFIG_LIBDIR: /usr/lib/pkgconfig:/usr/local/Homebrew/Library/Homebrew/os/mac/pkgconfig/10.15
HOMEBREW_VERBOSE: 1
HOMEBREW_GIT: git
HOMEBREW_SDKROOT: /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk
ACLOCAL_PATH: /usr/local/share/aclocal
PATH: /usr/local/opt/gnu-sed/libexec/gnubin:/private/tmp/ghc-20240220-1137-fsefy4/ghc-9.8.1/binary/bin:/usr/local/Homebrew/Library/Homebrew/shims/mac/super:/usr/local/opt/autoconf/bin:/usr/local/opt/automake/bin:/usr/local/opt/[email protected]/bin:/usr/local/opt/sphinx-doc/bin:/usr/local/opt/xz/bin:/usr/local/opt/gnu-sed/bin:/usr/local/opt/[email protected]/libexec/bin:/usr/bin:/bin:/usr/sbin:/sbin

Error: ghc 9.8.1 did not build
Logs:
     /Users/ntatsu/Library/Logs/Homebrew/ghc/00.options.out
     /Users/ntatsu/Library/Logs/Homebrew/ghc/01.configure
     /Users/ntatsu/Library/Logs/Homebrew/ghc/01.configure.cc
     /Users/ntatsu/Library/Logs/Homebrew/ghc/02.make
     /Users/ntatsu/Library/Logs/Homebrew/ghc/03.cabal
     /Users/ntatsu/Library/Logs/Homebrew/ghc/04.configure
     /Users/ntatsu/Library/Logs/Homebrew/ghc/04.configure.cc
     /Users/ntatsu/Library/Logs/Homebrew/ghc/05.build
     /Users/ntatsu/Library/Logs/Homebrew/ghc/05.build.cc
     /Users/ntatsu/Library/Logs/Homebrew/ghc/config.log
Do not report this issue to Homebrew/brew or Homebrew/homebrew-core!

...

我认为问题是clang的链接器太旧了,所以我用brew安装了gcc-13,但这并没有改变链接器的失败。在线搜索不会产生有关该选项

ld -no_fixup_chains
的任何信息。 关于链接器是否有一些我不知道的事情,例如
-no_fixup_chains
是链接器的扩展,或者该名称已被放弃/被另一个(新)选项替换?还是Homebrew的安装有问题?

gcc linker clang homebrew ghc
1个回答
0
投票

请参阅 https://discourse.haskell.org/t/solved-trouble-building-unix-package-on-macos-ld-unknown-option-no-fixup-chains/7772 的讨论

尝试找到并删除该选项

-no_fixup_chains

# file: hsc2hs
HSC2HS_EXTRA="--cflag=--target=x86_64-apple-darwin--lflag=--target=x86_64-apple-darwin --lflag=-Wl,-no_fixup_chains"
© www.soinside.com 2019 - 2024. All rights reserved.