Merge pull request #45721 from Mic92/remove-hurd
hurd: cleanup unmaintained target
This commit is contained in:
commit
c748ac5bdd
@ -36,7 +36,7 @@ in rec {
|
|||||||
cygwin = filterDoubles predicates.isCygwin;
|
cygwin = filterDoubles predicates.isCygwin;
|
||||||
darwin = filterDoubles predicates.isDarwin;
|
darwin = filterDoubles predicates.isDarwin;
|
||||||
freebsd = filterDoubles predicates.isFreeBSD;
|
freebsd = filterDoubles predicates.isFreeBSD;
|
||||||
# Should be better, but MinGW is unclear, and HURD is bit-rotted.
|
# Should be better, but MinGW is unclear.
|
||||||
gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; });
|
gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; });
|
||||||
illumos = filterDoubles predicates.isSunOS;
|
illumos = filterDoubles predicates.isSunOS;
|
||||||
linux = filterDoubles predicates.isLinux;
|
linux = filterDoubles predicates.isLinux;
|
||||||
|
@ -20,7 +20,7 @@ in rec {
|
|||||||
cygwin = [ patterns.isCygwin ];
|
cygwin = [ patterns.isCygwin ];
|
||||||
darwin = [ patterns.isDarwin ];
|
darwin = [ patterns.isDarwin ];
|
||||||
freebsd = [ patterns.isFreeBSD ];
|
freebsd = [ patterns.isFreeBSD ];
|
||||||
# Should be better, but MinGW is unclear, and HURD is bit-rotted.
|
# Should be better, but MinGW is unclear.
|
||||||
gnu = [
|
gnu = [
|
||||||
{ kernel = parse.kernels.linux; abi = abis.gnu; }
|
{ kernel = parse.kernels.linux; abi = abis.gnu; }
|
||||||
{ kernel = parse.kernels.linux; abi = abis.gnueabi; }
|
{ kernel = parse.kernels.linux; abi = abis.gnueabi; }
|
||||||
|
@ -27,14 +27,13 @@ rec {
|
|||||||
|
|
||||||
isBSD = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; };
|
isBSD = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; };
|
||||||
isDarwin = { kernel = { families = { inherit (kernelFamilies) darwin; }; }; };
|
isDarwin = { kernel = { families = { inherit (kernelFamilies) darwin; }; }; };
|
||||||
isUnix = [ isBSD isDarwin isLinux isSunOS isHurd isCygwin ];
|
isUnix = [ isBSD isDarwin isLinux isSunOS isCygwin ];
|
||||||
|
|
||||||
isMacOS = { kernel = kernels.macos; };
|
isMacOS = { kernel = kernels.macos; };
|
||||||
isiOS = { kernel = kernels.ios; };
|
isiOS = { kernel = kernels.ios; };
|
||||||
isLinux = { kernel = kernels.linux; };
|
isLinux = { kernel = kernels.linux; };
|
||||||
isSunOS = { kernel = kernels.solaris; };
|
isSunOS = { kernel = kernels.solaris; };
|
||||||
isFreeBSD = { kernel = kernels.freebsd; };
|
isFreeBSD = { kernel = kernels.freebsd; };
|
||||||
isHurd = { kernel = kernels.hurd; };
|
|
||||||
isNetBSD = { kernel = kernels.netbsd; };
|
isNetBSD = { kernel = kernels.netbsd; };
|
||||||
isOpenBSD = { kernel = kernels.openbsd; };
|
isOpenBSD = { kernel = kernels.openbsd; };
|
||||||
isWindows = { kernel = kernels.windows; };
|
isWindows = { kernel = kernels.windows; };
|
||||||
|
@ -172,7 +172,6 @@ rec {
|
|||||||
macos = { execFormat = macho; families = { inherit darwin; }; name = "darwin"; };
|
macos = { execFormat = macho; families = { inherit darwin; }; name = "darwin"; };
|
||||||
ios = { execFormat = macho; families = { inherit darwin; }; };
|
ios = { execFormat = macho; families = { inherit darwin; }; };
|
||||||
freebsd = { execFormat = elf; families = { inherit bsd; }; };
|
freebsd = { execFormat = elf; families = { inherit bsd; }; };
|
||||||
hurd = { execFormat = elf; families = { }; };
|
|
||||||
linux = { execFormat = elf; families = { }; };
|
linux = { execFormat = elf; families = { }; };
|
||||||
netbsd = { execFormat = elf; families = { inherit bsd; }; };
|
netbsd = { execFormat = elf; families = { inherit bsd; }; };
|
||||||
none = { execFormat = unknown; families = { }; };
|
none = { execFormat = unknown; families = { }; };
|
||||||
@ -259,8 +258,6 @@ rec {
|
|||||||
"2" = # We only do 2-part hacks for things Nix already supports
|
"2" = # We only do 2-part hacks for things Nix already supports
|
||||||
if elemAt l 1 == "cygwin"
|
if elemAt l 1 == "cygwin"
|
||||||
then { cpu = elemAt l 0; kernel = "windows"; abi = "cygnus"; }
|
then { cpu = elemAt l 0; kernel = "windows"; abi = "cygnus"; }
|
||||||
else if elemAt l 1 == "gnu"
|
|
||||||
then { cpu = elemAt l 0; kernel = "hurd"; abi = "gnu"; }
|
|
||||||
else { cpu = elemAt l 0; kernel = elemAt l 1; };
|
else { cpu = elemAt l 0; kernel = elemAt l 1; };
|
||||||
"3" = # Awkwards hacks, beware!
|
"3" = # Awkwards hacks, beware!
|
||||||
if elemAt l 1 == "apple"
|
if elemAt l 1 == "apple"
|
||||||
|
@ -22,7 +22,7 @@ in with lib.systems.doubles; lib.runTests {
|
|||||||
cygwin = assertTrue (mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ]);
|
cygwin = assertTrue (mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ]);
|
||||||
darwin = assertTrue (mseteq darwin [ "x86_64-darwin" ]);
|
darwin = assertTrue (mseteq darwin [ "x86_64-darwin" ]);
|
||||||
freebsd = assertTrue (mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ]);
|
freebsd = assertTrue (mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ]);
|
||||||
gnu = assertTrue (mseteq gnu (linux /* ++ hurd ++ kfreebsd ++ ... */));
|
gnu = assertTrue (mseteq gnu (linux /* ++ kfreebsd ++ ... */));
|
||||||
illumos = assertTrue (mseteq illumos [ "x86_64-solaris" ]);
|
illumos = assertTrue (mseteq illumos [ "x86_64-solaris" ]);
|
||||||
linux = assertTrue (mseteq linux [ "i686-linux" "x86_64-linux" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" "mipsel-linux" ]);
|
linux = assertTrue (mseteq linux [ "i686-linux" "x86_64-linux" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" "mipsel-linux" ]);
|
||||||
netbsd = assertTrue (mseteq netbsd [ "i686-netbsd" "x86_64-netbsd" ]);
|
netbsd = assertTrue (mseteq netbsd [ "i686-netbsd" "x86_64-netbsd" ]);
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? false
|
, crossStageStatic ? false
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
|
||||||
, # Strip kills static libs of other archs (hence no cross)
|
, # Strip kills static libs of other archs (hence no cross)
|
||||||
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
||||||
, gnused ? null
|
, gnused ? null
|
||||||
@ -181,39 +180,7 @@ stdenv.mkDerivation ({
|
|||||||
libc_dev = stdenv.cc.libc_dev;
|
libc_dev = stdenv.cc.libc_dev;
|
||||||
|
|
||||||
postPatch =
|
postPatch =
|
||||||
if targetPlatform.isHurd
|
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
||||||
then
|
|
||||||
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
|
|
||||||
# in glibc, so add the right `-I' flags to the default spec string.
|
|
||||||
assert libcCross != null -> libpthreadCross != null;
|
|
||||||
let
|
|
||||||
libc = if libcCross != null then libcCross else stdenv.glibc;
|
|
||||||
gnu_h = "gcc/config/gnu.h";
|
|
||||||
extraCPPDeps =
|
|
||||||
libc.propagatedBuildInputs
|
|
||||||
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
|
|
||||||
++ stdenv.lib.optional (libpthread != null) libpthread;
|
|
||||||
extraCPPSpec =
|
|
||||||
concatStrings (intersperse " "
|
|
||||||
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
|
|
||||||
extraLibSpec =
|
|
||||||
if libpthreadCross != null
|
|
||||||
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
else "-L${libpthread}/lib";
|
|
||||||
in
|
|
||||||
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
|
|
||||||
|
|
||||||
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
|
|
||||||
|
|
||||||
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.dev}/include"|g'
|
|
||||||
''
|
|
||||||
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
|
||||||
# On NixOS, use the right path to the dynamic linker instead of
|
# On NixOS, use the right path to the dynamic linker instead of
|
||||||
# `/lib/ld*.so'.
|
# `/lib/ld*.so'.
|
||||||
let
|
let
|
||||||
@ -379,21 +346,13 @@ stdenv.mkDerivation ({
|
|||||||
++ 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 (libpthreadCross != null) libpthreadCross
|
|
||||||
|
|
||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
|
||||||
# headers.
|
|
||||||
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
|
|
||||||
libcCross.propagatedBuildInputs
|
|
||||||
));
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (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)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
EXTRA_TARGET_FLAGS = optionals
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
@ -413,10 +372,7 @@ stdenv.mkDerivation ({
|
|||||||
] 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) [
|
]));
|
||||||
"-L${libpthreadCross}/lib"
|
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
]);
|
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit langC langCC langObjC langObjCpp langFortran langGo version;
|
inherit langC langCC langObjC langObjCpp langFortran langGo version;
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? false
|
, crossStageStatic ? false
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
|
||||||
, # Strip kills static libs of other archs (hence no cross)
|
, # Strip kills static libs of other archs (hence no cross)
|
||||||
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
||||||
, gnused ? null
|
, gnused ? null
|
||||||
@ -190,39 +189,7 @@ stdenv.mkDerivation ({
|
|||||||
libc_dev = stdenv.cc.libc_dev;
|
libc_dev = stdenv.cc.libc_dev;
|
||||||
|
|
||||||
postPatch =
|
postPatch =
|
||||||
if targetPlatform.isHurd
|
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
||||||
then
|
|
||||||
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
|
|
||||||
# in glibc, so add the right `-I' flags to the default spec string.
|
|
||||||
assert libcCross != null -> libpthreadCross != null;
|
|
||||||
let
|
|
||||||
libc = if libcCross != null then libcCross else stdenv.glibc;
|
|
||||||
gnu_h = "gcc/config/gnu.h";
|
|
||||||
extraCPPDeps =
|
|
||||||
libc.propagatedBuildInputs
|
|
||||||
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
|
|
||||||
++ stdenv.lib.optional (libpthread != null) libpthread;
|
|
||||||
extraCPPSpec =
|
|
||||||
concatStrings (intersperse " "
|
|
||||||
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
|
|
||||||
extraLibSpec =
|
|
||||||
if libpthreadCross != null
|
|
||||||
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
else "-L${libpthread}/lib";
|
|
||||||
in
|
|
||||||
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
|
|
||||||
|
|
||||||
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
|
|
||||||
|
|
||||||
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.dev}/include"|g'
|
|
||||||
''
|
|
||||||
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
|
||||||
# On NixOS, use the right path to the dynamic linker instead of
|
# On NixOS, use the right path to the dynamic linker instead of
|
||||||
# `/lib/ld*.so'.
|
# `/lib/ld*.so'.
|
||||||
let
|
let
|
||||||
@ -401,22 +368,13 @@ stdenv.mkDerivation ({
|
|||||||
++ 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 (libpthreadCross != null) libpthreadCross
|
|
||||||
|
|
||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
|
||||||
# headers.
|
|
||||||
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
|
|
||||||
libcCross.propagatedBuildInputs
|
|
||||||
));
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (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)
|
|
||||||
);
|
|
||||||
|
|
||||||
EXTRA_TARGET_FLAGS = optionals
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
(targetPlatform != hostPlatform && libcCross != null)
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
@ -435,10 +393,7 @@ stdenv.mkDerivation ({
|
|||||||
] 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) [
|
]));
|
||||||
"-L${libpthreadCross}/lib"
|
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
]);
|
|
||||||
|
|
||||||
passthru =
|
passthru =
|
||||||
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
|
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? false
|
, crossStageStatic ? false
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
|
||||||
, # Strip kills static libs of other archs (hence no cross)
|
, # Strip kills static libs of other archs (hence no cross)
|
||||||
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
||||||
, gnused ? null
|
, gnused ? null
|
||||||
@ -188,39 +187,7 @@ stdenv.mkDerivation ({
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
postPatch =
|
postPatch =
|
||||||
if targetPlatform.isHurd
|
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
||||||
then
|
|
||||||
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
|
|
||||||
# in glibc, so add the right `-I' flags to the default spec string.
|
|
||||||
assert libcCross != null -> libpthreadCross != null;
|
|
||||||
let
|
|
||||||
libc = if libcCross != null then libcCross else stdenv.glibc;
|
|
||||||
gnu_h = "gcc/config/gnu.h";
|
|
||||||
extraCPPDeps =
|
|
||||||
libc.propagatedBuildInputs
|
|
||||||
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
|
|
||||||
++ stdenv.lib.optional (libpthread != null) libpthread;
|
|
||||||
extraCPPSpec =
|
|
||||||
concatStrings (intersperse " "
|
|
||||||
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
|
|
||||||
extraLibSpec =
|
|
||||||
if libpthreadCross != null
|
|
||||||
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
else "-L${libpthread}/lib";
|
|
||||||
in
|
|
||||||
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
|
|
||||||
|
|
||||||
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
|
|
||||||
|
|
||||||
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.dev}/include"|g'
|
|
||||||
''
|
|
||||||
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
|
||||||
# On NixOS, use the right path to the dynamic linker instead of
|
# On NixOS, use the right path to the dynamic linker instead of
|
||||||
# `/lib/ld*.so'.
|
# `/lib/ld*.so'.
|
||||||
let
|
let
|
||||||
@ -302,7 +269,7 @@ stdenv.mkDerivation ({
|
|||||||
] ++
|
] ++
|
||||||
optional (libelf != null) "--with-libelf=${libelf}" ++
|
optional (libelf != null) "--with-libelf=${libelf}" ++
|
||||||
optional (!(crossMingw && crossStageStatic))
|
optional (!(crossMingw && crossStageStatic))
|
||||||
"--with-native-system-header-dir=${getDev stdenv.cc.libc}/include" ++
|
"--with-native-system-header-dir=${getDev stdenv.cc.libc}/include" ++
|
||||||
|
|
||||||
# Basic configuration
|
# Basic configuration
|
||||||
[
|
[
|
||||||
@ -400,13 +367,6 @@ stdenv.mkDerivation ({
|
|||||||
++ 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 (libpthreadCross != null) libpthreadCross
|
|
||||||
|
|
||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
|
||||||
# headers.
|
|
||||||
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
|
|
||||||
libcCross.propagatedBuildInputs
|
|
||||||
));
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
|
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
|
||||||
@ -414,8 +374,7 @@ stdenv.mkDerivation ({
|
|||||||
++ optional langJava boehmgc
|
++ optional langJava boehmgc
|
||||||
++ optionals javaAwtGtk xlibs
|
++ optionals javaAwtGtk xlibs
|
||||||
++ optionals javaAwtGtk [ gmp mpfr ]
|
++ optionals javaAwtGtk [ gmp mpfr ]
|
||||||
++ optional (libpthread != null) libpthread)
|
));
|
||||||
);
|
|
||||||
|
|
||||||
EXTRA_TARGET_FLAGS = optionals
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
(targetPlatform != hostPlatform && libcCross != null)
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
@ -434,10 +393,7 @@ stdenv.mkDerivation ({
|
|||||||
] 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) [
|
]));
|
||||||
"-L${libpthreadCross}/lib"
|
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
]);
|
|
||||||
|
|
||||||
passthru =
|
passthru =
|
||||||
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
|
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? false
|
, crossStageStatic ? false
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
|
||||||
, # Strip kills static libs of other archs (hence no cross)
|
, # Strip kills static libs of other archs (hence no cross)
|
||||||
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
||||||
, gnused ? null
|
, gnused ? null
|
||||||
@ -192,39 +191,7 @@ stdenv.mkDerivation ({
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
postPatch =
|
postPatch =
|
||||||
if targetPlatform.isHurd
|
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
||||||
then
|
|
||||||
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
|
|
||||||
# in glibc, so add the right `-I' flags to the default spec string.
|
|
||||||
assert libcCross != null -> libpthreadCross != null;
|
|
||||||
let
|
|
||||||
libc = if libcCross != null then libcCross else stdenv.glibc;
|
|
||||||
gnu_h = "gcc/config/gnu.h";
|
|
||||||
extraCPPDeps =
|
|
||||||
libc.propagatedBuildInputs
|
|
||||||
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
|
|
||||||
++ stdenv.lib.optional (libpthread != null) libpthread;
|
|
||||||
extraCPPSpec =
|
|
||||||
concatStrings (intersperse " "
|
|
||||||
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
|
|
||||||
extraLibSpec =
|
|
||||||
if libpthreadCross != null
|
|
||||||
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
else "-L${libpthread}/lib";
|
|
||||||
in
|
|
||||||
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
|
|
||||||
|
|
||||||
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
|
|
||||||
|
|
||||||
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.dev}/include"|g'
|
|
||||||
''
|
|
||||||
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
|
||||||
# On NixOS, use the right path to the dynamic linker instead of
|
# On NixOS, use the right path to the dynamic linker instead of
|
||||||
# `/lib/ld*.so'.
|
# `/lib/ld*.so'.
|
||||||
let
|
let
|
||||||
@ -408,22 +375,13 @@ stdenv.mkDerivation ({
|
|||||||
++ 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 (libpthreadCross != null) libpthreadCross
|
|
||||||
|
|
||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
|
||||||
# headers.
|
|
||||||
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
|
|
||||||
libcCross.propagatedBuildInputs
|
|
||||||
));
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (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)
|
|
||||||
);
|
|
||||||
|
|
||||||
EXTRA_TARGET_FLAGS = optionals
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
(targetPlatform != hostPlatform && libcCross != null)
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
@ -442,10 +400,7 @@ stdenv.mkDerivation ({
|
|||||||
] 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) [
|
]));
|
||||||
"-L${libpthreadCross}/lib"
|
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
]);
|
|
||||||
|
|
||||||
passthru =
|
passthru =
|
||||||
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
|
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? false
|
, crossStageStatic ? false
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
|
||||||
, # Strip kills static libs of other archs (hence no cross)
|
, # Strip kills static libs of other archs (hence no cross)
|
||||||
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
||||||
, gnused ? null
|
, gnused ? null
|
||||||
@ -165,39 +164,7 @@ stdenv.mkDerivation ({
|
|||||||
patchShebangs $configureScript
|
patchShebangs $configureScript
|
||||||
done
|
done
|
||||||
'' + (
|
'' + (
|
||||||
if targetPlatform.isHurd
|
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
||||||
then
|
|
||||||
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
|
|
||||||
# in glibc, so add the right `-I' flags to the default spec string.
|
|
||||||
assert libcCross != null -> libpthreadCross != null;
|
|
||||||
let
|
|
||||||
libc = if libcCross != null then libcCross else stdenv.glibc;
|
|
||||||
gnu_h = "gcc/config/gnu.h";
|
|
||||||
extraCPPDeps =
|
|
||||||
libc.propagatedBuildInputs
|
|
||||||
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
|
|
||||||
++ stdenv.lib.optional (libpthread != null) libpthread;
|
|
||||||
extraCPPSpec =
|
|
||||||
concatStrings (intersperse " "
|
|
||||||
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
|
|
||||||
extraLibSpec =
|
|
||||||
if libpthreadCross != null
|
|
||||||
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
else "-L${libpthread}/lib";
|
|
||||||
in
|
|
||||||
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
|
|
||||||
|
|
||||||
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
|
|
||||||
|
|
||||||
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.dev}/include"|g'
|
|
||||||
''
|
|
||||||
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
|
||||||
# On NixOS, use the right path to the dynamic linker instead of
|
# On NixOS, use the right path to the dynamic linker instead of
|
||||||
# `/lib/ld*.so'.
|
# `/lib/ld*.so'.
|
||||||
let
|
let
|
||||||
@ -357,19 +324,9 @@ stdenv.mkDerivation ({
|
|||||||
|
|
||||||
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
|
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
|
||||||
++ optional (zlib != null) zlib
|
++ optional (zlib != null) zlib
|
||||||
++ optional (libpthread != null) libpthread
|
|
||||||
++ optional (libpthreadCross != null) libpthreadCross
|
|
||||||
|
|
||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
|
||||||
# headers.
|
|
||||||
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
|
|
||||||
libcCross.propagatedBuildInputs
|
|
||||||
));
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
|
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
|
||||||
++ optional (zlib != null) zlib
|
|
||||||
++ optional (libpthread != null) libpthread)
|
|
||||||
);
|
|
||||||
|
|
||||||
EXTRA_TARGET_FLAGS = optionals
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
(targetPlatform != hostPlatform && libcCross != null)
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
@ -388,10 +345,7 @@ stdenv.mkDerivation ({
|
|||||||
] 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) [
|
]));
|
||||||
"-L${libpthreadCross}/lib"
|
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
]);
|
|
||||||
|
|
||||||
passthru =
|
passthru =
|
||||||
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
|
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? false
|
, crossStageStatic ? false
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
|
||||||
, # Strip kills static libs of other archs (hence no cross)
|
, # Strip kills static libs of other archs (hence no cross)
|
||||||
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
||||||
, gnused ? null
|
, gnused ? null
|
||||||
@ -160,39 +159,7 @@ stdenv.mkDerivation ({
|
|||||||
patchShebangs $configureScript
|
patchShebangs $configureScript
|
||||||
done
|
done
|
||||||
'' + (
|
'' + (
|
||||||
if targetPlatform.isHurd
|
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
||||||
then
|
|
||||||
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
|
|
||||||
# in glibc, so add the right `-I' flags to the default spec string.
|
|
||||||
assert libcCross != null -> libpthreadCross != null;
|
|
||||||
let
|
|
||||||
libc = if libcCross != null then libcCross else stdenv.glibc;
|
|
||||||
gnu_h = "gcc/config/gnu.h";
|
|
||||||
extraCPPDeps =
|
|
||||||
libc.propagatedBuildInputs
|
|
||||||
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
|
|
||||||
++ stdenv.lib.optional (libpthread != null) libpthread;
|
|
||||||
extraCPPSpec =
|
|
||||||
concatStrings (intersperse " "
|
|
||||||
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
|
|
||||||
extraLibSpec =
|
|
||||||
if libpthreadCross != null
|
|
||||||
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
else "-L${libpthread}/lib";
|
|
||||||
in
|
|
||||||
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
|
|
||||||
|
|
||||||
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
|
|
||||||
|
|
||||||
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.dev}/include"|g'
|
|
||||||
''
|
|
||||||
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
|
||||||
# On NixOS, use the right path to the dynamic linker instead of
|
# On NixOS, use the right path to the dynamic linker instead of
|
||||||
# `/lib/ld*.so'.
|
# `/lib/ld*.so'.
|
||||||
let
|
let
|
||||||
@ -346,19 +313,9 @@ stdenv.mkDerivation ({
|
|||||||
|
|
||||||
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
|
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
|
||||||
++ optional (zlib != null) zlib
|
++ optional (zlib != null) zlib
|
||||||
++ optional (libpthread != null) libpthread
|
|
||||||
++ optional (libpthreadCross != null) libpthreadCross
|
|
||||||
|
|
||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
|
||||||
# headers.
|
|
||||||
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
|
|
||||||
libcCross.propagatedBuildInputs
|
|
||||||
));
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
|
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
|
||||||
++ optional (zlib != null) zlib
|
|
||||||
++ optional (libpthread != null) libpthread)
|
|
||||||
);
|
|
||||||
|
|
||||||
EXTRA_TARGET_FLAGS = optionals
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
(targetPlatform != hostPlatform && libcCross != null)
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
@ -377,10 +334,7 @@ stdenv.mkDerivation ({
|
|||||||
] 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) [
|
]));
|
||||||
"-L${libpthreadCross}/lib"
|
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
]);
|
|
||||||
|
|
||||||
passthru =
|
passthru =
|
||||||
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
|
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? false
|
, crossStageStatic ? false
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
|
||||||
, # Strip kills static libs of other archs (hence no cross)
|
, # Strip kills static libs of other archs (hence no cross)
|
||||||
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
|
||||||
, gnused ? null
|
, gnused ? null
|
||||||
@ -134,39 +133,7 @@ stdenv.mkDerivation ({
|
|||||||
hardeningDisable = [ "format" ];
|
hardeningDisable = [ "format" ];
|
||||||
|
|
||||||
postPatch =
|
postPatch =
|
||||||
if targetPlatform.isHurd
|
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
||||||
then
|
|
||||||
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
|
|
||||||
# in glibc, so add the right `-I' flags to the default spec string.
|
|
||||||
assert libcCross != null -> libpthreadCross != null;
|
|
||||||
let
|
|
||||||
libc = if libcCross != null then libcCross else stdenv.glibc;
|
|
||||||
gnu_h = "gcc/config/gnu.h";
|
|
||||||
extraCPPDeps =
|
|
||||||
libc.propagatedBuildInputs
|
|
||||||
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
|
|
||||||
++ stdenv.lib.optional (libpthread != null) libpthread;
|
|
||||||
extraCPPSpec =
|
|
||||||
concatStrings (intersperse " "
|
|
||||||
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
|
|
||||||
extraLibSpec =
|
|
||||||
if libpthreadCross != null
|
|
||||||
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
else "-L${libpthread}/lib";
|
|
||||||
in
|
|
||||||
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
|
|
||||||
|
|
||||||
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
|
|
||||||
sed -i "${gnu_h}" \
|
|
||||||
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
|
|
||||||
|
|
||||||
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.dev}/include"|g'
|
|
||||||
''
|
|
||||||
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
|
||||||
# On NixOS, use the right path to the dynamic linker instead of
|
# On NixOS, use the right path to the dynamic linker instead of
|
||||||
# `/lib/ld*.so'.
|
# `/lib/ld*.so'.
|
||||||
let
|
let
|
||||||
@ -314,19 +281,9 @@ stdenv.mkDerivation ({
|
|||||||
|
|
||||||
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
|
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
|
||||||
++ optional (zlib != null) zlib
|
++ optional (zlib != null) zlib
|
||||||
++ optional (libpthread != null) libpthread
|
|
||||||
++ optional (libpthreadCross != null) libpthreadCross
|
|
||||||
|
|
||||||
# On GNU/Hurd glibc refers to Mach & Hurd
|
|
||||||
# headers.
|
|
||||||
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
|
|
||||||
libcCross.propagatedBuildInputs
|
|
||||||
));
|
));
|
||||||
|
|
||||||
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
|
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
|
||||||
++ optional (zlib != null) zlib
|
|
||||||
++ optional (libpthread != null) libpthread)
|
|
||||||
);
|
|
||||||
|
|
||||||
EXTRA_TARGET_FLAGS = optionals
|
EXTRA_TARGET_FLAGS = optionals
|
||||||
(targetPlatform != hostPlatform && libcCross != null)
|
(targetPlatform != hostPlatform && libcCross != null)
|
||||||
@ -345,10 +302,7 @@ stdenv.mkDerivation ({
|
|||||||
] 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) [
|
]));
|
||||||
"-L${libpthreadCross}/lib"
|
|
||||||
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
|
|
||||||
]);
|
|
||||||
|
|
||||||
passthru =
|
passthru =
|
||||||
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
|
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
|
||||||
|
@ -11,9 +11,6 @@
|
|||||||
, pythonSupport ? hostPlatform == buildPlatform && !hostPlatform.isCygwin, python ? null
|
, pythonSupport ? hostPlatform == buildPlatform && !hostPlatform.isCygwin, python ? null
|
||||||
, guile ? null
|
, guile ? null
|
||||||
|
|
||||||
# Additional dependencies for GNU/Hurd.
|
|
||||||
, mig ? null, hurd ? null
|
|
||||||
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -21,7 +18,6 @@ let
|
|||||||
version = "8.1.1";
|
version = "8.1.1";
|
||||||
in
|
in
|
||||||
|
|
||||||
assert targetPlatform.isHurd -> mig != null && hurd != null;
|
|
||||||
assert pythonSupport -> python != null;
|
assert pythonSupport -> python != null;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -38,13 +34,10 @@ stdenv.mkDerivation rec {
|
|||||||
patches = [ ./debug-info-from-env.patch ]
|
patches = [ ./debug-info-from-env.patch ]
|
||||||
++ stdenv.lib.optional stdenv.isDarwin ./darwin-target-match.patch;
|
++ stdenv.lib.optional stdenv.isDarwin ./darwin-target-match.patch;
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig texinfo perl setupDebugInfoDirs ]
|
nativeBuildInputs = [ pkgconfig texinfo perl setupDebugInfoDirs ];
|
||||||
# TODO(@Ericson2314) not sure if should be host or target
|
|
||||||
++ stdenv.lib.optional targetPlatform.isHurd mig;
|
|
||||||
|
|
||||||
buildInputs = [ ncurses readline gmp mpfr expat zlib guile ]
|
buildInputs = [ ncurses readline gmp mpfr expat zlib guile ]
|
||||||
++ stdenv.lib.optional pythonSupport python
|
++ stdenv.lib.optional pythonSupport python
|
||||||
++ stdenv.lib.optional targetPlatform.isHurd hurd
|
|
||||||
++ stdenv.lib.optional doCheck dejagnu;
|
++ stdenv.lib.optional doCheck dejagnu;
|
||||||
|
|
||||||
propagatedNativeBuildInputs = [ setupDebugInfoDirs ];
|
propagatedNativeBuildInputs = [ setupDebugInfoDirs ];
|
||||||
|
@ -1,113 +0,0 @@
|
|||||||
# Packages that make up the GNU/Hurd operating system (aka. GNU).
|
|
||||||
|
|
||||||
args@{ fetchgit, stdenv, autoconf, automake, automake111x, libtool
|
|
||||||
, texinfo, glibcCross, hurdPartedCross, libuuid, samba
|
|
||||||
, gccCrossStageStatic, gcc
|
|
||||||
, pkgsi686Linux, newScope, config
|
|
||||||
, targetPlatform, buildPlatform
|
|
||||||
, overrides ? {}
|
|
||||||
, buildPackages, pkgs
|
|
||||||
}:
|
|
||||||
|
|
||||||
with args;
|
|
||||||
|
|
||||||
let
|
|
||||||
callPackage = newScope gnu;
|
|
||||||
|
|
||||||
forcedNativePackages =
|
|
||||||
if stdenv.hostPlatform == stdenv.buildPlatform
|
|
||||||
then pkgs
|
|
||||||
else buildPackages;
|
|
||||||
|
|
||||||
gnu = {
|
|
||||||
hurdCross = forcedNativePackages.callPackage ./hurd {
|
|
||||||
inherit fetchgit stdenv autoconf libtool texinfo
|
|
||||||
glibcCross hurdPartedCross;
|
|
||||||
inherit (gnu) machHeaders mig;
|
|
||||||
libuuid = libuuid.crossDrv;
|
|
||||||
automake = automake111x;
|
|
||||||
headersOnly = false;
|
|
||||||
cross = assert targetPlatform != buildPlatform; targetPlatform;
|
|
||||||
gccCross = gcc;
|
|
||||||
};
|
|
||||||
|
|
||||||
hurdCrossIntermediate = forcedNativePackages.callPackage ./hurd {
|
|
||||||
inherit fetchgit stdenv autoconf libtool texinfo glibcCross;
|
|
||||||
inherit (gnu) machHeaders mig;
|
|
||||||
hurdPartedCross = null;
|
|
||||||
libuuid = null;
|
|
||||||
automake = automake111x;
|
|
||||||
headersOnly = false;
|
|
||||||
cross = assert targetPlatform != buildPlatform; targetPlatform;
|
|
||||||
|
|
||||||
# The "final" GCC needs glibc and the Hurd libraries (libpthread in
|
|
||||||
# particular) so we first need an intermediate Hurd built with the
|
|
||||||
# intermediate GCC.
|
|
||||||
gccCross = gccCrossStageStatic;
|
|
||||||
|
|
||||||
# This intermediate Hurd is only needed to build libpthread, which needs
|
|
||||||
# libihash, and to build Parted, which needs libstore and
|
|
||||||
# libshouldbeinlibc.
|
|
||||||
buildTarget = "libihash libstore libshouldbeinlibc";
|
|
||||||
installTarget = "libihash-install libstore-install libshouldbeinlibc-install";
|
|
||||||
};
|
|
||||||
|
|
||||||
hurdHeaders = callPackage ./hurd {
|
|
||||||
automake = automake111x;
|
|
||||||
headersOnly = true;
|
|
||||||
gccCross = null;
|
|
||||||
glibcCross = null;
|
|
||||||
libuuid = null;
|
|
||||||
hurdPartedCross = null;
|
|
||||||
};
|
|
||||||
|
|
||||||
libpthreadHeaders = callPackage ./libpthread {
|
|
||||||
headersOnly = true;
|
|
||||||
hurd = null;
|
|
||||||
};
|
|
||||||
|
|
||||||
libpthreadCross = forcedNativePackages.callPackage ./libpthread {
|
|
||||||
inherit fetchgit stdenv autoconf automake libtool glibcCross;
|
|
||||||
inherit (gnu) machHeaders hurdHeaders;
|
|
||||||
hurd = gnu.hurdCrossIntermediate;
|
|
||||||
gccCross = gccCrossStageStatic;
|
|
||||||
cross = assert targetPlatform != buildPlatform; targetPlatform;
|
|
||||||
};
|
|
||||||
|
|
||||||
# In theory GNU Mach doesn't have to be cross-compiled. However, since it
|
|
||||||
# has to be built for i586 (it doesn't work on x86_64), one needs a cross
|
|
||||||
# compiler for that host.
|
|
||||||
mach = callPackage ./mach {
|
|
||||||
automake = automake111x;
|
|
||||||
};
|
|
||||||
|
|
||||||
machHeaders = callPackage ./mach {
|
|
||||||
automake = automake111x;
|
|
||||||
headersOnly = true;
|
|
||||||
mig = null;
|
|
||||||
};
|
|
||||||
|
|
||||||
mig = callPackage ./mig {
|
|
||||||
# Build natively, but force use of a 32-bit environment because we're
|
|
||||||
# targeting `i586-pc-gnu'.
|
|
||||||
stdenv = pkgsi686Linux.stdenv;
|
|
||||||
};
|
|
||||||
|
|
||||||
# XXX: Use this one for its `.crossDrv'. Using the one above from
|
|
||||||
# `x86_64-linux' leads to building a different cross-toolchain because of
|
|
||||||
# the `forceSystem'.
|
|
||||||
mig_raw = callPackage ./mig {};
|
|
||||||
|
|
||||||
smbfs = callPackage ./smbfs {
|
|
||||||
hurd = gnu.hurdCross;
|
|
||||||
};
|
|
||||||
|
|
||||||
unionfs = callPackage ./unionfs {
|
|
||||||
hurd = gnu.hurdCross;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
# Allow callers to override elements of this attribute set.
|
|
||||||
// overrides;
|
|
||||||
|
|
||||||
in gnu # we trust!
|
|
@ -1,91 +0,0 @@
|
|||||||
{ fetchgit, stdenv, autoconf, automake, libtool, texinfo
|
|
||||||
, machHeaders, mig, headersOnly ? true
|
|
||||||
, cross ? null, gccCross ? null, glibcCross ? null
|
|
||||||
, hurdPartedCross ? null, libuuid ? null
|
|
||||||
, buildTarget ? "all", installTarget ? "install" }:
|
|
||||||
|
|
||||||
assert (cross != null) -> (gccCross != null);
|
|
||||||
assert (hurdPartedCross != null) -> (libuuid != null);
|
|
||||||
|
|
||||||
let
|
|
||||||
# Unfortunately we can't use `master@{DATE}', see
|
|
||||||
# <http://www.bramschoenmakers.nl/en/node/645>.
|
|
||||||
date = "20111115";
|
|
||||||
rev = "969fbb646ffd89a482302e303eaded79781c3331";
|
|
||||||
suffix = if headersOnly
|
|
||||||
then "-headers"
|
|
||||||
else (if buildTarget != "all"
|
|
||||||
then "-minimal"
|
|
||||||
else "");
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation ({
|
|
||||||
name = "hurd${suffix}-${date}";
|
|
||||||
|
|
||||||
src = fetchgit {
|
|
||||||
url = "git://git.sv.gnu.org/hurd/hurd.git";
|
|
||||||
sha256 = "b7f57ec2c6dcaf35ec03fb7979eb5506180ce4c6e2edf60a587f12ac5b11f004";
|
|
||||||
inherit rev;
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ autoconf automake libtool texinfo mig ]
|
|
||||||
++ stdenv.lib.optional (hurdPartedCross != null) hurdPartedCross
|
|
||||||
++ stdenv.lib.optional (libuuid != null) libuuid
|
|
||||||
++ stdenv.lib.optional (gccCross != null) gccCross
|
|
||||||
++ stdenv.lib.optional (glibcCross != null) glibcCross;
|
|
||||||
|
|
||||||
propagatedBuildInputs = [ machHeaders ];
|
|
||||||
|
|
||||||
configureFlags = stdenv.lib.optionals headersOnly [ "--build=i586-pc-gnu" ]
|
|
||||||
++ (if hurdPartedCross != null
|
|
||||||
then [ "--with-parted" ]
|
|
||||||
else [ "--without-parted" ]);
|
|
||||||
|
|
||||||
# Use `preConfigure' only for `autoreconf', so that users know they can
|
|
||||||
# simply clear it when the autoconf phase is unneeded.
|
|
||||||
preConfigure = "autoreconf -vfi";
|
|
||||||
|
|
||||||
postConfigure =
|
|
||||||
'' echo "removing \`-o root' from makefiles..."
|
|
||||||
for mf in {utils,daemons}/Makefile
|
|
||||||
do
|
|
||||||
sed -i "$mf" -e's/-o root//g'
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Not needed after https://github.com/NixOS/nixpkgs/pull/43833
|
|
||||||
dontPatchShebangs = stdenv.hostPlatform != stdenv.buildPlatform;
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "The GNU Hurd, GNU project's replacement for the Unix kernel";
|
|
||||||
|
|
||||||
longDescription =
|
|
||||||
'' The GNU Hurd is the GNU project's replacement for the Unix kernel.
|
|
||||||
It is a collection of servers that run on the Mach microkernel to
|
|
||||||
implement file systems, network protocols, file access control, and
|
|
||||||
other features that are implemented by the Unix kernel or similar
|
|
||||||
kernels (such as Linux).
|
|
||||||
'';
|
|
||||||
|
|
||||||
license = stdenv.lib.licenses.gpl2Plus;
|
|
||||||
|
|
||||||
homepage = http://www.gnu.org/software/hurd/;
|
|
||||||
|
|
||||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
stdenv.lib.optionalAttrs (!headersOnly && buildTarget != null) {
|
|
||||||
# Use the default `buildPhase' and `installPhase' so that the usual hooks
|
|
||||||
# can still be used.
|
|
||||||
buildFlags = buildTarget;
|
|
||||||
installTargets = assert installTarget != null; installTarget;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
stdenv.lib.optionalAttrs headersOnly {
|
|
||||||
dontBuild = true;
|
|
||||||
installPhase = "make install-headers";
|
|
||||||
})
|
|
@ -1,81 +0,0 @@
|
|||||||
{ fetchgit, stdenv, autoconf, automake, libtool
|
|
||||||
, machHeaders, hurdHeaders, hurd, headersOnly ? false
|
|
||||||
, cross ? null, gccCross ? null, glibcCross ? null }:
|
|
||||||
|
|
||||||
assert (cross != null) -> (gccCross != null) && (glibcCross != null);
|
|
||||||
assert (!headersOnly) -> (hurd != null);
|
|
||||||
|
|
||||||
let
|
|
||||||
date = "20111020";
|
|
||||||
|
|
||||||
# Use the `tschwinge/Peter_Herbolzheimer' branch as prescribed in
|
|
||||||
# <http://www.gnu.org/software/hurd/hurd/building/cross-compiling.html>.
|
|
||||||
rev = "a7b82c3302bf9c47176648eb802a61ae2d9a16f5";
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation ({
|
|
||||||
name = "libpthread-hurd-${if headersOnly then "headers-" else ""}${date}";
|
|
||||||
|
|
||||||
src = fetchgit {
|
|
||||||
url = "git://git.sv.gnu.org/hurd/libpthread.git";
|
|
||||||
sha256 = "e8300762914d927c0da4168341a5982a1057613e1af363ee68942087b2570b3d";
|
|
||||||
inherit rev;
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ autoconf automake libtool ];
|
|
||||||
buildInputs = [ machHeaders hurdHeaders ]
|
|
||||||
++ stdenv.lib.optional (!headersOnly) hurd
|
|
||||||
++ stdenv.lib.optional (gccCross != null) gccCross;
|
|
||||||
|
|
||||||
preConfigure = "autoreconf -vfi";
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "GNU Hurd's libpthread";
|
|
||||||
|
|
||||||
license = stdenv.lib.licenses.lgpl2Plus;
|
|
||||||
|
|
||||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
(if headersOnly
|
|
||||||
then {
|
|
||||||
configureFlags =
|
|
||||||
[ "--build=i586-pc-gnu"
|
|
||||||
"ac_cv_lib_ihash_hurd_ihash_create=yes"
|
|
||||||
];
|
|
||||||
|
|
||||||
dontBuild = true;
|
|
||||||
installPhase = "make install-data-local-headers";
|
|
||||||
}
|
|
||||||
else { })
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
(if cross != null
|
|
||||||
then {
|
|
||||||
# Tell gcc where to find `crt1.o' et al. This is specified in two
|
|
||||||
# different ways: one for gcc as run from `configure', and one for linking
|
|
||||||
# libpthread.so (by default `libtool --mode=link' swallows `-B', hence
|
|
||||||
# this workaround; see
|
|
||||||
# <http://lists.gnu.org/archive/html/bug-libtool/2010-05/msg00012.html>.)
|
|
||||||
LDFLAGS = "-B${glibcCross}/lib";
|
|
||||||
makeFlags = [ "LDFLAGS=-Wc,-B${glibcCross}/lib" ];
|
|
||||||
|
|
||||||
# Help the linker find glibc.
|
|
||||||
CPATH = "${glibcCross}/include";
|
|
||||||
LIBRARY_PATH = "${glibcCross}/lib";
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
# Extra target LDFLAGS to allow the cross-linker to find the
|
|
||||||
# dependencies of the cross libpthread.so, namely libihash.so.
|
|
||||||
# Note: these are raw `ld' flags, so `-Wl,' must be prepended when using
|
|
||||||
# `gcc'.
|
|
||||||
#
|
|
||||||
# This is actually only useful while building the final cross-gcc, since
|
|
||||||
# afterwards gcc-cross-wrapper should add the relevant flags.
|
|
||||||
TARGET_LDFLAGS = "-rpath-link=${hurd}/lib";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
else { }))
|
|
@ -1,57 +0,0 @@
|
|||||||
{ fetchgit, stdenv, mig ? null, autoconf, automake, texinfo
|
|
||||||
, headersOnly ? false }:
|
|
||||||
|
|
||||||
assert (!headersOnly) -> (mig != null);
|
|
||||||
|
|
||||||
let
|
|
||||||
date = "20120303";
|
|
||||||
rev = "2a603e88f86bee88e013c2451eacf076fbcaed81";
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation ({
|
|
||||||
name = "gnumach${if headersOnly then "-headers" else ""}-${date}";
|
|
||||||
|
|
||||||
src = fetchgit {
|
|
||||||
url = "git://git.sv.gnu.org/hurd/gnumach.git";
|
|
||||||
sha256 = "1q8zk8xzbiwpnvvmfgkylj4gwkvkn5n2ydy9j054qv5plnaczj1c";
|
|
||||||
inherit rev;
|
|
||||||
};
|
|
||||||
|
|
||||||
configureFlags =
|
|
||||||
stdenv.lib.optional headersOnly "--build=i586-pc-gnu" # cheat
|
|
||||||
|
|
||||||
# Always enable dependency tracking. See
|
|
||||||
# <http://lists.gnu.org/archive/html/bug-hurd/2010-05/msg00137.html>.
|
|
||||||
++ [ "--enable-dependency-tracking" ];
|
|
||||||
|
|
||||||
nativeBuildInputs = [ autoconf automake texinfo ]
|
|
||||||
++ stdenv.lib.optional (mig != null) mig;
|
|
||||||
|
|
||||||
preConfigure = "autoreconf -vfi";
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "GNU Mach, the microkernel used by the GNU Hurd";
|
|
||||||
|
|
||||||
longDescription =
|
|
||||||
'' GNU Mach is the microkernel that the GNU Hurd system is based on.
|
|
||||||
|
|
||||||
It is maintained by the Hurd developers for the GNU project and
|
|
||||||
remains compatible with Mach 3.0.
|
|
||||||
|
|
||||||
The majority of GNU Mach's device drivers are from Linux 2.0. They
|
|
||||||
were added using glue code, i.e., a Linux emulation layer in Mach.
|
|
||||||
'';
|
|
||||||
|
|
||||||
license = stdenv.lib.licenses.gpl2Plus;
|
|
||||||
|
|
||||||
homepage = http://www.gnu.org/software/hurd/microkernel/mach/gnumach.html;
|
|
||||||
|
|
||||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
|
||||||
platforms = [ "i586-gnu" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
(if headersOnly
|
|
||||||
then { dontBuild = true; installPhase = "make install-data"; }
|
|
||||||
else {}))
|
|
@ -1,50 +0,0 @@
|
|||||||
{ fetchgit, stdenv, autoconf, automake, flex, bison, machHeaders, bash }:
|
|
||||||
|
|
||||||
let
|
|
||||||
date = "20100512";
|
|
||||||
rev = "4fee6a5652f609cb68cdbd9049d4da7a194f15f8";
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "mig-${date}";
|
|
||||||
|
|
||||||
src = fetchgit {
|
|
||||||
url = "git://git.sv.gnu.org/hurd/mig.git";
|
|
||||||
sha256 = "d6958d9b60925d4600aac133c9505bc873a16b203c69260bd0fb228922ee9273";
|
|
||||||
inherit rev;
|
|
||||||
};
|
|
||||||
|
|
||||||
patches = [ ./noyywrap.patch ];
|
|
||||||
|
|
||||||
nativeBuildInputs = [ autoconf automake flex bison machHeaders ];
|
|
||||||
|
|
||||||
preConfigure = "autoreconf -vfi";
|
|
||||||
|
|
||||||
doCheck = true;
|
|
||||||
|
|
||||||
# Fix the shebang to point to the cross-built shell. Won't be needed
|
|
||||||
# after #43833.
|
|
||||||
postInstall = ''
|
|
||||||
sed -i "$out/bin/mig" -e 's|^#!/.*|#!${bash}/bin/sh|g'
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "GNU MIG, the Mach interface generator";
|
|
||||||
|
|
||||||
longDescription =
|
|
||||||
'' GNU MIG is the GNU distribution of the Mach 3.0 interface generator
|
|
||||||
MIG, as maintained by the GNU Hurd developers for the GNU project.
|
|
||||||
|
|
||||||
You need this tool to compile the GNU Mach and GNU Hurd
|
|
||||||
distributions, and to compile the GNU C library for the Hurd. Also,
|
|
||||||
you will need it for other software in the GNU system that uses
|
|
||||||
Mach-based inter-process communication.
|
|
||||||
'';
|
|
||||||
|
|
||||||
license = stdenv.lib.licenses.gpl2Plus;
|
|
||||||
|
|
||||||
homepage = http://www.gnu.org/software/hurd/microkernel/mach/mig/gnu_mig.html;
|
|
||||||
|
|
||||||
# platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux; # really GNU/Hurd
|
|
||||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
Fix undefined reference to `yywrap'.
|
|
||||||
|
|
||||||
diff --git a/lexxer.l b/lexxer.l
|
|
||||||
index 9725d0b..15264bc 100644
|
|
||||||
--- a/lexxer.l
|
|
||||||
+++ b/lexxer.l
|
|
||||||
@@ -1,4 +1,5 @@
|
|
||||||
%option nounput
|
|
||||||
+%option noyywrap
|
|
||||||
|
|
||||||
%k 10000
|
|
||||||
%n 5000
|
|
@ -1,44 +0,0 @@
|
|||||||
{ fetchcvs, stdenv, hurd, machHeaders, samba }:
|
|
||||||
|
|
||||||
let
|
|
||||||
date = "2012-03-15";
|
|
||||||
samba_patched = stdenv.lib.overrideDerivation samba (attrs: {
|
|
||||||
patches = attrs.patches ++ [ ./samba-without-byte-range-locks.patch ];
|
|
||||||
});
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "smbfs-${date}";
|
|
||||||
|
|
||||||
src = fetchcvs {
|
|
||||||
cvsRoot = ":pserver:anonymous@cvs.savannah.nongnu.org:/sources/hurdextras";
|
|
||||||
module = "smbfs";
|
|
||||||
sha256 = "5941d1a5da4488cbf0efe9aa0b41fe4ff5ba57b84ed24f7ff7c0feda4501d3e3";
|
|
||||||
inherit date;
|
|
||||||
};
|
|
||||||
|
|
||||||
patchPhase =
|
|
||||||
'' sed -i "Makefile" \
|
|
||||||
-e 's|gcc|i586-pc-gnu-gcc|g ;
|
|
||||||
s|^LDFLAGS=\(.*\)$|LDFLAGS=\1 -pthread|g'
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildInputs = [ hurd machHeaders samba_patched ];
|
|
||||||
|
|
||||||
installPhase =
|
|
||||||
'' mkdir -p "$out/hurd"
|
|
||||||
cp -v smbfs "$out/hurd"
|
|
||||||
|
|
||||||
mkdir -p "$out/share/doc/${name}"
|
|
||||||
cp -v README "$out/share/doc/${name}"
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "SMB/CIFS file system translator for GNU/Hurd";
|
|
||||||
|
|
||||||
homepage = http://www.nongnu.org/hurdextras/;
|
|
||||||
|
|
||||||
license = stdenv.lib.licenses.gpl3Plus;
|
|
||||||
|
|
||||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
Since GNU/Hurd doesn't support byte-range file locks, shamelessly
|
|
||||||
disable them to allow the SMB client library to work (it uses TDB
|
|
||||||
to access /etc/samba/private/secrets.tdb, for instance.)
|
|
||||||
|
|
||||||
--- samba/lib/tdb/common/lock.c 2010-02-08 16:12:57.000000000 +0100
|
|
||||||
+++ samba/lib/tdb/common/lock.c 2012-03-01 23:39:02.000000000 +0100
|
|
||||||
@@ -48,7 +48,7 @@ int tdb_brlock(struct tdb_context *tdb,
|
|
||||||
struct flock fl;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
- if (tdb->flags & TDB_NOLOCK) {
|
|
||||||
+ if (1) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
@ -1,43 +0,0 @@
|
|||||||
{ fetchgit, stdenv, hurd, machHeaders, mig }:
|
|
||||||
|
|
||||||
let
|
|
||||||
date = "20120313";
|
|
||||||
rev = "64dfa4e12d93c13b676d1cd7d86f4f4004ebfafa";
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "unionfs-${date}";
|
|
||||||
|
|
||||||
src = fetchgit {
|
|
||||||
url = "git://git.sv.gnu.org/hurd/unionfs.git";
|
|
||||||
sha256 = "1c3d71112cb25f8f82719a16df936e43abcb1adb77af96c1bb100a8ad0889d65";
|
|
||||||
inherit rev;
|
|
||||||
};
|
|
||||||
|
|
||||||
patchPhase =
|
|
||||||
'' sed -i "Makefile" \
|
|
||||||
-e 's|gcc|i586-pc-gnu-gcc|g ;
|
|
||||||
s|-std=gnu99|-std=gnu99 -fgnu89-inline|g'
|
|
||||||
'';
|
|
||||||
|
|
||||||
makeFlags = [ "CC=i586-pc-gnu-gcc" ];
|
|
||||||
buildInputs = [ hurd machHeaders ];
|
|
||||||
nativeBuildInputs = [ mig ];
|
|
||||||
|
|
||||||
installPhase =
|
|
||||||
'' mkdir -p "$out/hurd"
|
|
||||||
cp -v unionfs "$out/hurd"
|
|
||||||
|
|
||||||
mkdir -p "$out/share/doc/${name}"
|
|
||||||
cp -v [A-Z]* "$out/share/doc/${name}"
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Union file system translator for GNU/Hurd";
|
|
||||||
|
|
||||||
homepage = http://www.gnu.org/software/hurd/hurd/translator/unionfs.html;
|
|
||||||
|
|
||||||
license = stdenv.lib.licenses.gpl2Plus;
|
|
||||||
|
|
||||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
|
||||||
};
|
|
||||||
}
|
|
@ -121,7 +121,7 @@ let
|
|||||||
|
|
||||||
# Utility flags to test the type of platform.
|
# Utility flags to test the type of platform.
|
||||||
inherit (hostPlatform)
|
inherit (hostPlatform)
|
||||||
isDarwin isLinux isSunOS isHurd isCygwin isFreeBSD isOpenBSD
|
isDarwin isLinux isSunOS isCygwin isFreeBSD isOpenBSD
|
||||||
isi686 isx86_64 is64bit isAarch32 isAarch64 isMips isBigEndian;
|
isi686 isx86_64 is64bit isAarch32 isAarch64 isMips isBigEndian;
|
||||||
isArm = builtins.trace "stdenv.isArm is deprecated after 18.03" hostPlatform.isArm;
|
isArm = builtins.trace "stdenv.isArm is deprecated after 18.03" hostPlatform.isArm;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{ stdenv, fetchurl, lvm2, libuuid, gettext, readline
|
{ stdenv, fetchurl, lvm2, libuuid, gettext, readline
|
||||||
, utillinux, check, enableStatic ? false, hurd ? null }:
|
, utillinux, check, enableStatic ? false }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "parted-3.1";
|
name = "parted-3.1";
|
||||||
@ -12,8 +12,7 @@ stdenv.mkDerivation rec {
|
|||||||
buildInputs = [ libuuid ]
|
buildInputs = [ libuuid ]
|
||||||
++ stdenv.lib.optional (readline != null) readline
|
++ stdenv.lib.optional (readline != null) readline
|
||||||
++ stdenv.lib.optional (gettext != null) gettext
|
++ stdenv.lib.optional (gettext != null) gettext
|
||||||
++ stdenv.lib.optional (lvm2 != null) lvm2
|
++ stdenv.lib.optional (lvm2 != null) lvm2;
|
||||||
++ stdenv.lib.optional (hurd != null) hurd;
|
|
||||||
|
|
||||||
configureFlags =
|
configureFlags =
|
||||||
(if (readline != null)
|
(if (readline != null)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{ stdenv, fetchurl, fetchpatch, lvm2, libuuid, gettext, readline, perl, python2
|
{ stdenv, fetchurl, fetchpatch, lvm2, libuuid, gettext, readline, perl, python2
|
||||||
, utillinux, check, enableStatic ? false, hurd ? null }:
|
, utillinux, check, enableStatic ? false }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "parted-3.2";
|
name = "parted-3.2";
|
||||||
@ -30,8 +30,7 @@ stdenv.mkDerivation rec {
|
|||||||
buildInputs = [ libuuid ]
|
buildInputs = [ libuuid ]
|
||||||
++ stdenv.lib.optional (readline != null) readline
|
++ stdenv.lib.optional (readline != null) readline
|
||||||
++ stdenv.lib.optional (gettext != null) gettext
|
++ stdenv.lib.optional (gettext != null) gettext
|
||||||
++ stdenv.lib.optional (lvm2 != null) lvm2
|
++ stdenv.lib.optional (lvm2 != null) lvm2;
|
||||||
++ stdenv.lib.optional (hurd != null) hurd;
|
|
||||||
|
|
||||||
configureFlags =
|
configureFlags =
|
||||||
(if (readline != null)
|
(if (readline != null)
|
||||||
|
@ -4504,7 +4504,7 @@ with pkgs;
|
|||||||
|
|
||||||
patchutils = callPackage ../tools/text/patchutils { };
|
patchutils = callPackage ../tools/text/patchutils { };
|
||||||
|
|
||||||
parted = callPackage ../tools/misc/parted { hurd = null; };
|
parted = callPackage ../tools/misc/parted { };
|
||||||
|
|
||||||
pell = callPackage ../applications/misc/pell { };
|
pell = callPackage ../applications/misc/pell { };
|
||||||
|
|
||||||
@ -4531,24 +4531,6 @@ with pkgs;
|
|||||||
|
|
||||||
pngout = callPackage ../tools/graphics/pngout { };
|
pngout = callPackage ../tools/graphics/pngout { };
|
||||||
|
|
||||||
hurdPartedCross =
|
|
||||||
if targetPlatform != buildPlatform && targetPlatform.config == "i586-pc-gnu"
|
|
||||||
then (makeOverridable
|
|
||||||
({ hurd }:
|
|
||||||
(parted.override {
|
|
||||||
# Needs the Hurd's libstore.
|
|
||||||
inherit hurd;
|
|
||||||
|
|
||||||
# The Hurd wants a libparted.a.
|
|
||||||
enableStatic = true;
|
|
||||||
|
|
||||||
gettext = null;
|
|
||||||
readline = null;
|
|
||||||
devicemapper = null;
|
|
||||||
}).crossDrv)
|
|
||||||
{ hurd = gnu.hurdCrossIntermediate; })
|
|
||||||
else null;
|
|
||||||
|
|
||||||
ipsecTools = callPackage ../os-specific/linux/ipsec-tools { flex = flex_2_5_35; };
|
ipsecTools = callPackage ../os-specific/linux/ipsec-tools { flex = flex_2_5_35; };
|
||||||
|
|
||||||
patch = gnupatch;
|
patch = gnupatch;
|
||||||
@ -8764,8 +8746,6 @@ with pkgs;
|
|||||||
|
|
||||||
gdb = callPackage ../development/tools/misc/gdb {
|
gdb = callPackage ../development/tools/misc/gdb {
|
||||||
guile = null;
|
guile = null;
|
||||||
hurd = gnu.hurdCross;
|
|
||||||
inherit (gnu) mig;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
jhiccup = callPackage ../development/tools/java/jhiccup { };
|
jhiccup = callPackage ../development/tools/java/jhiccup { };
|
||||||
@ -13744,22 +13724,7 @@ with pkgs;
|
|||||||
|
|
||||||
libossp_uuid = callPackage ../development/libraries/libossp-uuid { };
|
libossp_uuid = callPackage ../development/libraries/libossp-uuid { };
|
||||||
|
|
||||||
libuuid =
|
libuuid = if stdenv.isLinux
|
||||||
if targetPlatform != buildPlatform && targetPlatform.config == "i586-pc-gnu"
|
|
||||||
then (utillinuxMinimal // {
|
|
||||||
crossDrv = lib.overrideDerivation utillinuxMinimal.crossDrv (args: {
|
|
||||||
# `libblkid' fails to build on GNU/Hurd.
|
|
||||||
configureFlags = args.configureFlags
|
|
||||||
+ " --disable-libblkid --disable-mount --disable-libmount"
|
|
||||||
+ " --disable-fsck --enable-static --disable-partx";
|
|
||||||
doCheck = false;
|
|
||||||
CPPFLAGS = # ugly hack for ugly software!
|
|
||||||
lib.concatStringsSep " "
|
|
||||||
(map (v: "-D${v}=4096")
|
|
||||||
[ "PATH_MAX" "MAXPATHLEN" "MAXHOSTNAMELEN" ]);
|
|
||||||
});
|
|
||||||
})
|
|
||||||
else if stdenv.isLinux
|
|
||||||
then utillinuxMinimal
|
then utillinuxMinimal
|
||||||
else null;
|
else null;
|
||||||
|
|
||||||
@ -13831,9 +13796,6 @@ with pkgs;
|
|||||||
|
|
||||||
nmon = callPackage ../os-specific/linux/nmon { };
|
nmon = callPackage ../os-specific/linux/nmon { };
|
||||||
|
|
||||||
# GNU/Hurd core packages.
|
|
||||||
gnu = recurseIntoAttrs (callPackage ../os-specific/gnu { });
|
|
||||||
|
|
||||||
hwdata = callPackage ../os-specific/linux/hwdata { };
|
hwdata = callPackage ../os-specific/linux/hwdata { };
|
||||||
|
|
||||||
i7z = callPackage ../os-specific/linux/i7z { };
|
i7z = callPackage ../os-specific/linux/i7z { };
|
||||||
|
Loading…
Reference in New Issue
Block a user