Re: Trying to build L4 on NixOS
Adam Lackorzynski <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi, good that you figured all out yourself. Just comments. On Sat Mar 25, 2017 at 00:12:31 +0100, Mateusz Czaplinski wrote: > Hm; tried adding the following line: > > hardeningDisable = [ "stackprotector" "pic" ]; > > per https://github.com/NixOS/nixpkgs/issues/18895 and > https://github.com/NixOS/nixpkgs/issues/18995. This now seems to get me > through the bootstrap.elf linking phase! But it fails soon afterwards on > bootstrap32.elf :-( with: > > ld: skipping incompatible > /nix/store/...-gcc-5.4.0/lib/gcc/x86_64-unknown-linux-gnu/5.4.0/libgcc.a > when searching for -lgcc > ld: cannot find -lgcc > > Can I skip building bootstrap32.elf somehow? Or should I not? For booting, you'll need a bit of 32bit code, thus the multilib parts are indeed required. > Do I even have to build l4, or do I only need fiasco for l4linux? (fiasco > seems to build OK with the initial hardeningDisable = [ "all" ]; I tried.) > Or none at all, just the sources? You need to build l4 for L4Linux as L4Linux also requires L4Re. Adam > On Fri, Mar 24, 2017 at 10:06 PM, Mateusz Czaplinski <[email protected]> > wrote: > > > I'm trying to build L4 on NixOS in a VM (long term goal: try to learn how > > to replace NixOS's kernel with L4Linux, then maybe Genode). I'm getting an > > error like below: > > > > undefined reference to `__stack_chk_fail' > > > > during linking of bootstrap.elf - in a GCC's error-barf just after: > > > > [bootstrap] ==> Linking bootstrap.elf > > > > I've put up the precise Nix expression/script I'm using to build it on > > github - at: > > https://github.com/akavel/l4.nix/blob/0108dfcf8d84780e1ba884c41ece0d > > 2dbf4ddd84/l4re.nix > > but what it generally boils down to is a sequence of commands like this: > > > > $ wget http://os.inf.tu-dresden.de/download/snapshots/l4re-core- > > 2016082114.tar.xz > > $ tar xf l4re-core-2016082114 <(201)%20608-2114>.tar.xz > > $ cd l4re-core-2016082114 <(201)%20608-2114> > > $ mkdir out > > $ cp src/l4/mk/defconfig/config.amd64 out/l4/.kconfig > > $ make -C src/l4 O=out/l4 olddefconfig > > $ make -C out/l4 > > > > I've tried various additional changes, based on some snippets found here > > and there on teh Internets, like: > > - adding V=0 to the last make (no idea what it does yet, just some cargo > > culting) > > - adding NIX_CFLAGS_COMPILE = "-fno-stack-protector"; to the Nix > > expression/script (also not really sure where it applies in the stack); > > but none of the above helped. > > > > Any idea what I could try doing to push it further? > > > > Thanks, > > /Mateusz.