Skip to content

Conversation

@strager
Copy link
Contributor

@strager strager commented Jul 11, 2022

On macOS AArch64, Zig's zig0 build is failing with the following error:

Undefined symbols for architecture arm64:
  "operator delete[](void*)", referenced from:
      lld::elf::Configuration::~Configuration() in liblldELF.a(Driver.cpp.o)
      ...
  "operator delete(void*)", referenced from:
      _ZigLLVMGetNativeFeatures in libzigcpp.a(zig_llvm.cpp.o)
      ...
  "operator new[](unsigned long)", referenced from:
      bigint_unsigned_division(BigInt const*, BigInt const*, BigInt*, BigInt*) in libzigstage1.a(bigint.cpp.o)
      ...
  "operator new(unsigned long)", referenced from:
      _ZigLLVMTargetMachineEmitToFile in libzigcpp.a(zig_llvm.cpp.o)
      ...
  "operator new(unsigned long, std::nothrow_t const&)", referenced from:
      _ZigLLVMTargetMachineEmitToFile in libzigcpp.a(zig_llvm.cpp.o)
      ...
ld: symbol(s) not found for architecture arm64
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)

This is because libc++ is selected during linking, but the libc++abi
isn't linked. Link libc++abi to fix the errors.

I think macOS x86_64 is still failing for a different reason.

Description of changes

HELP: Do I need to document somewhere that libc++abi was added to all libc++-using builds? This patch affects more than just the zig package.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 22.11 Release Notes (or backporting 22.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

On macOS AArch64, Zig's zig0 build is failing with the following error:

    Undefined symbols for architecture arm64:
      "operator delete[](void*)", referenced from:
          lld::elf::Configuration::~Configuration() in liblldELF.a(Driver.cpp.o)
          ...
      "operator delete(void*)", referenced from:
          _ZigLLVMGetNativeFeatures in libzigcpp.a(zig_llvm.cpp.o)
          ...
      "operator new[](unsigned long)", referenced from:
          bigint_unsigned_division(BigInt const*, BigInt const*, BigInt*, BigInt*) in libzigstage1.a(bigint.cpp.o)
          ...
      "operator new(unsigned long)", referenced from:
          _ZigLLVMTargetMachineEmitToFile in libzigcpp.a(zig_llvm.cpp.o)
          ...
      "operator new(unsigned long, std::nothrow_t const&)", referenced from:
          _ZigLLVMTargetMachineEmitToFile in libzigcpp.a(zig_llvm.cpp.o)
          ...
    ld: symbol(s) not found for architecture arm64
    clang-13: error: linker command failed with exit code 1 (use -v to see invocation)

This is because libc++ is selected during linking, but the libc++abi
isn't linked. Link libc++abi to fix the errors.

I think macOS x86_64 is still failing for a different reason.
@strager strager requested a review from Ericson2314 as a code owner July 11, 2022 18:19
@ofborg ofborg bot added 6.topic: darwin Running or building packages on Darwin 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. labels Jul 11, 2022
@zowoq
Copy link
Contributor

zowoq commented Jul 17, 2022

https://hydra.nixos.org/build/184023245

zig is now building on aarch64-darwin so I'm closing this in favour of #181485, thanks anyway for the PR.

@zowoq zowoq closed this Jul 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: darwin Running or building packages on Darwin 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants