Update Nixpkgs to use the updateAutotoolsGnuConfigScript hook everywhere for Genode target platforms. Tweak Coreutils and Bash to compile, make some tests.nix
parent
32d65d2f41
commit
55c093e0c5
@ -0,0 +1,40 @@
|
||||
{ stdenv, fetchurl }:
|
||||
|
||||
let
|
||||
rev = "e78c96e5288993aaea3ec44e5c6ee755c668da79";
|
||||
|
||||
# Don't use fetchgit as this is needed during Aarch64 bootstrapping
|
||||
configGuess = fetchurl {
|
||||
url =
|
||||
"https://git.savannah.gnu.org/cgit/config.git/plain/config.guess?id=${rev}";
|
||||
sha256 = "sha256-TSLpYIDGSp1flqCBi2Sgg9IWDV5bcO+Hn2Menv3R6KU=";
|
||||
};
|
||||
configSub = fetchurl {
|
||||
url =
|
||||
"https://git.savannah.gnu.org/cgit/config.git/plain/config.sub?id=${rev}";
|
||||
sha256 = "sha256-DkCGDN/DE3phQ1GO/Ua5ZPPtp0Ya93PnW3yfSK8EV9s=";
|
||||
};
|
||||
in stdenv.mkDerivation {
|
||||
pname = "gnu-config";
|
||||
version = "2020-05-04";
|
||||
|
||||
buildCommand = ''
|
||||
mkdir -p $out
|
||||
cp ${configGuess} $out/config.guess
|
||||
cp ${configSub} $out/config.sub
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Attempt to guess a canonical system name";
|
||||
homepage = "https://savannah.gnu.org/projects/config";
|
||||
license = licenses.gpl3;
|
||||
# In addition to GPLv3:
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that
|
||||
# program.
|
||||
maintainers = [ maintainers.dezgeg ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
commit f3a7fb548c8600a6e290d306b933725ebc546cd0
|
||||
Author: Emery Hemingway <ehmry@posteo.net>
|
||||
Date: Wed May 6 04:38:35 2020 +0530
|
||||
|
||||
libc: add siginterrupt dummy
|
||||
|
||||
diff --git a/repos/libports/src/lib/libc/signal.cc b/repos/libports/src/lib/libc/signal.cc
|
||||
index dc9af2d443..784257c48e 100644
|
||||
--- a/repos/libports/src/lib/libc/signal.cc
|
||||
+++ b/repos/libports/src/lib/libc/signal.cc
|
||||
@@ -131,6 +131,9 @@ extern "C" int sigaction(int signum, const struct sigaction *act, struct sigacti
|
||||
}
|
||||
|
||||
|
||||
+extern "C" int siginterrupt(int sig, int flag) { return 0; };
|
||||
+
|
||||
+
|
||||
extern "C" int _sigaction(int, const struct sigaction *, struct sigaction *) __attribute__((weak, alias("sigaction")));
|
||||
extern "C" int __sys_sigaction(int, const struct sigaction *, struct sigaction *) __attribute__((weak, alias("sigaction")));
|
||||
extern "C" int __libc_sigaction(int, const struct sigaction *, struct sigaction *) __attribute__((weak, alias("sigaction")));
|
||||
|
||||
commit 65244c99c250767922b9afca9663ddcb7a7753f8
|
||||
Author: Emery Hemingway <ehmry@posteo.net>
|
||||
Date: Wed May 6 04:59:56 2020 +0530
|
||||
|
||||
libc: add upstream mbsinit
|
||||
|
||||
diff --git a/repos/libports/lib/mk/libc-locale.mk b/repos/libports/lib/mk/libc-locale.mk
|
||||
index 8e75e59589..2bb98b1456 100644
|
||||
--- a/repos/libports/lib/mk/libc-locale.mk
|
||||
+++ b/repos/libports/lib/mk/libc-locale.mk
|
||||
@@ -6,7 +6,7 @@ CC_OPT += -D_Thread_local=""
|
||||
FILTER_OUT = \
|
||||
c16rtomb.c c32rtomb_iconv.c mbrtoc16_iconv.c mbrtoc32_iconv.c \
|
||||
setlocale.c xlocale.c setrunelocale.c \
|
||||
- ascii.c big5.c euc.co gb18030.c gb2312.c gbk.c mbsinit.c mskanji.c utf8.c \
|
||||
+ ascii.c big5.c euc.co gb18030.c gb2312.c gbk.c mskanji.c utf8.c \
|
||||
|
||||
SRC_C = $(filter-out $(FILTER_OUT),$(notdir $(wildcard $(LIBC_LOCALE_DIR)/*.c)))
|
||||
|
@ -0,0 +1,99 @@
|
||||
-- SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
||||
|
||||
let Genode = Test.Genode
|
||||
|
||||
let Prelude = Genode.Prelude
|
||||
|
||||
let XML = Prelude.XML
|
||||
|
||||
let Child = Genode.Init.Child
|
||||
|
||||
let toChild =
|
||||
λ(binary : Text)
|
||||
→ λ(args : List Text)
|
||||
→ { mapKey = binary
|
||||
, mapValue =
|
||||
Child.flat
|
||||
Child.Attributes::{
|
||||
, binary = binary
|
||||
, exitPropagate = True
|
||||
, resources = Genode.Init.Resources::{
|
||||
, caps = 256
|
||||
, ram = Genode.units.MiB 4
|
||||
}
|
||||
, config = Genode.Init.Config::{
|
||||
, content =
|
||||
[ Prelude.XML.text
|
||||
''
|
||||
<libc stdin="/dev/null" stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/>
|
||||
<vfs>
|
||||
<dir name="dev"> <log/> <null/> <rtc/> </dir>
|
||||
<dir name="testdir">
|
||||
<inline name="testfile">
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
||||
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
|
||||
minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
|
||||
ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
|
||||
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
|
||||
sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
|
||||
mollit anim id est laborum.
|
||||
|
||||
Curabitur pretium tincidunt lacus. Nulla gravida orci a odio. Nullam
|
||||
varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus
|
||||
magna felis sollicitudin mauris. Integer in mauris eu nibh euismod
|
||||
gravida. Duis ac tellus et risus vulputate vehicula. Donec lobortis
|
||||
risus a elit. Etiam tempor. Ut ullamcorper, ligula eu tempor congue,
|
||||
eros est euismod turpis, id tincidunt sapien risus a quam. Maecenas
|
||||
fermentum consequat mi. Donec fermentum. Pellentesque malesuada nulla a
|
||||
mi. Duis sapien sem, aliquet nec, commodo eget, consequat quis, neque.
|
||||
Aliquam faucibus, elit ut dictum aliquet, felis nisl adipiscing sapien,
|
||||
sed malesuada diam lacus eget erat. Cras mollis scelerisque nunc. Nullam
|
||||
arcu. Aliquam consequat. Curabitur augue lorem, dapibus quis, laoreet
|
||||
et, pretium ac, nisi. Aenean magna nisl, mollis quis, molestie eu,
|
||||
feugiat in, orci. In hac habitasse platea dictumst.
|
||||
</inline>
|
||||
</dir>
|
||||
<dir name="tmp"><ram/></dir>
|
||||
</vfs>
|
||||
''
|
||||
]
|
||||
# Prelude.List.map
|
||||
Text
|
||||
XML.Type
|
||||
( λ(x : Text)
|
||||
→ XML.leaf
|
||||
{ name = "arg", attributes = toMap { value = x } }
|
||||
)
|
||||
([ binary ] # args)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let f = λ(binary : Text) → toChild binary ([] : List Text)
|
||||
|
||||
let g = toChild
|
||||
|
||||
in Test::{
|
||||
, children =
|
||||
[ g "hello" [ "--version" ]
|
||||
, g "b2sum" [ "testdir/testfile" ]
|
||||
, f "date"
|
||||
, f "dir"
|
||||
, f "env"
|
||||
, g "factor" [ "1337" ]
|
||||
, g "head" [ "-n", "4", "testdir/testfile" ]
|
||||
, f "id"
|
||||
, g "ln" [ "-sv", "testdir/testfile", "tmp/testfile" ]
|
||||
, g "ls" [ "-l", "-a", "-R" ]
|
||||
, f "mktemp"
|
||||
, f "mktemp"
|
||||
, f "mktemp"
|
||||
, f "pwd"
|
||||
, g "seq" [ "3" ]
|
||||
, g "tail" [ "-n", "4", "testdir/testfile" ]
|
||||
, g "wc" [ "testdir/testfile" ]
|
||||
, f "whoami"
|
||||
]
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
{ testEnv, pkgs, legacyPackages, depot, ... }:
|
||||
with pkgs;
|
||||
|
||||
testEnv.mkTest rec {
|
||||
name = "posix";
|
||||
testConfig = ./posix.dhall;
|
||||
testInputs = map pkgs.genodeSources.depot [ "vfs" "libc" "posix" ]
|
||||
++ (with legacyPackages; [ coreutils hello ]);
|
||||
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ ehmry ];
|
||||
}
|
Loading…
Reference in new issue