problems running hello in fiasco

Alexander Warg alex.warg at
Mon Mar 31 15:00:43 CEST 2003


On Mon, 2003-03-31 at 01:02, Fabian Sturm wrote:

> It still would be interesting to see if the order of the 
> constructors is different than what is defined in static_init?
> Probably not.

The order should never differ from the definitions in static_init. And
only link-time configurable features should use STATIC_INITIALIZE... or
INIT_PRIORITY... all fixed constructors should either use the C++
language or startup.cpp for initialization.

> What I mainly missed was the point that not all classes
> were initialized because they were excluded with the configure
> options. Mainly the UART_INIT_PRIO and KDB_INIT_PRIO are 
> interchanged (if I got it right).

Not completely, if KDB is used the module that fires up the UART is
simply not linked to the final kernel, instead the KDB module is
compiled and linked to the kernel and has to fire up the UART on it's

So, you simply disable some features by not linking them and thus not
starting their constructors. This does not change something with the
order of construction.

I think there should be something like the 'Documentation' directory in
Linux, where things like static_init, etc. are explained.

> So your guess was definitv right! It was the non existing serial
> port which gets configured by the built in kdb.
> In kdb.c is a line with:
>  if(strstr(cmdline, " -nokdb") || strstr(cmdline, " -noserial")

This is a BUG, we never explored, because we only have machines with
serial ports and use a serial console for debugging most of the time.
The reason for -noserial was to disable serial ports to not have the
slowdown introduced by the serial traffic.

Oh and last but not least, it maybe I have introduced the BUG during the
rewrite of the serial driver! Sorry!

> if kdb can work without a serial port.

It can't it is for connecting GDB via a serial stub, but our stub is a
bit outdated so an old GDB is needed.

> It hangs somewhere in here, due to non existing port.
> So if I disable kdb everything works fine and I end up in the jdb
> prompt, and if continued with g I get the hello world output!

We should add serial port probing I think.

I hope you don't get confused or crazy while you're using Fiasco. 

Thanks a lot for your report.

Alexander Warg <alex.warg at>

More information about the l4-hackers mailing list