Stuff you might find useful

Thread Creation
IDL4 Notes

Getting up and going

I've got a build environment set up and running on my laptop. Its a HP Pavilion dv6000 running Crunchbang Linux (an Ubuntu-based distribution). The only problem I had was getting VMNet3 configured, but instructions to fix it are posted on the course web page.


I had to run a vmware command after editing the /etc/vmware/networks file in order to specify vmnet3 on my machine. There is no vmware-config.pl file in my VMplayer 3 install.

sudo vmware-modconfig --console --install-all

That recompiled a bunch of stuff and it seems to work now.


After I edited /etc/vmware/networking I executed /etc/init.d/vmware restart as root. However the connection between the test VM and the dev VM still did not work. I found that I had to manually create /dev/vmnet3, then run /usr/bin/vmware-networks --start, then reboot. After that everything worked. This was on an Ubuntu system, 2.6.31-17-generic-pae.

- Mark

A practical question. Part I
I removed the invocation of "IF_LOCATOR_Locate" and "IF_LOGGING_LogMessage" from the main.cc of testclient and put them in the "LogMessage" function in the logging.cc. In that way, I can just call LogMessage to do the logging anywhere in code. The compilation is fine. But when it comes to link the testclient, I got a link error as following:
../../lib/libsdi.a(logging.o): In function `L4_Ipc':
/home/user/devel/sdi/sdios/build/lib/sdi/../../../include/l4/ia32/syscalls.h:293: undefined reference to `__L4_Ipc'
/home/user/devel/sdi/sdios/build/lib/sdi/../../../include/l4/ia32/syscalls.h:293: undefined reference to `__L4_Ipc'
After I put the invocation of "IF_LOCATOR_Locate" back to the main.cc of testclient, there's no error any more. According to the makefile, the command is "ld -e_start -N -L../../lib -L/opt/gcc-3.4.6/lib/gcc/i686-pc-linux-gnu/3.4.6 -nostdlib -Ttext=00600000 -T ../../include/ia32/sdi.ld main.o ia32-crt0.o -ll4 -lio -lsdi -lgcc -o test". It seems to have linked all the libs we have now. Where is the __L4_Ipc after all? It would be great if anyone can shed a little light on it. Thanks a lot.

- Alex

A practical question. Part II
Going still further, we narrow down the problem to that we must at least keep the following code
while(L4_nilthread.raw == 0){}
in the main.cc of testclient. We cannot omit the "while", or change it to "if", otherwise there's link error.

Though it is pretty weird. There is a practical solution to this problem. Just modify the /devel/sdi/sdios/src/test/Makefile.in. Change
LIBS+= -ll4 -lsdi -lio
LIBS+= -lio -lsdi -ll4
then you can erase all the unnecessary code in the main.cc.

I haven't noticed before that the sequence of libraries count when using ld. Anyone has experience on this?

- Alex


Not sure how to use this one. Could anyone tell me where types like L4_Bool_t and L4_Size_t are first defined/declared? Not in l4/types.h as far as I know.


Created by jappavoo. Last Modification: Friday 19 of February, 2010 18:36:52 EST by hwxi.