Merge branch 'systemd-cross' into staging
This commit is contained in:
commit
044c65bd06
@ -73,7 +73,9 @@ let version = "7.3.0";
|
|||||||
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
||||||
# target libraries and tools.
|
# target libraries and tools.
|
||||||
++ optional langAda ../gnat-cflags.patch
|
++ optional langAda ../gnat-cflags.patch
|
||||||
++ optional langFortran ../gfortran-driving.patch;
|
++ optional langFortran ../gfortran-driving.patch
|
||||||
|
# https://gcc.gnu.org/ml/gcc-patches/2018-02/msg00633.html
|
||||||
|
++ optional targetPlatform.isRiscV ./riscv-pthread-reentrant.patch;
|
||||||
|
|
||||||
javaEcj = fetchurl {
|
javaEcj = fetchurl {
|
||||||
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
|
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
Index: gcc/config/riscv/linux.h
|
||||||
|
===================================================================
|
||||||
|
--- a/gcc/config/riscv/linux.h (revision 257620)
|
||||||
|
+++ b/gcc/config/riscv/linux.h (revision 257621)
|
||||||
|
@@ -47,6 +47,8 @@
|
||||||
|
|
||||||
|
#define ICACHE_FLUSH_FUNC "__riscv_flush_icache"
|
||||||
|
|
||||||
|
+#define CPP_SPEC "%{pthread:-D_REENTRANT}"
|
||||||
|
+
|
||||||
|
#define LINK_SPEC "\
|
||||||
|
-melf" XLEN_SPEC "lriscv \
|
||||||
|
%{shared} \
|
@ -1,6 +1,6 @@
|
|||||||
{ fetchurl, stdenv, libtool, readline, gmp, pkgconfig, boehmgc, libunistring
|
{ fetchurl, stdenv, libtool, readline, gmp, pkgconfig, boehmgc, libunistring
|
||||||
, libffi, gawk, makeWrapper, fetchpatch, coverageAnalysis ? null, gnu ? null
|
, libffi, gawk, makeWrapper, fetchpatch, coverageAnalysis ? null, gnu ? null
|
||||||
, hostPlatform
|
, hostPlatform, buildPackages
|
||||||
}:
|
}:
|
||||||
|
|
||||||
# Do either a coverage analysis build or a standard build.
|
# Do either a coverage analysis build or a standard build.
|
||||||
@ -19,7 +19,9 @@
|
|||||||
outputs = [ "out" "dev" "info" ];
|
outputs = [ "out" "dev" "info" ];
|
||||||
setOutputFlags = false; # $dev gets into the library otherwise
|
setOutputFlags = false; # $dev gets into the library otherwise
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper gawk pkgconfig ];
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||||
|
nativeBuildInputs = [ makeWrapper gawk pkgconfig ] ++
|
||||||
|
stdenv.lib.optional stdenv.isCross buildPackages.buildPackages.guile_2_0;
|
||||||
buildInputs = [ readline libtool libunistring libffi ];
|
buildInputs = [ readline libtool libunistring libffi ];
|
||||||
propagatedBuildInputs = [ gmp boehmgc ]
|
propagatedBuildInputs = [ gmp boehmgc ]
|
||||||
|
|
||||||
@ -29,9 +31,6 @@
|
|||||||
# see below.
|
# see below.
|
||||||
++ [ libtool libunistring ];
|
++ [ libtool libunistring ];
|
||||||
|
|
||||||
# A native Guile 2.0 is needed to cross-build Guile.
|
|
||||||
selfNativeBuildInput = true;
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
patches = [ ./disable-gc-sensitive-tests.patch ./eai_system.patch ./clang.patch
|
patches = [ ./disable-gc-sensitive-tests.patch ./eai_system.patch ./clang.patch
|
||||||
@ -40,6 +39,7 @@
|
|||||||
url = "http://git.savannah.gnu.org/cgit/guile.git/patch/?id=2fbde7f02adb8c6585e9baf6e293ee49cd23d4c4";
|
url = "http://git.savannah.gnu.org/cgit/guile.git/patch/?id=2fbde7f02adb8c6585e9baf6e293ee49cd23d4c4";
|
||||||
sha256 = "0p6c1lmw1iniq03z7x5m65kg3lq543kgvdb4nrxsaxjqf3zhl77v";
|
sha256 = "0p6c1lmw1iniq03z7x5m65kg3lq543kgvdb4nrxsaxjqf3zhl77v";
|
||||||
})
|
})
|
||||||
|
./riscv.patch
|
||||||
] ++
|
] ++
|
||||||
(stdenv.lib.optional (coverageAnalysis != null) ./gcov-file-name.patch);
|
(stdenv.lib.optional (coverageAnalysis != null) ./gcov-file-name.patch);
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ fetchurl, stdenv, libtool, readline, gmp, pkgconfig, boehmgc, libunistring
|
{ fetchurl, stdenv, libtool, readline, gmp, pkgconfig, boehmgc, libunistring
|
||||||
, libffi, gawk, makeWrapper, fetchpatch, coverageAnalysis ? null, gnu ? null
|
, libffi, gawk, makeWrapper, fetchpatch, coverageAnalysis ? null, gnu ? null
|
||||||
, hostPlatform
|
, hostPlatform, buildPackages
|
||||||
}:
|
}:
|
||||||
|
|
||||||
# Do either a coverage analysis build or a standard build.
|
# Do either a coverage analysis build or a standard build.
|
||||||
@ -20,7 +20,9 @@
|
|||||||
outputs = [ "out" "dev" "info" ];
|
outputs = [ "out" "dev" "info" ];
|
||||||
setOutputFlags = false; # $dev gets into the library otherwise
|
setOutputFlags = false; # $dev gets into the library otherwise
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper gawk pkgconfig ];
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||||
|
nativeBuildInputs = [ makeWrapper gawk pkgconfig ] ++
|
||||||
|
stdenv.lib.optional stdenv.isCross buildPackages.buildPackages.guile;
|
||||||
buildInputs = [ readline libtool libunistring libffi ];
|
buildInputs = [ readline libtool libunistring libffi ];
|
||||||
|
|
||||||
propagatedBuildInputs = [ gmp boehmgc ]
|
propagatedBuildInputs = [ gmp boehmgc ]
|
||||||
@ -30,13 +32,11 @@
|
|||||||
# see below.
|
# see below.
|
||||||
++ [ libtool libunistring ];
|
++ [ libtool libunistring ];
|
||||||
|
|
||||||
# A native Guile 2.0 is needed to cross-build Guile.
|
|
||||||
selfNativeBuildInput = true;
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./eai_system.patch
|
./eai_system.patch
|
||||||
|
./riscv.patch
|
||||||
] ++
|
] ++
|
||||||
(stdenv.lib.optional (coverageAnalysis != null) ./gcov-file-name.patch);
|
(stdenv.lib.optional (coverageAnalysis != null) ./gcov-file-name.patch);
|
||||||
|
|
||||||
|
13
pkgs/development/interpreters/guile/riscv.patch
Normal file
13
pkgs/development/interpreters/guile/riscv.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/module/system/base/target.scm b/module/system/base/target.scm
|
||||||
|
index 95ab8d8c9..93616f4a3 100644
|
||||||
|
--- a/module/system/base/target.scm
|
||||||
|
+++ b/module/system/base/target.scm
|
||||||
|
@@ -86,6 +86,8 @@
|
||||||
|
(endianness big))
|
||||||
|
((string=? "aarch64" cpu)
|
||||||
|
(endianness little))
|
||||||
|
+ ((string-match "riscv[1-9][0-9]*" cpu)
|
||||||
|
+ (endianness little))
|
||||||
|
(else
|
||||||
|
(error "unknown CPU endianness" cpu)))))
|
||||||
|
|
@ -21,18 +21,18 @@ stdenv.mkDerivation rec {
|
|||||||
# The build enables -O2 by default for everything else.
|
# The build enables -O2 by default for everything else.
|
||||||
hardeningDisable = stdenv.lib.optional stdenv.cc.isClang "fortify";
|
hardeningDisable = stdenv.lib.optional stdenv.cc.isClang "fortify";
|
||||||
|
|
||||||
depsBuildBuild = stdenv.lib.optional stdenv.isCross buildPackages.stdenv.cc;
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||||
|
|
||||||
buildInputs = [ libgpgerror ]
|
buildInputs = [ libgpgerror ]
|
||||||
++ stdenv.lib.optional stdenv.isDarwin gettext
|
++ stdenv.lib.optional stdenv.isDarwin gettext
|
||||||
++ stdenv.lib.optional enableCapabilities libcap;
|
++ stdenv.lib.optional enableCapabilities libcap;
|
||||||
|
|
||||||
preConfigure = if stdenv.isCross then ''
|
preConfigure = stdenv.lib.optionalString stdenv.isCross ''
|
||||||
# This is intentional: gpg-error-config is a shell script that will work during the build
|
# This is intentional: gpg-error-config is a shell script that will work during the build
|
||||||
mkdir -p "$NIX_BUILD_TOP"/bin
|
mkdir -p "$NIX_BUILD_TOP"/bin
|
||||||
ln -s ${libgpgerror.dev}/bin/gpg-error-config "$NIX_BUILD_TOP/bin"
|
ln -s ${libgpgerror.dev}/bin/gpg-error-config "$NIX_BUILD_TOP/bin"
|
||||||
export PATH="$NIX_BUILD_TOP/bin:$PATH"
|
export PATH="$NIX_BUILD_TOP/bin:$PATH"
|
||||||
'' else null;
|
'';
|
||||||
|
|
||||||
# Make sure libraries are correct for .pc and .la files
|
# Make sure libraries are correct for .pc and .la files
|
||||||
# Also make sure includes are fixed for callers who don't use libgpgcrypt-config
|
# Also make sure includes are fixed for callers who don't use libgpgcrypt-config
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ fetchurl, stdenv, libiconv, libunistring, help2man, ronn }:
|
{ fetchurl, stdenv, libiconv, libunistring, help2man, ronn, buildPackages }:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
|
|
||||||
@ -15,8 +15,10 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
patches = optional stdenv.isDarwin ./fix-error-darwin.patch;
|
patches = optional stdenv.isDarwin ./fix-error-darwin.patch;
|
||||||
|
|
||||||
buildInputs = [ libunistring ronn ]
|
nativeBuildInputs = [ ronn ]
|
||||||
++ optionals stdenv.isDarwin [ libiconv help2man ];
|
++ optional stdenv.isDarwin help2man;
|
||||||
|
buildInputs = [ libunistring ] ++ optional stdenv.isDarwin libiconv;
|
||||||
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://www.gnu.org/software/libidn/#libidn2";
|
homepage = "https://www.gnu.org/software/libidn/#libidn2";
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
{ lib, python3Packages }:
|
{ lib, python3Packages, stdenv, targetPlatform, writeTextDir, m4 }: let
|
||||||
python3Packages.buildPythonApplication rec {
|
targetPrefix = lib.optionalString stdenv.isCross
|
||||||
|
(targetPlatform.config + "-");
|
||||||
|
in python3Packages.buildPythonApplication rec {
|
||||||
version = "0.44.0";
|
version = "0.44.0";
|
||||||
pname = "meson";
|
pname = "meson";
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
@ -33,6 +35,26 @@ python3Packages.buildPythonApplication rec {
|
|||||||
|
|
||||||
setupHook = ./setup-hook.sh;
|
setupHook = ./setup-hook.sh;
|
||||||
|
|
||||||
|
crossFile = writeTextDir "cross-file.conf" ''
|
||||||
|
[binaries]
|
||||||
|
c = '${targetPrefix}cc'
|
||||||
|
cpp = '${targetPrefix}c++'
|
||||||
|
ar = '${targetPrefix}ar'
|
||||||
|
strip = '${targetPrefix}strip'
|
||||||
|
pkgconfig = 'pkg-config'
|
||||||
|
|
||||||
|
[properties]
|
||||||
|
needs_exe_wrapper = true
|
||||||
|
|
||||||
|
[host_machine]
|
||||||
|
system = '${targetPlatform.parsed.kernel.name}'
|
||||||
|
cpu_family = '${targetPlatform.parsed.cpu.family}'
|
||||||
|
cpu = '${targetPlatform.parsed.cpu.name}'
|
||||||
|
endian = ${if targetPlatform.isLittleEndian then "'little'" else "'big'"}
|
||||||
|
'';
|
||||||
|
|
||||||
|
inherit (stdenv) cc isCross;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = http://mesonbuild.com;
|
homepage = http://mesonbuild.com;
|
||||||
description = "SCons-like build system that use python as a front-end language and Ninja as a building backend";
|
description = "SCons-like build system that use python as a front-end language and Ninja as a building backend";
|
||||||
|
@ -6,11 +6,15 @@ mesonConfigurePhase() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Build release by default.
|
# Build release by default.
|
||||||
mesonFlags="--buildtype=${mesonBuildType:-release} $mesonFlags"
|
if [ -n "@isCross@" ]; then
|
||||||
|
crossMesonFlags="--cross-file=@crossFile@/cross-file.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mesonFlags="${crossMesonFlags+$crossMesonFlags }--buildtype=${mesonBuildType:-release} $mesonFlags"
|
||||||
|
|
||||||
echo "meson flags: $mesonFlags ${mesonFlagsArray[@]}"
|
echo "meson flags: $mesonFlags ${mesonFlagsArray[@]}"
|
||||||
|
|
||||||
meson build $mesonFlags "${mesonFlagsArray[@]}"
|
CC=@cc@/bin/cc CXX=@cc@/bin/c++ meson build $mesonFlags "${mesonFlagsArray[@]}"
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
if ! [[ -v enableParallelBuilding ]]; then
|
if ! [[ -v enableParallelBuilding ]]; then
|
||||||
|
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ which pkgconfig perl ]
|
nativeBuildInputs = [ which pkgconfig perl ]
|
||||||
# autogen needs a build autogen when cross-compiling
|
# autogen needs a build autogen when cross-compiling
|
||||||
++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||||
buildPackages.autogen buildPackages.texinfo ];
|
buildPackages.buildPackages.autogen buildPackages.texinfo ];
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
guile libxml2
|
guile libxml2
|
||||||
];
|
];
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
, swig
|
, swig
|
||||||
, ncurses
|
, ncurses
|
||||||
, pam
|
, pam
|
||||||
|
, buildPackages
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -29,8 +30,8 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
prePatchCommon = ''
|
prePatchCommon = ''
|
||||||
substituteInPlace ./common/Make.rules --replace "/usr/bin/pod2man" "${perl}/bin/pod2man"
|
substituteInPlace ./common/Make.rules --replace "/usr/bin/pod2man" "${buildPackages.perl}/bin/pod2man"
|
||||||
substituteInPlace ./common/Make.rules --replace "/usr/bin/pod2html" "${perl}/bin/pod2html"
|
substituteInPlace ./common/Make.rules --replace "/usr/bin/pod2html" "${buildPackages.perl}/bin/pod2html"
|
||||||
substituteInPlace ./common/Make.rules --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h"
|
substituteInPlace ./common/Make.rules --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h"
|
||||||
substituteInPlace ./common/Make.rules --replace "/usr/share/man" "share/man"
|
substituteInPlace ./common/Make.rules --replace "/usr/share/man" "share/man"
|
||||||
'';
|
'';
|
||||||
@ -70,9 +71,10 @@ let
|
|||||||
swig
|
swig
|
||||||
ncurses
|
ncurses
|
||||||
which
|
which
|
||||||
|
perl
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = stdenv.lib.optionals (!stdenv.isCross) [
|
||||||
perl
|
perl
|
||||||
python
|
python
|
||||||
];
|
];
|
||||||
@ -87,11 +89,12 @@ let
|
|||||||
inherit patches;
|
inherit patches;
|
||||||
|
|
||||||
postPatch = "cd ./libraries/libapparmor";
|
postPatch = "cd ./libraries/libapparmor";
|
||||||
configureFlags = "--with-python --with-perl";
|
# https://gitlab.com/apparmor/apparmor/issues/1
|
||||||
|
configureFlags = stdenv.lib.optionalString (!stdenv.isCross) "--with-python --with-perl";
|
||||||
|
|
||||||
outputs = [ "out" "python" ];
|
outputs = if stdenv.isCross then [ "out" ] else [ "out" "python" ];
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = stdenv.lib.optionalString (!stdenv.isCross) ''
|
||||||
mkdir -p $python/lib
|
mkdir -p $python/lib
|
||||||
mv $out/lib/python* $python/lib/
|
mv $out/lib/python* $python/lib/
|
||||||
'';
|
'';
|
||||||
|
@ -9,12 +9,13 @@
|
|||||||
, patchelf
|
, patchelf
|
||||||
, getent
|
, getent
|
||||||
, hostPlatform
|
, hostPlatform
|
||||||
|
, buildPackages
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert stdenv.isLinux;
|
assert stdenv.isLinux;
|
||||||
|
|
||||||
let
|
let
|
||||||
pythonLxmlEnv = python3Packages.python.withPackages ( ps: with ps; [ python3Packages.lxml ]);
|
pythonLxmlEnv = buildPackages.python3Packages.python.withPackages ( ps: with ps; [ python3Packages.lxml ]);
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
@ -35,14 +36,16 @@ in
|
|||||||
[ pkgconfig intltool gperf libxslt gettext docbook_xsl docbook_xml_dtd_42 docbook_xml_dtd_45
|
[ pkgconfig intltool gperf libxslt gettext docbook_xsl docbook_xml_dtd_42 docbook_xml_dtd_45
|
||||||
ninja meson
|
ninja meson
|
||||||
coreutils # meson calls date, stat etc.
|
coreutils # meson calls date, stat etc.
|
||||||
pythonLxmlEnv glibcLocales
|
glibcLocales
|
||||||
patchelf getent
|
patchelf getent m4
|
||||||
];
|
];
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ linuxHeaders libcap kmod xz pam acl
|
[ linuxHeaders libcap kmod xz pam acl
|
||||||
/* cryptsetup */ libuuid m4 glib libgcrypt libgpgerror libidn2
|
/* cryptsetup */ libuuid glib libgcrypt libgpgerror libidn2
|
||||||
libmicrohttpd kexectools libseccomp libffi audit lz4 bzip2 libapparmor
|
libmicrohttpd kexectools libseccomp libffi audit lz4 bzip2 libapparmor
|
||||||
iptables gnu-efi
|
iptables gnu-efi
|
||||||
|
# This is actually native, but we already pull it from buildPackages
|
||||||
|
pythonLxmlEnv
|
||||||
];
|
];
|
||||||
|
|
||||||
#dontAddPrefix = true;
|
#dontAddPrefix = true;
|
||||||
@ -128,7 +131,7 @@ in
|
|||||||
|
|
||||||
for i in src/basic/generate-gperfs.py src/resolve/generate-dns_type-gperf.py src/test/generate-sym-test.py ; do
|
for i in src/basic/generate-gperfs.py src/resolve/generate-dns_type-gperf.py src/test/generate-sym-test.py ; do
|
||||||
substituteInPlace $i \
|
substituteInPlace $i \
|
||||||
--replace "#!/usr/bin/env python" "#!${python3Packages.python}/bin/python"
|
--replace "#!/usr/bin/env python" "#!${buildPackages.python3Packages.python}/bin/python"
|
||||||
done
|
done
|
||||||
|
|
||||||
substituteInPlace src/journal/catalog.c \
|
substituteInPlace src/journal/catalog.c \
|
||||||
|
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "1abbch762gv8rjr579q3qyyk6c80plklbv2mw4x0vg71dgsw9bgz";
|
sha256 = "1abbch762gv8rjr579q3qyyk6c80plklbv2mw4x0vg71dgsw9bgz";
|
||||||
};
|
};
|
||||||
|
|
||||||
configureFlags = "CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3";
|
configureFlags = "CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3" + stdenv.lib.optionalString stdenv.isCross " CXX=${stdenv.cc.targetPrefix}c++";
|
||||||
|
|
||||||
setupHook = ./lzip-setup-hook.sh;
|
setupHook = ./lzip-setup-hook.sh;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user