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

fractal: save memory by building without debug symbols #384790

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

Conversation

yuyuyureka
Copy link
Contributor

The debug symbols are stripped afterwards anyways, and linking with them requires extra memory

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.

The debug symbols are stripped afterwards anyways, and linking with them requires extra memory
@yuyuyureka yuyuyureka requested a review from flokli February 24, 2025 15:20
@github-actions github-actions bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 1 10.rebuild-linux: 1-10 labels Feb 24, 2025
@flokli
Copy link
Contributor

flokli commented Feb 24, 2025

With this I'm able to compile Fractal on an m2 air without running OOM.

# Disable debug symbols in release builds
# The debug symbols are stripped afterwards anyways, and building with them requires extra memory
postPatch = ''
substituteInPlace Cargo.toml --replace-fail "debug = true" "#debug = true"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if setting the CARGO_PROFILE_RELEASE_DEBUG env var would be cleaner.

This can potentially match multiple times in that file, and the --replace-fail wouldn't start failing if only one of them stops matching.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like CARGO_PROFILE_RELEASE_DEBUG because it won't fail even if they remove the debug = true.
I can convert it to a patch instead if you want, but I think the "debug = true" matching multiple lines is rather unlikely.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 1-10 10.rebuild-linux: 1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants