On Tue, Jan 25, 2011 at 10:37 PM, Adam Lackorzynski adam@os.inf.tu-dresden.de wrote:
On Tue Jan 25, 2011 at 05:38:59 +0100, Daniel F. Haaland wrote:
l4re and fiasco seem to be working just fine (tested by running the hello world in qemu), but trying to add l4linux on top of l4re has caused me a lot of grief and the following error message:
Getting required compilation flags failed. L4OBJ: /home/drxl/l4stuff/builddirs/L4Re-R27MP L4_REQUIRED_MODS: stdlibs log l4re_c-util libio shmc /home/drxl/l4stuff/src/l4linux/arch/l4/Makefile:301: *** Aborting.. Stop. make: *** [sub-make] Error 2 zsh: exit 2 make O=$MY_L4LINUX_OBJDIR
I've detailed how I got to that point in painstaking detail here: http://blog.fairchild.dk/notes/2011/01/25/getting-l4linux-up-and-running/
Times out.
Yeah, my Internet provider back in Denmark took a ~24 hour hiatus. That'll teach me not to have just one single copy of my notes in a remote location ;)
In short I've begged, bargained and even resorted to shell-foo like:
So I guess I wouldn't mind a little help at this point.
Did your L4Re build finish successfully?
Yes. I got l4linux to compile now. And I've updated my notes accordingly: http://blog.fairchild.dk/notes/2011/01/25/getting-l4linux-up-and-running/
Feel free to take anything from these. I believe that they are a little more user-friendly than the ones I've seen in your documentation. I've made them agnostic to directory layouts in order to make them pure copy'n'pase, which I hope will speed up the process of getting started for most and prevent some from introducing errors when replacing bits of text like O=/your/build/directory
Turns out it was the package dependency system, or lack thereof which was kicking me in the teeth. Repeatedly. So I made this to be run in the src/l4/pkg directory:
cd $MY_L4STUFF/src/l4/pkg alias l4_alias="`cat ../mk/aliases.d/* | sort -r | \ sed 's,([^ ]*)[ ]*:=[ ]*(.*),tr " " "\\n" | \ sed "s/^\1$/\2/"|,g' | tr -d "\n"` cat" find . -type f -name 'Control' -exec grep -Hn requires {} ; |\ sed -e 's,^.*:(.*)$,\1,g' | tr ' ' '\n' | \ l4_alias | sort -u | uniq \ | xargs -I ® svn update ®
I almost solved it with my first try, only I didn't know I should look in the Control files of the packages and not the Makefiles and more importantly I was completely oblivious to the existence of the package aliases definition files in ../mk/aliases.d/
The fact that "svn update packagename" fails silently didn't help me much either ;-) Luckily I had the opportunity to ask Björn and Michael about how the dependencies work yesterday in relation to lectures.
I guess there is three ways to solve this package dependency issue: 1) You just have to know these things to be allowed to work with l4 fiasco 2) Make sure to have every available package (making the prize of this microkernel a macro-runtime? :-p) 3) Run the above script (or perhaps the equivalent dependency checking perl script you mentioned today?)
I think that making l4re more easily accessible for beginners would benefit the project as a whole.
best regards Daniel