diff options
-rw-r--r-- | pkgs/development/compilers/gcc/4.5/default.nix | 71 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/4.8/default.nix | 68 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/4.9/default.nix | 68 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/5/default.nix | 68 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/6/default.nix | 70 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/7/default.nix | 70 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/builder.sh | 18 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/snapshot/default.nix | 70 |
8 files changed, 254 insertions, 249 deletions
diff --git a/pkgs/development/compilers/gcc/4.5/default.nix b/pkgs/development/compilers/gcc/4.5/default.nix index 68c83a208da8..c4dae5c8b66f 100644 --- a/pkgs/development/compilers/gcc/4.5/default.nix +++ b/pkgs/development/compilers/gcc/4.5/default.nix @@ -339,18 +339,21 @@ stdenv.mkDerivation ({ LD = "ld"; CC = "gcc"; - # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find - # the library headers and binaries, regarless of the language being - # compiled. - - # Note: When building the Java AWT GTK+ peer, the build system doesn't - # honor `--with-gmp' et al., e.g., when building - # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just - # add them to $CPATH and $LIBRARY_PATH in this case. + # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the + # library headers and binaries, regarless of the language being compiled. + # + # Note: When building the Java AWT GTK+ peer, the build system doesn't honor + # `--with-gmp' et al., e.g., when building + # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add + # them to $CPATH and $LIBRARY_PATH in this case. # # Likewise, the LTO code doesn't find zlib. + # + # Cross-compiling, we need gcc not to read ./specs in order to build the g++ + # compiler (after the specs for the cross-gcc are created). Having + # LIBRARY_PATH= makes gcc read the specs from ., and the build breaks. - CPATH = makeSearchPathOutput "dev" "include" ([] + CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([] ++ optional (zlib != null) zlib ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs @@ -360,41 +363,39 @@ stdenv.mkDerivation ({ # On GNU/Hurd glibc refers to Mach & Hurd # headers. - ++ optionals (libcCross != null && - hasAttr "propagatedBuildInputs" libcCross) - libcCross.propagatedBuildInputs); + ++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" ) + libcCross.propagatedBuildInputs + )); - LIBRARY_PATH = makeLibraryPath ([] + LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] ++ optional (zlib != null) zlib ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk [ gmp mpfr ] - ++ optional (libpthread != null) libpthread); - - EXTRA_TARGET_CFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-idirafter ${libcCross.dev}/include" - ] - ++ optionals (! crossStageStatic) [ - "-B${libcCross.out}/lib" - ] - else null; - - EXTRA_TARGET_LDFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-Wl,-L${libcCross.out}/lib" - ] - ++ (if crossStageStatic then [ + ++ optional (libpthread != null) libpthread) + ); + + EXTRA_TARGET_FLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-idirafter ${libcCross.dev}/include" + ] ++ optionals (! crossStageStatic) [ + "-B${libcCross.out}/lib" + ]); + + EXTRA_TARGET_LDFLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-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; + ]) ++ optionals (libpthreadCross != null) [ + "-L${libpthreadCross}/lib" + "-Wl,${libpthreadCross.TARGET_LDFLAGS}" + ]); passthru = { inherit langC langCC langAda langFortran langVhdl enableMultilib version; isGNU = true; }; diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix index 17965406da05..15529bd554a4 100644 --- a/pkgs/development/compilers/gcc/4.8/default.nix +++ b/pkgs/development/compilers/gcc/4.8/default.nix @@ -413,18 +413,21 @@ stdenv.mkDerivation ({ # http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210 CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc"; - # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find - # the library headers and binaries, regarless of the language being - # compiled. - - # Note: When building the Java AWT GTK+ peer, the build system doesn't - # honor `--with-gmp' et al., e.g., when building - # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just - # add them to $CPATH and $LIBRARY_PATH in this case. + # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the + # library headers and binaries, regarless of the language being compiled. + # + # Note: When building the Java AWT GTK+ peer, the build system doesn't honor + # `--with-gmp' et al., e.g., when building + # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add + # them to $CPATH and $LIBRARY_PATH in this case. # # Likewise, the LTO code doesn't find zlib. + # + # Cross-compiling, we need gcc not to read ./specs in order to build the g++ + # compiler (after the specs for the cross-gcc are created). Having + # LIBRARY_PATH= makes gcc read the specs from ., and the build breaks. - CPATH = makeSearchPathOutput "dev" "include" ([] + CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([] ++ optional (zlib != null) zlib ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs @@ -435,39 +438,38 @@ stdenv.mkDerivation ({ # On GNU/Hurd glibc refers to Mach & Hurd # headers. ++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" ) - libcCross.propagatedBuildInputs); + libcCross.propagatedBuildInputs + )); - LIBRARY_PATH = makeLibraryPath ([] + LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] ++ optional (zlib != null) zlib ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk [ gmp mpfr ] - ++ optional (libpthread != null) libpthread); - - EXTRA_TARGET_CFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-idirafter ${libcCross.dev}/include" - ] - ++ optionals (! crossStageStatic) [ - "-B${libcCross.out}/lib" - ] - else null; - - EXTRA_TARGET_LDFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-Wl,-L${libcCross.out}/lib" - ] - ++ (if crossStageStatic then [ + ++ optional (libpthread != null) libpthread) + ); + + EXTRA_TARGET_FLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-idirafter ${libcCross.dev}/include" + ] ++ optionals (! crossStageStatic) [ + "-B${libcCross.out}/lib" + ]); + + EXTRA_TARGET_LDFLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-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; + ]) ++ optionals (libpthreadCross != null) [ + "-L${libpthreadCross}/lib" + "-Wl,${libpthreadCross.TARGET_LDFLAGS}" + ]); passthru = { inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; }; diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix index e41fc798efc7..6ece3abd9356 100644 --- a/pkgs/development/compilers/gcc/4.9/default.nix +++ b/pkgs/development/compilers/gcc/4.9/default.nix @@ -419,18 +419,21 @@ stdenv.mkDerivation ({ # http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210 CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc"; - # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find - # the library headers and binaries, regarless of the language being - # compiled. - - # Note: When building the Java AWT GTK+ peer, the build system doesn't - # honor `--with-gmp' et al., e.g., when building - # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just - # add them to $CPATH and $LIBRARY_PATH in this case. + # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the + # library headers and binaries, regarless of the language being compiled. + # + # Note: When building the Java AWT GTK+ peer, the build system doesn't honor + # `--with-gmp' et al., e.g., when building + # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add + # them to $CPATH and $LIBRARY_PATH in this case. # # Likewise, the LTO code doesn't find zlib. + # + # Cross-compiling, we need gcc not to read ./specs in order to build the g++ + # compiler (after the specs for the cross-gcc are created). Having + # LIBRARY_PATH= makes gcc read the specs from ., and the build breaks. - CPATH = makeSearchPathOutput "dev" "include" ([] + CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([] ++ optional (zlib != null) zlib ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs @@ -441,39 +444,38 @@ stdenv.mkDerivation ({ # On GNU/Hurd glibc refers to Mach & Hurd # headers. ++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" ) - libcCross.propagatedBuildInputs); + libcCross.propagatedBuildInputs + )); - LIBRARY_PATH = makeLibraryPath ([] + LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] ++ optional (zlib != null) zlib ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk [ gmp mpfr ] - ++ optional (libpthread != null) libpthread); - - EXTRA_TARGET_CFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-idirafter ${libcCross.dev}/include" - ] - ++ optionals (! crossStageStatic) [ - "-B${libcCross.out}/lib" - ] - else null; - - EXTRA_TARGET_LDFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-Wl,-L${libcCross.out}/lib" - ] - ++ (if crossStageStatic then [ + ++ optional (libpthread != null) libpthread) + ); + + EXTRA_TARGET_FLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-idirafter ${libcCross.dev}/include" + ] ++ optionals (! crossStageStatic) [ + "-B${libcCross.out}/lib" + ]); + + EXTRA_TARGET_LDFLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-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; + ]) ++ optionals (libpthreadCross != null) [ + "-L${libpthreadCross}/lib" + "-Wl,${libpthreadCross.TARGET_LDFLAGS}" + ]); passthru = { inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; }; diff --git a/pkgs/development/compilers/gcc/5/default.nix b/pkgs/development/compilers/gcc/5/default.nix index afdf8c2c9285..f6242573e67f 100644 --- a/pkgs/development/compilers/gcc/5/default.nix +++ b/pkgs/development/compilers/gcc/5/default.nix @@ -434,18 +434,21 @@ stdenv.mkDerivation ({ # http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210 CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc"; - # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find - # the library headers and binaries, regarless of the language being - # compiled. - - # Note: When building the Java AWT GTK+ peer, the build system doesn't - # honor `--with-gmp' et al., e.g., when building - # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just - # add them to $CPATH and $LIBRARY_PATH in this case. + # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the + # library headers and binaries, regarless of the language being compiled. + # + # Note: When building the Java AWT GTK+ peer, the build system doesn't honor + # `--with-gmp' et al., e.g., when building + # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add + # them to $CPATH and $LIBRARY_PATH in this case. # # Likewise, the LTO code doesn't find zlib. + # + # Cross-compiling, we need gcc not to read ./specs in order to build the g++ + # compiler (after the specs for the cross-gcc are created). Having + # LIBRARY_PATH= makes gcc read the specs from ., and the build breaks. - CPATH = makeSearchPathOutput "dev" "include" ([] + CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([] ++ optional (zlib != null) zlib ++ optionals langJava [ boehmgc ] ++ optionals javaAwtGtk xlibs @@ -456,39 +459,38 @@ stdenv.mkDerivation ({ # On GNU/Hurd glibc refers to Mach & Hurd # headers. ++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" ) - libcCross.propagatedBuildInputs); + libcCross.propagatedBuildInputs + )); - LIBRARY_PATH = makeLibraryPath ([] + LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] ++ optional (zlib != null) zlib ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk [ gmp mpfr ] - ++ optional (libpthread != null) libpthread); - - EXTRA_TARGET_CFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-idirafter ${getDev libcCross}/include" - ] - ++ optionals (! crossStageStatic) [ - "-B${libcCross.out}/lib" - ] - else null; - - EXTRA_TARGET_LDFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-Wl,-L${libcCross.out}/lib" - ] - ++ (if crossStageStatic then [ + ++ optional (libpthread != null) libpthread) + ); + + EXTRA_TARGET_FLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-idirafter ${getDev libcCross}/include" + ] ++ optionals (! crossStageStatic) [ + "-B${libcCross.out}/lib" + ]); + + EXTRA_TARGET_LDFLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-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; + ]) ++ optionals (libpthreadCross != null) [ + "-L${libpthreadCross}/lib" + "-Wl,${libpthreadCross.TARGET_LDFLAGS}" + ]); passthru = { inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; }; diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix index 848d4cf6e6f9..324fb3e0c1ac 100644 --- a/pkgs/development/compilers/gcc/6/default.nix +++ b/pkgs/development/compilers/gcc/6/default.nix @@ -416,18 +416,21 @@ stdenv.mkDerivation ({ # http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210 CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc"; - # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find - # the library headers and binaries, regarless of the language being - # compiled. - - # Note: When building the Java AWT GTK+ peer, the build system doesn't - # honor `--with-gmp' et al., e.g., when building - # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just - # add them to $CPATH and $LIBRARY_PATH in this case. + # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the + # library headers and binaries, regarless of the language being compiled. + # + # Note: When building the Java AWT GTK+ peer, the build system doesn't honor + # `--with-gmp' et al., e.g., when building + # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add + # them to $CPATH and $LIBRARY_PATH in this case. # # Likewise, the LTO code doesn't find zlib. + # + # Cross-compiling, we need gcc not to read ./specs in order to build the g++ + # compiler (after the specs for the cross-gcc are created). Having + # LIBRARY_PATH= makes gcc read the specs from ., and the build breaks. - CPATH = makeSearchPathOutput "dev" "include" ([] + CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([] ++ optional (zlib != null) zlib ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs @@ -437,40 +440,39 @@ stdenv.mkDerivation ({ # On GNU/Hurd glibc refers to Mach & Hurd # headers. - ++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs") - libcCross.propagatedBuildInputs); + ++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" ) + libcCross.propagatedBuildInputs + )); - LIBRARY_PATH = makeLibraryPath ([] + LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] ++ optional (zlib != null) zlib ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk [ gmp mpfr ] - ++ optional (libpthread != null) libpthread); - - EXTRA_TARGET_CFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-idirafter ${getDev libcCross}/include" - ] - ++ optionals (! crossStageStatic) [ - "-B${libcCross.out}/lib" - ] - else null; - - EXTRA_TARGET_LDFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-Wl,-L${libcCross.out}/lib" - ] - ++ (if crossStageStatic then [ + ++ optional (libpthread != null) libpthread) + ); + + EXTRA_TARGET_FLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-idirafter ${getDev libcCross}/include" + ] ++ optionals (! crossStageStatic) [ + "-B${libcCross.out}/lib" + ]); + + EXTRA_TARGET_LDFLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-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; + ]) ++ optionals (libpthreadCross != null) [ + "-L${libpthreadCross}/lib" + "-Wl,${libpthreadCross.TARGET_LDFLAGS}" + ]); passthru = { inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; }; diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix index 96d2d5f2efc9..c8d54308c955 100644 --- a/pkgs/development/compilers/gcc/7/default.nix +++ b/pkgs/development/compilers/gcc/7/default.nix @@ -417,18 +417,21 @@ stdenv.mkDerivation ({ # http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210 CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc"; - # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find - # the library headers and binaries, regarless of the language being - # compiled. - - # Note: When building the Java AWT GTK+ peer, the build system doesn't - # honor `--with-gmp' et al., e.g., when building - # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just - # add them to $CPATH and $LIBRARY_PATH in this case. + # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the + # library headers and binaries, regarless of the language being compiled. + # + # Note: When building the Java AWT GTK+ peer, the build system doesn't honor + # `--with-gmp' et al., e.g., when building + # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add + # them to $CPATH and $LIBRARY_PATH in this case. # # Likewise, the LTO code doesn't find zlib. + # + # Cross-compiling, we need gcc not to read ./specs in order to build the g++ + # compiler (after the specs for the cross-gcc are created). Having + # LIBRARY_PATH= makes gcc read the specs from ., and the build breaks. - CPATH = makeSearchPathOutput "dev" "include" ([] + CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([] ++ optional (zlib != null) zlib ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs @@ -438,40 +441,39 @@ stdenv.mkDerivation ({ # On GNU/Hurd glibc refers to Mach & Hurd # headers. - ++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs") - libcCross.propagatedBuildInputs); + ++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" ) + libcCross.propagatedBuildInputs + )); - LIBRARY_PATH = makeLibraryPath ([] + LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] ++ optional (zlib != null) zlib ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk [ gmp mpfr ] - ++ optional (libpthread != null) libpthread); - - EXTRA_TARGET_CFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-idirafter ${getDev libcCross}/include" - ] - ++ optionals (! crossStageStatic) [ - "-B${libcCross.out}/lib" - ] - else null; - - EXTRA_TARGET_LDFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-Wl,-L${libcCross.out}/lib" - ] - ++ (if crossStageStatic then [ + ++ optional (libpthread != null) libpthread) + ); + + EXTRA_TARGET_FLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-idirafter ${getDev libcCross}/include" + ] ++ optionals (! crossStageStatic) [ + "-B${libcCross.out}/lib" + ]); + + EXTRA_TARGET_LDFLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-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; + ]) ++ optionals (libpthreadCross != null) [ + "-L${libpthreadCross}/lib" + "-Wl,${libpthreadCross.TARGET_LDFLAGS}" + ]); passthru = { inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; }; diff --git a/pkgs/development/compilers/gcc/builder.sh b/pkgs/development/compilers/gcc/builder.sh index 12097f8ff953..3bc1cb49eec7 100644 --- a/pkgs/development/compilers/gcc/builder.sh +++ b/pkgs/development/compilers/gcc/builder.sh @@ -22,10 +22,10 @@ fi # GCC interprets empty paths as ".", which we don't want. -if test -z "$CPATH"; then unset CPATH; fi -if test -z "$LIBRARY_PATH"; then unset LIBRARY_PATH; fi -echo "\$CPATH is \`$CPATH'" -echo "\$LIBRARY_PATH is \`$LIBRARY_PATH'" +if test -z "${CPATH-}"; then unset CPATH; fi +if test -z "${LIBRARY_PATH-}"; then unset LIBRARY_PATH; fi +echo "\$CPATH is \`${CPATH-}'" +echo "\$LIBRARY_PATH is \`${LIBRARY_PATH-}'" if test "$noSysDirs" = "1"; then @@ -82,15 +82,7 @@ if test "$noSysDirs" = "1"; then done done - if test -n "${targetConfig-}"; then - # Cross-compiling, we need gcc not to read ./specs in order to build the - # g++ compiler (after the specs for the cross-gcc are created). Having - # LIBRARY_PATH= makes gcc read the specs from ., and the build - # breaks. Having this variable comes from the default.nix code to bring - # gcj in. - unset LIBRARY_PATH - unset CPATH - else + if test -z "${targetConfig-}"; then # host = target, so the flags are the same EXTRA_TARGET_FLAGS="$EXTRA_FLAGS" EXTRA_TARGET_LDFLAGS="$EXTRA_LDFLAGS" diff --git a/pkgs/development/compilers/gcc/snapshot/default.nix b/pkgs/development/compilers/gcc/snapshot/default.nix index 8212c1c85baf..fd34f414f961 100644 --- a/pkgs/development/compilers/gcc/snapshot/default.nix +++ b/pkgs/development/compilers/gcc/snapshot/default.nix @@ -417,18 +417,21 @@ stdenv.mkDerivation ({ # http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210 CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc"; - # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find - # the library headers and binaries, regarless of the language being - # compiled. - - # Note: When building the Java AWT GTK+ peer, the build system doesn't - # honor `--with-gmp' et al., e.g., when building - # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just - # add them to $CPATH and $LIBRARY_PATH in this case. + # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the + # library headers and binaries, regarless of the language being compiled. + # + # Note: When building the Java AWT GTK+ peer, the build system doesn't honor + # `--with-gmp' et al., e.g., when building + # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add + # them to $CPATH and $LIBRARY_PATH in this case. # # Likewise, the LTO code doesn't find zlib. + # + # Cross-compiling, we need gcc not to read ./specs in order to build the g++ + # compiler (after the specs for the cross-gcc are created). Having + # LIBRARY_PATH= makes gcc read the specs from ., and the build breaks. - CPATH = makeSearchPathOutput "dev" "include" ([] + CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([] ++ optional (zlib != null) zlib ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs @@ -438,40 +441,39 @@ stdenv.mkDerivation ({ # On GNU/Hurd glibc refers to Mach & Hurd # headers. - ++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs") - libcCross.propagatedBuildInputs); + ++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" ) + libcCross.propagatedBuildInputs + )); - LIBRARY_PATH = makeLibraryPath ([] + LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] ++ optional (zlib != null) zlib ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk [ gmp mpfr ] - ++ optional (libpthread != null) libpthread); - - EXTRA_TARGET_CFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-idirafter ${getDev libcCross}/include" - ] - ++ optionals (! crossStageStatic) [ - "-B${libcCross.out}/lib" - ] - else null; - - EXTRA_TARGET_LDFLAGS = - if targetPlatform != hostPlatform && libcCross != null then [ - "-Wl,-L${libcCross.out}/lib" - ] - ++ (if crossStageStatic then [ + ++ optional (libpthread != null) libpthread) + ); + + EXTRA_TARGET_FLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-idirafter ${getDev libcCross}/include" + ] ++ optionals (! crossStageStatic) [ + "-B${libcCross.out}/lib" + ]); + + EXTRA_TARGET_LDFLAGS = optionals + (targetPlatform != hostPlatform && libcCross != null) + ([ + "-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; + ]) ++ optionals (libpthreadCross != null) [ + "-L${libpthreadCross}/lib" + "-Wl,${libpthreadCross.TARGET_LDFLAGS}" + ]); passthru = { inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; }; |