Skip to content

Commit

Permalink
Merge pull request #209153 from trofi/gcc-libs-cross-link
Browse files Browse the repository at this point in the history
gcc: provide both native and cross forms of gcc.libs libraries
  • Loading branch information
trofi authored Jan 14, 2023
2 parents 909864d + 2c931bd commit 1bc0b7a
Show file tree
Hide file tree
Showing 10 changed files with 20 additions and 0 deletions.
1 change: 1 addition & 0 deletions pkgs/development/compilers/gcc/10/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,7 @@ stdenv.mkDerivation ({
};

targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
targetPlatformConfig = targetPlatform.config;

buildFlags = optional
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
Expand Down
1 change: 1 addition & 0 deletions pkgs/development/compilers/gcc/11/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,7 @@ stdenv.mkDerivation ({
};

targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
targetPlatformConfig = targetPlatform.config;

buildFlags = optional
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
Expand Down
1 change: 1 addition & 0 deletions pkgs/development/compilers/gcc/12/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,7 @@ stdenv.mkDerivation ({
};

targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
targetPlatformConfig = targetPlatform.config;

buildFlags = optional
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
Expand Down
1 change: 1 addition & 0 deletions pkgs/development/compilers/gcc/4.8/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ stdenv.mkDerivation ({
};

targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
targetPlatformConfig = targetPlatform.config;

buildFlags = optional
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
Expand Down
1 change: 1 addition & 0 deletions pkgs/development/compilers/gcc/4.9/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ stdenv.mkDerivation ({
};

targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
targetPlatformConfig = targetPlatform.config;

buildFlags = optional
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
Expand Down
1 change: 1 addition & 0 deletions pkgs/development/compilers/gcc/6/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@ stdenv.mkDerivation ({
};

targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
targetPlatformConfig = targetPlatform.config;

buildFlags = optional
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
Expand Down
1 change: 1 addition & 0 deletions pkgs/development/compilers/gcc/7/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,7 @@ stdenv.mkDerivation ({
;

targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
targetPlatformConfig = targetPlatform.config;

buildFlags = optional
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
Expand Down
1 change: 1 addition & 0 deletions pkgs/development/compilers/gcc/8/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ stdenv.mkDerivation ({
};

targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
targetPlatformConfig = targetPlatform.config;

buildFlags = optional
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
Expand Down
1 change: 1 addition & 0 deletions pkgs/development/compilers/gcc/9/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,7 @@ stdenv.mkDerivation ({
};

targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
targetPlatformConfig = targetPlatform.config;

buildFlags = optional
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
Expand Down
11 changes: 11 additions & 0 deletions pkgs/development/compilers/gcc/builder.sh
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,17 @@ preInstall() {
ln -s lib "$out/${targetConfig}/lib32"
ln -s lib "${!outputLib}/${targetConfig}/lib32"
fi

# cc-wrappers uses --sysroot=/nix/store/does/not/exist as a way to
# drop default sysheaders search path. Unfortunately that switches
# clang++ into searching libraries in gcc in cross-compiler paths:
# from ${!outputLib}/lib (native)
# to ${!outputLib}/${targetPlatformConfig}/lib
# We create the symlink to make both native and cross paths
# available even if the toolchain is not the cross-compiler.
if [ ! -e ${!outputLib}/${targetPlatformConfig} ] ; then
ln -s . ${!outputLib}/${targetPlatformConfig}
fi
}


Expand Down

0 comments on commit 1bc0b7a

Please sign in to comment.