diff options
author | Eric Litak <elitak@gmail.com> | 2016-05-29 09:27:47 -0700 |
---|---|---|
committer | Eric Litak <elitak@gmail.com> | 2016-05-31 16:28:04 -0700 |
commit | 7399d0949c4dc2d05e2c487288914e95be8ec831 (patch) | |
tree | c7ef0219ec137d9e8c8577278f60f68ea6857bd6 /pkgs/development/compilers/gcc/5 | |
parent | e8ca9dca5302c86cb56a8bca1d3bc1a7b3435e85 (diff) | |
download | nixlib-7399d0949c4dc2d05e2c487288914e95be8ec831.tar nixlib-7399d0949c4dc2d05e2c487288914e95be8ec831.tar.gz nixlib-7399d0949c4dc2d05e2c487288914e95be8ec831.tar.bz2 nixlib-7399d0949c4dc2d05e2c487288914e95be8ec831.tar.lz nixlib-7399d0949c4dc2d05e2c487288914e95be8ec831.tar.xz nixlib-7399d0949c4dc2d05e2c487288914e95be8ec831.tar.zst nixlib-7399d0949c4dc2d05e2c487288914e95be8ec831.zip |
fixing libcCross related flags
(excluding darwin and mingw for now)
Diffstat (limited to 'pkgs/development/compilers/gcc/5')
-rw-r--r-- | pkgs/development/compilers/gcc/5/default.nix | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/pkgs/development/compilers/gcc/5/default.nix b/pkgs/development/compilers/gcc/5/default.nix index 9e0220ffc728..2512e90ff03f 100644 --- a/pkgs/development/compilers/gcc/5/default.nix +++ b/pkgs/development/compilers/gcc/5/default.nix @@ -256,9 +256,9 @@ stdenv.mkDerivation ({ sed -i "${gnu_h}" \ -es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g' - echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc}/include'..." + echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..." sed -i "${gnu_h}" \ - -es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc}/include"|g' + -es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g' '' else if cross != null || stdenv.cc.libc != null then # On NixOS, use the right path to the dynamic linker instead of @@ -272,7 +272,7 @@ stdenv.mkDerivation ({ grep -q LIBC_DYNAMIC_LINKER "$header" || continue echo " fixing \`$header'..." sed -i "$header" \ - -e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc}\3"|g' + -e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc.out}\3"|g' done '' else null; @@ -482,15 +482,28 @@ stdenv.mkDerivation ({ ++ optional (libpthread != null) libpthread))); EXTRA_TARGET_CFLAGS = - if cross != null && libcCross != null - then "-idirafter ${libcCross}/include" + if cross != null && libcCross != null then [ + "-idirafter ${libcCross.dev}/include" + ] + ++ optionals (! crossStageStatic) [ + "-B${libcCross.out}/lib" + ] else null; EXTRA_TARGET_LDFLAGS = - if cross != null && libcCross != null - then "-B${libcCross}/lib -Wl,-L${libcCross}/lib" + - (optionalString (libpthreadCross != null) - " -L${libpthreadCross}/lib -Wl,${libpthreadCross.TARGET_LDFLAGS}") + if cross != null && libcCross != null then [ + "-Wl,-L${libcCross.out}/lib" + ] + ++ (if crossStageStatic then [ + "-B${libcCross.out}/lib" + ] else [ + "-Wl,-rpath,${libcCross.out}/lib" + "-Wl,-rpath-link,${libcCross.out}/lib" + ]) + ++ optionals (libpthreadCross != null) [ + "-L${libpthreadCross}/lib" + "-Wl,${libpthreadCross.TARGET_LDFLAGS}" + ] else null; passthru = |