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

gccWithoutTargetLibc: enable langCC #370683

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

lzcunt
Copy link
Contributor

@lzcunt lzcunt commented Jan 3, 2025

Previously gccWithoutTargetLibc was built with langCC = false;, which meant stdenvNoLibc had C++ support when not cross compiling or when the host platform toolchain is LLVM, but did not have C++ support when cross compiling for a non-Darwin and non-LLVM host platform. This patch fixes issues when cross compiling C++ packages built with stdenvNoLibc like LLVM libc and the mlibc package I'm working on.

This patch needs discussion on why C++ support was disabled there in the first place.

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • 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/)
  • 25.05 Release Notes (or backporting 24.11 and 25.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
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

Previously gccWithoutTargetLibc was built with `langCC = false;`, which
meant stdenvNoLibc had C++ support when not cross compiling or when the
host platform toolchain is LLVM, but did not have C++ support when cross
compiling for a non-Darwin and non-LLVM host platform. This patch fixes
issues when cross compiling C++ packages built with stdenvNoLibc like
LLVM libc and the mlibc package I'm (sanana) working on.

Co-Authored-By: Artturin <[email protected]>
@emilazy
Copy link
Member

emilazy commented Jan 3, 2025

137 rebuilds really doesn’t need to go to staging.

@emilazy emilazy changed the base branch from staging to master January 3, 2025 20:13
@lzcunt
Copy link
Contributor Author

lzcunt commented Jan 9, 2025

This seems to introduce a regression when building pkgsStatic.stdenvNoLibc.cc.cc. libstdc++ linker tests fail because the tests assume there's a libc when there isn't. Not sure how to fix this.

@alyssais alyssais marked this pull request as draft January 9, 2025 17:51
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