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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.