Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zig: fix compilation on Darwin AArch64 #181143

Closed
wants to merge 1 commit into from
Closed

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.
@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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants