gcc: Handle CPATH
and LIBRARY_PATH
purely in Nix
This commit is contained in:
parent
d4595b38e9
commit
d96cf0f46c
@ -339,18 +339,21 @@ stdenv.mkDerivation ({
|
|||||||
LD = "ld";
|
LD = "ld";
|
||||||
CC = "gcc";
|
CC = "gcc";
|
||||||
|
|
||||||
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find
|
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
|
||||||
# the library headers and binaries, regarless of the language being
|
# library headers and binaries, regarless of the language being compiled.
|
||||||
# compiled.
|
#
|
||||||
|
# Note: When building the Java AWT GTK+ peer, the build system doesn't honor
|
||||||
# Note: When building the Java AWT GTK+ peer, the build system doesn't
|
# `--with-gmp' et al., e.g., when building
|
||||||
# honor `--with-gmp' et al., e.g., when building
|
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add
|
||||||
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just
|
# them to $CPATH and $LIBRARY_PATH in this case.
|
||||||
# add them to $CPATH and $LIBRARY_PATH in this case.
|
|
||||||
#
|
#
|
||||||
# Likewise, the LTO code doesn't find zlib.
|
# 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 (zlib != null) zlib
|
||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
@ -360,41 +363,39 @@ stdenv.mkDerivation ({
|
|||||||
|
|
||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
# On GNU/Hurd glibc refers to Mach & Hurd
|
||||||
# headers.
|
# headers.
|
||||||
++ optionals (libcCross != null &&
|
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" )
|
||||||
hasAttr "propagatedBuildInputs" libcCross)
|
libcCross.propagatedBuildInputs
|
||||||
libcCross.propagatedBuildInputs);
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = makeLibraryPath ([]
|
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
|
||||||
++ optional (zlib != null) zlib
|
++ optional (zlib != null) zlib
|
||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
++ optionals javaAwtGtk [ gmp mpfr ]
|
++ optionals javaAwtGtk [ gmp mpfr ]
|
||||||
++ optional (libpthread != null) libpthread);
|
++ optional (libpthread != null) libpthread)
|
||||||
|
);
|
||||||
|
|
||||||
EXTRA_TARGET_CFLAGS =
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-idirafter ${libcCross.dev}/include"
|
([
|
||||||
]
|
"-idirafter ${libcCross.dev}/include"
|
||||||
++ optionals (! crossStageStatic) [
|
] ++ optionals (! crossStageStatic) [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
]
|
]);
|
||||||
else null;
|
|
||||||
|
|
||||||
EXTRA_TARGET_LDFLAGS =
|
EXTRA_TARGET_LDFLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-Wl,-L${libcCross.out}/lib"
|
([
|
||||||
]
|
"-Wl,-L${libcCross.out}/lib"
|
||||||
++ (if crossStageStatic then [
|
] ++ (if crossStageStatic then [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
] else [
|
] else [
|
||||||
"-Wl,-rpath,${libcCross.out}/lib"
|
"-Wl,-rpath,${libcCross.out}/lib"
|
||||||
"-Wl,-rpath-link,${libcCross.out}/lib"
|
"-Wl,-rpath-link,${libcCross.out}/lib"
|
||||||
])
|
]) ++ optionals (libpthreadCross != null) [
|
||||||
++ optionals (libpthreadCross != null) [
|
"-L${libpthreadCross}/lib"
|
||||||
"-L${libpthreadCross}/lib"
|
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
]);
|
||||||
]
|
|
||||||
else null;
|
|
||||||
|
|
||||||
passthru = { inherit langC langCC langAda langFortran langVhdl
|
passthru = { inherit langC langCC langAda langFortran langVhdl
|
||||||
enableMultilib version; isGNU = true; };
|
enableMultilib version; isGNU = true; };
|
||||||
|
@ -413,18 +413,21 @@ stdenv.mkDerivation ({
|
|||||||
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
|
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
|
||||||
CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc";
|
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
|
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
|
||||||
# the library headers and binaries, regarless of the language being
|
# library headers and binaries, regarless of the language being compiled.
|
||||||
# compiled.
|
#
|
||||||
|
# Note: When building the Java AWT GTK+ peer, the build system doesn't honor
|
||||||
# Note: When building the Java AWT GTK+ peer, the build system doesn't
|
# `--with-gmp' et al., e.g., when building
|
||||||
# honor `--with-gmp' et al., e.g., when building
|
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add
|
||||||
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just
|
# them to $CPATH and $LIBRARY_PATH in this case.
|
||||||
# add them to $CPATH and $LIBRARY_PATH in this case.
|
|
||||||
#
|
#
|
||||||
# Likewise, the LTO code doesn't find zlib.
|
# 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 (zlib != null) zlib
|
||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
@ -435,39 +438,38 @@ stdenv.mkDerivation ({
|
|||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
# On GNU/Hurd glibc refers to Mach & Hurd
|
||||||
# headers.
|
# headers.
|
||||||
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" )
|
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" )
|
||||||
libcCross.propagatedBuildInputs);
|
libcCross.propagatedBuildInputs
|
||||||
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = makeLibraryPath ([]
|
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
|
||||||
++ optional (zlib != null) zlib
|
++ optional (zlib != null) zlib
|
||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
++ optionals javaAwtGtk [ gmp mpfr ]
|
++ optionals javaAwtGtk [ gmp mpfr ]
|
||||||
++ optional (libpthread != null) libpthread);
|
++ optional (libpthread != null) libpthread)
|
||||||
|
);
|
||||||
|
|
||||||
EXTRA_TARGET_CFLAGS =
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-idirafter ${libcCross.dev}/include"
|
([
|
||||||
]
|
"-idirafter ${libcCross.dev}/include"
|
||||||
++ optionals (! crossStageStatic) [
|
] ++ optionals (! crossStageStatic) [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
]
|
]);
|
||||||
else null;
|
|
||||||
|
|
||||||
EXTRA_TARGET_LDFLAGS =
|
EXTRA_TARGET_LDFLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-Wl,-L${libcCross.out}/lib"
|
([
|
||||||
]
|
"-Wl,-L${libcCross.out}/lib"
|
||||||
++ (if crossStageStatic then [
|
] ++ (if crossStageStatic then [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
] else [
|
] else [
|
||||||
"-Wl,-rpath,${libcCross.out}/lib"
|
"-Wl,-rpath,${libcCross.out}/lib"
|
||||||
"-Wl,-rpath-link,${libcCross.out}/lib"
|
"-Wl,-rpath-link,${libcCross.out}/lib"
|
||||||
])
|
]) ++ optionals (libpthreadCross != null) [
|
||||||
++ optionals (libpthreadCross != null) [
|
"-L${libpthreadCross}/lib"
|
||||||
"-L${libpthreadCross}/lib"
|
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
]);
|
||||||
]
|
|
||||||
else null;
|
|
||||||
|
|
||||||
passthru =
|
passthru =
|
||||||
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; };
|
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; };
|
||||||
|
@ -419,18 +419,21 @@ stdenv.mkDerivation ({
|
|||||||
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
|
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
|
||||||
CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc";
|
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
|
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
|
||||||
# the library headers and binaries, regarless of the language being
|
# library headers and binaries, regarless of the language being compiled.
|
||||||
# compiled.
|
#
|
||||||
|
# Note: When building the Java AWT GTK+ peer, the build system doesn't honor
|
||||||
# Note: When building the Java AWT GTK+ peer, the build system doesn't
|
# `--with-gmp' et al., e.g., when building
|
||||||
# honor `--with-gmp' et al., e.g., when building
|
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add
|
||||||
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just
|
# them to $CPATH and $LIBRARY_PATH in this case.
|
||||||
# add them to $CPATH and $LIBRARY_PATH in this case.
|
|
||||||
#
|
#
|
||||||
# Likewise, the LTO code doesn't find zlib.
|
# 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 (zlib != null) zlib
|
||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
@ -441,39 +444,38 @@ stdenv.mkDerivation ({
|
|||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
# On GNU/Hurd glibc refers to Mach & Hurd
|
||||||
# headers.
|
# headers.
|
||||||
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" )
|
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" )
|
||||||
libcCross.propagatedBuildInputs);
|
libcCross.propagatedBuildInputs
|
||||||
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = makeLibraryPath ([]
|
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
|
||||||
++ optional (zlib != null) zlib
|
++ optional (zlib != null) zlib
|
||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
++ optionals javaAwtGtk [ gmp mpfr ]
|
++ optionals javaAwtGtk [ gmp mpfr ]
|
||||||
++ optional (libpthread != null) libpthread);
|
++ optional (libpthread != null) libpthread)
|
||||||
|
);
|
||||||
|
|
||||||
EXTRA_TARGET_CFLAGS =
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-idirafter ${libcCross.dev}/include"
|
([
|
||||||
]
|
"-idirafter ${libcCross.dev}/include"
|
||||||
++ optionals (! crossStageStatic) [
|
] ++ optionals (! crossStageStatic) [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
]
|
]);
|
||||||
else null;
|
|
||||||
|
|
||||||
EXTRA_TARGET_LDFLAGS =
|
EXTRA_TARGET_LDFLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-Wl,-L${libcCross.out}/lib"
|
([
|
||||||
]
|
"-Wl,-L${libcCross.out}/lib"
|
||||||
++ (if crossStageStatic then [
|
] ++ (if crossStageStatic then [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
] else [
|
] else [
|
||||||
"-Wl,-rpath,${libcCross.out}/lib"
|
"-Wl,-rpath,${libcCross.out}/lib"
|
||||||
"-Wl,-rpath-link,${libcCross.out}/lib"
|
"-Wl,-rpath-link,${libcCross.out}/lib"
|
||||||
])
|
]) ++ optionals (libpthreadCross != null) [
|
||||||
++ optionals (libpthreadCross != null) [
|
"-L${libpthreadCross}/lib"
|
||||||
"-L${libpthreadCross}/lib"
|
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
]);
|
||||||
]
|
|
||||||
else null;
|
|
||||||
|
|
||||||
passthru =
|
passthru =
|
||||||
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; };
|
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; };
|
||||||
|
@ -434,18 +434,21 @@ stdenv.mkDerivation ({
|
|||||||
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
|
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
|
||||||
CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc";
|
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
|
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
|
||||||
# the library headers and binaries, regarless of the language being
|
# library headers and binaries, regarless of the language being compiled.
|
||||||
# compiled.
|
#
|
||||||
|
# Note: When building the Java AWT GTK+ peer, the build system doesn't honor
|
||||||
# Note: When building the Java AWT GTK+ peer, the build system doesn't
|
# `--with-gmp' et al., e.g., when building
|
||||||
# honor `--with-gmp' et al., e.g., when building
|
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add
|
||||||
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just
|
# them to $CPATH and $LIBRARY_PATH in this case.
|
||||||
# add them to $CPATH and $LIBRARY_PATH in this case.
|
|
||||||
#
|
#
|
||||||
# Likewise, the LTO code doesn't find zlib.
|
# 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 (zlib != null) zlib
|
||||||
++ optionals langJava [ boehmgc ]
|
++ optionals langJava [ boehmgc ]
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
@ -456,39 +459,38 @@ stdenv.mkDerivation ({
|
|||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
# On GNU/Hurd glibc refers to Mach & Hurd
|
||||||
# headers.
|
# headers.
|
||||||
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" )
|
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" )
|
||||||
libcCross.propagatedBuildInputs);
|
libcCross.propagatedBuildInputs
|
||||||
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = makeLibraryPath ([]
|
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
|
||||||
++ optional (zlib != null) zlib
|
++ optional (zlib != null) zlib
|
||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
++ optionals javaAwtGtk [ gmp mpfr ]
|
++ optionals javaAwtGtk [ gmp mpfr ]
|
||||||
++ optional (libpthread != null) libpthread);
|
++ optional (libpthread != null) libpthread)
|
||||||
|
);
|
||||||
|
|
||||||
EXTRA_TARGET_CFLAGS =
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-idirafter ${getDev libcCross}/include"
|
([
|
||||||
]
|
"-idirafter ${getDev libcCross}/include"
|
||||||
++ optionals (! crossStageStatic) [
|
] ++ optionals (! crossStageStatic) [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
]
|
]);
|
||||||
else null;
|
|
||||||
|
|
||||||
EXTRA_TARGET_LDFLAGS =
|
EXTRA_TARGET_LDFLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-Wl,-L${libcCross.out}/lib"
|
([
|
||||||
]
|
"-Wl,-L${libcCross.out}/lib"
|
||||||
++ (if crossStageStatic then [
|
] ++ (if crossStageStatic then [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
] else [
|
] else [
|
||||||
"-Wl,-rpath,${libcCross.out}/lib"
|
"-Wl,-rpath,${libcCross.out}/lib"
|
||||||
"-Wl,-rpath-link,${libcCross.out}/lib"
|
"-Wl,-rpath-link,${libcCross.out}/lib"
|
||||||
])
|
]) ++ optionals (libpthreadCross != null) [
|
||||||
++ optionals (libpthreadCross != null) [
|
"-L${libpthreadCross}/lib"
|
||||||
"-L${libpthreadCross}/lib"
|
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
]);
|
||||||
]
|
|
||||||
else null;
|
|
||||||
|
|
||||||
passthru =
|
passthru =
|
||||||
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; };
|
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; };
|
||||||
|
@ -416,18 +416,21 @@ stdenv.mkDerivation ({
|
|||||||
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
|
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
|
||||||
CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc";
|
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
|
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
|
||||||
# the library headers and binaries, regarless of the language being
|
# library headers and binaries, regarless of the language being compiled.
|
||||||
# compiled.
|
#
|
||||||
|
# Note: When building the Java AWT GTK+ peer, the build system doesn't honor
|
||||||
# Note: When building the Java AWT GTK+ peer, the build system doesn't
|
# `--with-gmp' et al., e.g., when building
|
||||||
# honor `--with-gmp' et al., e.g., when building
|
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add
|
||||||
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just
|
# them to $CPATH and $LIBRARY_PATH in this case.
|
||||||
# add them to $CPATH and $LIBRARY_PATH in this case.
|
|
||||||
#
|
#
|
||||||
# Likewise, the LTO code doesn't find zlib.
|
# 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 (zlib != null) zlib
|
||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
@ -437,40 +440,39 @@ stdenv.mkDerivation ({
|
|||||||
|
|
||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
# On GNU/Hurd glibc refers to Mach & Hurd
|
||||||
# headers.
|
# headers.
|
||||||
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs")
|
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" )
|
||||||
libcCross.propagatedBuildInputs);
|
libcCross.propagatedBuildInputs
|
||||||
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = makeLibraryPath ([]
|
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
|
||||||
++ optional (zlib != null) zlib
|
++ optional (zlib != null) zlib
|
||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
++ optionals javaAwtGtk [ gmp mpfr ]
|
++ optionals javaAwtGtk [ gmp mpfr ]
|
||||||
++ optional (libpthread != null) libpthread);
|
++ optional (libpthread != null) libpthread)
|
||||||
|
);
|
||||||
|
|
||||||
EXTRA_TARGET_CFLAGS =
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-idirafter ${getDev libcCross}/include"
|
([
|
||||||
]
|
"-idirafter ${getDev libcCross}/include"
|
||||||
++ optionals (! crossStageStatic) [
|
] ++ optionals (! crossStageStatic) [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
]
|
]);
|
||||||
else null;
|
|
||||||
|
|
||||||
EXTRA_TARGET_LDFLAGS =
|
EXTRA_TARGET_LDFLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-Wl,-L${libcCross.out}/lib"
|
([
|
||||||
]
|
"-Wl,-L${libcCross.out}/lib"
|
||||||
++ (if crossStageStatic then [
|
] ++ (if crossStageStatic then [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
] else [
|
] else [
|
||||||
"-Wl,-rpath,${libcCross.out}/lib"
|
"-Wl,-rpath,${libcCross.out}/lib"
|
||||||
"-Wl,-rpath-link,${libcCross.out}/lib"
|
"-Wl,-rpath-link,${libcCross.out}/lib"
|
||||||
])
|
]) ++ optionals (libpthreadCross != null) [
|
||||||
++ optionals (libpthreadCross != null) [
|
"-L${libpthreadCross}/lib"
|
||||||
"-L${libpthreadCross}/lib"
|
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
]);
|
||||||
]
|
|
||||||
else null;
|
|
||||||
|
|
||||||
passthru =
|
passthru =
|
||||||
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; };
|
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; };
|
||||||
|
@ -417,18 +417,21 @@ stdenv.mkDerivation ({
|
|||||||
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
|
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
|
||||||
CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc";
|
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
|
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
|
||||||
# the library headers and binaries, regarless of the language being
|
# library headers and binaries, regarless of the language being compiled.
|
||||||
# compiled.
|
#
|
||||||
|
# Note: When building the Java AWT GTK+ peer, the build system doesn't honor
|
||||||
# Note: When building the Java AWT GTK+ peer, the build system doesn't
|
# `--with-gmp' et al., e.g., when building
|
||||||
# honor `--with-gmp' et al., e.g., when building
|
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add
|
||||||
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just
|
# them to $CPATH and $LIBRARY_PATH in this case.
|
||||||
# add them to $CPATH and $LIBRARY_PATH in this case.
|
|
||||||
#
|
#
|
||||||
# Likewise, the LTO code doesn't find zlib.
|
# 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 (zlib != null) zlib
|
||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
@ -438,40 +441,39 @@ stdenv.mkDerivation ({
|
|||||||
|
|
||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
# On GNU/Hurd glibc refers to Mach & Hurd
|
||||||
# headers.
|
# headers.
|
||||||
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs")
|
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" )
|
||||||
libcCross.propagatedBuildInputs);
|
libcCross.propagatedBuildInputs
|
||||||
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = makeLibraryPath ([]
|
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
|
||||||
++ optional (zlib != null) zlib
|
++ optional (zlib != null) zlib
|
||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
++ optionals javaAwtGtk [ gmp mpfr ]
|
++ optionals javaAwtGtk [ gmp mpfr ]
|
||||||
++ optional (libpthread != null) libpthread);
|
++ optional (libpthread != null) libpthread)
|
||||||
|
);
|
||||||
|
|
||||||
EXTRA_TARGET_CFLAGS =
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-idirafter ${getDev libcCross}/include"
|
([
|
||||||
]
|
"-idirafter ${getDev libcCross}/include"
|
||||||
++ optionals (! crossStageStatic) [
|
] ++ optionals (! crossStageStatic) [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
]
|
]);
|
||||||
else null;
|
|
||||||
|
|
||||||
EXTRA_TARGET_LDFLAGS =
|
EXTRA_TARGET_LDFLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-Wl,-L${libcCross.out}/lib"
|
([
|
||||||
]
|
"-Wl,-L${libcCross.out}/lib"
|
||||||
++ (if crossStageStatic then [
|
] ++ (if crossStageStatic then [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
] else [
|
] else [
|
||||||
"-Wl,-rpath,${libcCross.out}/lib"
|
"-Wl,-rpath,${libcCross.out}/lib"
|
||||||
"-Wl,-rpath-link,${libcCross.out}/lib"
|
"-Wl,-rpath-link,${libcCross.out}/lib"
|
||||||
])
|
]) ++ optionals (libpthreadCross != null) [
|
||||||
++ optionals (libpthreadCross != null) [
|
"-L${libpthreadCross}/lib"
|
||||||
"-L${libpthreadCross}/lib"
|
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
]);
|
||||||
]
|
|
||||||
else null;
|
|
||||||
|
|
||||||
passthru =
|
passthru =
|
||||||
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; };
|
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; };
|
||||||
|
@ -22,10 +22,10 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
# GCC interprets empty paths as ".", which we don't want.
|
# GCC interprets empty paths as ".", which we don't want.
|
||||||
if test -z "$CPATH"; then unset CPATH; fi
|
if test -z "${CPATH-}"; then unset CPATH; fi
|
||||||
if test -z "$LIBRARY_PATH"; then unset LIBRARY_PATH; fi
|
if test -z "${LIBRARY_PATH-}"; then unset LIBRARY_PATH; fi
|
||||||
echo "\$CPATH is \`$CPATH'"
|
echo "\$CPATH is \`${CPATH-}'"
|
||||||
echo "\$LIBRARY_PATH is \`$LIBRARY_PATH'"
|
echo "\$LIBRARY_PATH is \`${LIBRARY_PATH-}'"
|
||||||
|
|
||||||
if test "$noSysDirs" = "1"; then
|
if test "$noSysDirs" = "1"; then
|
||||||
|
|
||||||
@ -82,15 +82,7 @@ if test "$noSysDirs" = "1"; then
|
|||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
if test -n "${targetConfig-}"; then
|
if test -z "${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
|
|
||||||
# host = target, so the flags are the same
|
# host = target, so the flags are the same
|
||||||
EXTRA_TARGET_FLAGS="$EXTRA_FLAGS"
|
EXTRA_TARGET_FLAGS="$EXTRA_FLAGS"
|
||||||
EXTRA_TARGET_LDFLAGS="$EXTRA_LDFLAGS"
|
EXTRA_TARGET_LDFLAGS="$EXTRA_LDFLAGS"
|
||||||
|
@ -417,18 +417,21 @@ stdenv.mkDerivation ({
|
|||||||
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
|
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
|
||||||
CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc";
|
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
|
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
|
||||||
# the library headers and binaries, regarless of the language being
|
# library headers and binaries, regarless of the language being compiled.
|
||||||
# compiled.
|
#
|
||||||
|
# Note: When building the Java AWT GTK+ peer, the build system doesn't honor
|
||||||
# Note: When building the Java AWT GTK+ peer, the build system doesn't
|
# `--with-gmp' et al., e.g., when building
|
||||||
# honor `--with-gmp' et al., e.g., when building
|
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add
|
||||||
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just
|
# them to $CPATH and $LIBRARY_PATH in this case.
|
||||||
# add them to $CPATH and $LIBRARY_PATH in this case.
|
|
||||||
#
|
#
|
||||||
# Likewise, the LTO code doesn't find zlib.
|
# 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 (zlib != null) zlib
|
||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
@ -438,40 +441,39 @@ stdenv.mkDerivation ({
|
|||||||
|
|
||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
# On GNU/Hurd glibc refers to Mach & Hurd
|
||||||
# headers.
|
# headers.
|
||||||
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs")
|
++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" )
|
||||||
libcCross.propagatedBuildInputs);
|
libcCross.propagatedBuildInputs
|
||||||
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = makeLibraryPath ([]
|
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
|
||||||
++ optional (zlib != null) zlib
|
++ optional (zlib != null) zlib
|
||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
++ optionals javaAwtGtk [ gmp mpfr ]
|
++ optionals javaAwtGtk [ gmp mpfr ]
|
||||||
++ optional (libpthread != null) libpthread);
|
++ optional (libpthread != null) libpthread)
|
||||||
|
);
|
||||||
|
|
||||||
EXTRA_TARGET_CFLAGS =
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-idirafter ${getDev libcCross}/include"
|
([
|
||||||
]
|
"-idirafter ${getDev libcCross}/include"
|
||||||
++ optionals (! crossStageStatic) [
|
] ++ optionals (! crossStageStatic) [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
]
|
]);
|
||||||
else null;
|
|
||||||
|
|
||||||
EXTRA_TARGET_LDFLAGS =
|
EXTRA_TARGET_LDFLAGS = optionals
|
||||||
if targetPlatform != hostPlatform && libcCross != null then [
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
"-Wl,-L${libcCross.out}/lib"
|
([
|
||||||
]
|
"-Wl,-L${libcCross.out}/lib"
|
||||||
++ (if crossStageStatic then [
|
] ++ (if crossStageStatic then [
|
||||||
"-B${libcCross.out}/lib"
|
"-B${libcCross.out}/lib"
|
||||||
] else [
|
] else [
|
||||||
"-Wl,-rpath,${libcCross.out}/lib"
|
"-Wl,-rpath,${libcCross.out}/lib"
|
||||||
"-Wl,-rpath-link,${libcCross.out}/lib"
|
"-Wl,-rpath-link,${libcCross.out}/lib"
|
||||||
])
|
]) ++ optionals (libpthreadCross != null) [
|
||||||
++ optionals (libpthreadCross != null) [
|
"-L${libpthreadCross}/lib"
|
||||||
"-L${libpthreadCross}/lib"
|
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
]);
|
||||||
]
|
|
||||||
else null;
|
|
||||||
|
|
||||||
passthru =
|
passthru =
|
||||||
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; };
|
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; };
|
||||||
|
Loading…
Reference in New Issue
Block a user