Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 6bbf50374fee
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 9c3b2b6ad33d
Choose a head ref
  • 2 commits
  • 2 files changed
  • 2 contributors

Commits on Jan 12, 2018

  1. avrgcc: bake path to avr-ar into avr-gcc-ar

    gcc provides wrappers for binutils' ar, nm and ranlib
    executables, which must be used instead when using link-time
    optimisation. See also:
    http://manpages.ubuntu.com/manpages/zesty/man1/aarch64-linux-gnu-gcc-ar-5.1.html
    
    The upstream version of avr-gcc-ar searches in paths passed to
    the configure script for the avr-ar binary that it wraps, falling
    back to searching PATH instead. Thus currently avr-gcc-ar works on
    Nix, but only if avrbinutils is already in the environment.
    
    This change bakes the path to avr-ar into avr-gcc-ar, since its path
    is known at compile time. It also no longer searches PATH, meaning the
    user's local environment won't override this path.
    
    Note that avr-gcc-nm and avr-gcc-ranlib are compiled from the same
    source file as avr-gcc-ar, just with different compiler flags.
    
    Testing on master (without avrbinutils in the environment):
    
        $ nix-build -A avrgcc
        $ result/bin/avr-gcc-ar --version
        result/bin/avr-gcc-ar: Cannot find binary 'avr-ar'
    
    Testing on branch with this fix:
    
        $ nix-build -A avrgcc
        $ result/bin/avr-gcc-ar --version
        GNU ar (GNU Binutils) 2.26.20160125
        ...
    kierdavis committed Jan 12, 2018
    Copy the full SHA
    6bfa422 View commit details
  2. Merge pull request #33762 from kierdavis/fix-avr-gcc-ar

    avrgcc: bake path to avr-ar into avr-gcc-ar
    Mic92 authored Jan 12, 2018
    Copy the full SHA
    9c3b2b6 View commit details
Showing with 25 additions and 0 deletions.
  1. +15 −0 pkgs/development/misc/avr/gcc/avrbinutils-path.patch
  2. +10 −0 pkgs/development/misc/avr/gcc/default.nix
15 changes: 15 additions & 0 deletions pkgs/development/misc/avr/gcc/avrbinutils-path.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
diff --git a/gcc/gcc-ar.c b/gcc/gcc-ar.c
index 838ebc2..3ac4ee7 100644
--- a/gcc/gcc-ar.c
+++ b/gcc/gcc-ar.c
@@ -118,8 +118,8 @@ setup_prefixes (const char *exec_path)
dir_separator, NULL);
prefix_from_string (self_libexec_prefix, &target_path);

- /* Add path as a last resort. */
- prefix_from_env ("PATH", &path);
+ /* Add path to avrbinutils. */
+ prefix_from_string ("@avrbinutils@/bin", &path);
}

int
10 changes: 10 additions & 0 deletions pkgs/development/misc/avr/gcc/default.nix
Original file line number Diff line number Diff line change
@@ -11,6 +11,16 @@ stdenv.mkDerivation {
sha256 = "0fihlcy5hnksdxk0sn6bvgnyq8gfrgs8m794b1jxwd1dxinzg3b0";
};

patches = [
./avrbinutils-path.patch
];

# avrbinutils-path.patch introduces a reference to @avrbinutils@, substitute
# it now.
postPatch = ''
substituteInPlace gcc/gcc-ar.c --subst-var-by avrbinutils ${avrbinutils}
'';

buildInputs = [ gmp mpfr libmpc zlib avrbinutils ];

nativeBuildInputs = [ texinfo ];