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
avr: use new cross compilation infrastructure #48286
Conversation
👍 ❤️ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gorgeous!
Success on aarch64-linux (full log) Attempted: gcc, stdenv The following builds were skipped because they don't evaluate on aarch64-linux: avrdudess Partial log (click to expand)
|
Success on x86_64-linux (full log) Attempted: gcc, stdenv The following builds were skipped because they don't evaluate on x86_64-linux: avrdudess Partial log (click to expand)
|
Success on x86_64-darwin (full log) Attempted: gcc, stdenv The following builds were skipped because they don't evaluate on x86_64-darwin: avrdudess Partial log (click to expand)
|
@GrahamcOfBorg build pkgsCross.avr.hello |
No attempt on x86_64-darwin (full log) The following builds were skipped because they don't evaluate on x86_64-darwin: pkgsCross.avr.hello Partial log (click to expand)
|
No attempt on x86_64-linux (full log) The following builds were skipped because they don't evaluate on x86_64-linux: pkgsCross.avr.hello Partial log (click to expand)
|
No attempt on aarch64-linux (full log) The following builds were skipped because they don't evaluate on aarch64-linux: pkgsCross.avr.hello Partial log (click to expand)
|
@GrahamcOfBorg build pkgsCross.arduino-avr.hello I need to figure out a way that we don't break qmk_firmware, which looks like it uses Nix: |
No attempt on x86_64-darwin (full log) The following builds were skipped because they don't evaluate on x86_64-darwin: pkgsCross.arduino-avr.hello Partial log (click to expand)
|
No attempt on aarch64-linux (full log) The following builds were skipped because they don't evaluate on aarch64-linux: pkgsCross.arduino-avr.hello Partial log (click to expand)
|
@GrahamcOfBorg build pkgsCross.arduino-uno.hello |
No attempt on x86_64-linux (full log) The following builds were skipped because they don't evaluate on x86_64-linux: pkgsCross.arduino-avr.hello Partial log (click to expand)
|
Failure on aarch64-linux (full log) Attempted: pkgsCross.arduino-uno.hello Partial log (click to expand)
|
Failure on x86_64-darwin (full log) Attempted: pkgsCross.arduino-uno.hello Partial log (click to expand)
|
Failure on x86_64-linux (full log) Attempted: pkgsCross.arduino-uno.hello Partial log (click to expand)
|
Oh I recall our GCC derivation doing something funny with limits.h |
@Ericson2314 It looks like it's coming from this line: https://github.com/nixos/nixpkgs/blob/master/pkgs/development/compilers/gcc/builder.sh#L142 We've always assumed we had limits.h, but that's not always the case. Maybe remove that line from the builder? (later on of course, trying to avoid mass rebuilds here) |
That is we overwrite the builtin LIMITS_H_TEST with that flag, causing it to always be true: https://github.com/gcc-mirror/gcc/blob/master/gcc/Makefile.in#L535 But it looks like we can't avoid the mass rebuild unfortunately! |
Success on x86_64-darwin (full log) Attempted: gcc, stdenv The following builds were skipped because they don't evaluate on x86_64-darwin: avrdudess Partial log (click to expand)
|
Success on aarch64-linux (full log) Attempted: gcc, stdenv The following builds were skipped because they don't evaluate on aarch64-linux: avrdudess Partial log (click to expand)
|
These two are unmaintained, no reason to keep them when they are out-of-date
Failure on x86_64-darwin (full log) Attempted: axoloti, dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli Partial log (click to expand)
|
These packages should in theory work with our GCC toolchains, but there are some definite breakages that need to be tracked down. Comparing output of these to old gcc-arm-embedded is important. Affected packages include: - axolooti - avrdudess - opentx - microscheme - betaflight - inav - blackmagic - simavr - gnuk
replace with: - pkgsCross.arm-embedded.buildPackages.gcc - pkgsCross.arm-embedded.buildPackages.binutils
mentorToolchains.armLinuxGnuEabi is replaced with: - pkgsCross.pogoplug4.buildPackages.gcc - pkgsCross.pogoplug4.buildPackages.binutils and mentorToolchains.armEabi is replaced with: - pkgsCross.arm-embedded.buildPackages.gcc - pkgsCross.arm-embedded.buildPackages.binutils Fixes NixOS#39087
A convenient way to test embedded projects
Failure on aarch64-linux (full log) Attempted: dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli The following builds were skipped because they don't evaluate on aarch64-linux: axoloti Partial log (click to expand)
|
Merging this now. Apologies if this breaks anything. I will be available to fix any potential breakages this weekend. Please report any issues as the appear! |
Failure on x86_64-linux (full log) Attempted: axoloti, dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli Partial log (click to expand)
|
Failure on aarch64-linux (full log) Attempted: dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli The following builds were skipped because they don't evaluate on aarch64-linux: axoloti Partial log (click to expand)
|
Failure on x86_64-darwin (full log) Attempted: axoloti, dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli Partial log (click to expand)
|
Timed out, unknown build status on x86_64-linux (full log) Attempted: axoloti, dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli Partial log (click to expand)
|
Timed out, unknown build status on x86_64-darwin (full log) Attempted: axoloti, dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli Partial log (click to expand)
|
Failure on aarch64-linux (full log) Attempted: dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli The following builds were skipped because they don't evaluate on aarch64-linux: axoloti Partial log (click to expand)
|
Timed out, unknown build status on x86_64-linux (full log) Attempted: axoloti, dfu-programmer, gcc, newlib, qmk_firmware, teensy-loader-cli Partial log (click to expand)
|
It checks for "nano" with "if(NOT NANO STREQUAL NO)". Broken since https://hydra.nixos.org/build/83296608 (#48286).
It was difficult for me to figure out how to find avr-gcc after this change, since command-not-found no longer reports which package provides it. Is there anything we can do about that? |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/how-to-build-patched-avr-gcc-with-patched-avr-libc/21468/2 |
Gets rid of:
to replace with: