Le 14/05/2015 15:40, shraptor shraptor a écrit :
> I would be interested in a static Vdev.
>
> Didier could you please give some info
> how this was done especially any gotcha's
> you found?
Hi Shraptor.
I have been working for almost one year, partial time, on building
a sysrooted gcc-4.7 bundled with musl-1.1.5. This has been pretty
difficult for me, since I am not an expert in Gcc and I could not find
it ready-made because I wanted this gcc to understand all languages,
including Ada. With Ada, there is a bootstrapping problem because it can
be compiled only with the current version or the previous.
I started from a chroot containing Sabotage-Linux, which has no
Ada, in which I introduced Gnat from Debian Wheezy and I don't remember
exactly how I finally succeeded, last november :-) the fact is that I
have now a working sysrooted toolchain which can recompile itself and
can compile a lot of applications. Sabotage provides the necessary
patches for gcc to work with Musl - Big thanks to them - and I patched
Gnat myself. The whole process looks like a horrible bricolage, and it
was just that.
With this (kind of cross) toolchain, installed on my Debian Wheezy
laptop, I have succeeded to compile the whole package from Jude,
including the filesystem, which is not even an alpha release AFAIU, but
has some dependencies and was a good exercise. The main work was to
modify the Makefiles so that they can produce static archive libraries
and replacing one glibc non-standard macro with the standard one.
I am now working on producing a bootable USB flash disk with two
partitions, one containing the kernel and the Syslinux bootloader files
and one with the root filesystem containing Busybox-1.23.1, Vdevd and
its helpers, and even Bash, all statically linked against Musl. I tried
to boot it 15mn ago but my kernel is still missing some drivers to be
able to mount the usb key. I chose this configuration, rather than an
initramfs, to be able to make persistent changes to my root filesystem,
but it means that all the drivers needed to mount the root partition
must be compiled in the kernel instead of loadable modules.
I am very excited at seeing vdev in action and I don't think I will
do anything else before I see if it works. Then I promised to Jude to
send him the necessary patches. I think that, with the patched version
of vdev, you could compile it statically with any ready-made gcc-musl
toolchain (eg Sabotage). Could you wait a few days more?
Didier