Problem with hybrid L4Linux task

Mathias Krause mkrause at Informatik.TU-Cottbus.DE
Mon Sep 19 17:45:22 CEST 2005

Hello Hackers,

I've got a problem with a hybrid Linux Task. I want to create a little
tool to tranfser data between two L4Linuxes easily. A tool similar to
the famous netcat but using IPC instead of UDP/TCP. So far so good.
Server is listen for client and client is sending data to the server
(using long IPC transfering data as dwords). The problem is that the 
data doesn't arrive at the server task. There only an empty IPC message 
gets received (no IPC error).

After I've played around a while with debug messages I got strange
results. Using debug messages (simple printf()) inbetween and the 
transfer succedes!

Digging a little deeper got me to the point that it must be a problem
with the compiler. Using 'gcc -O0' generates working code too - 'gcc -O2'
doesn't. Trying another compiler (gcc version 4.0.1 (Debian 4.0.1-2))
with -O2 got me also working code.

So my question is if really my gcc (version 3.3.5 (Debian 1:3.3.5-13)) 
is broken or the includes under l4/l4sys/.../ipc.h. Maybe the inline 
assembly isn't that clean? But just a guess. My GNU assembly knowlegde 
isn't that good.


PS: I'm runing Debian sarge over here.

More information about the l4-hackers mailing list