[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

TLS/TSD support and startup/initialization working

From: Marcus Brinkmann
Subject: TLS/TSD support and startup/initialization working
Date: Thu, 27 Jan 2005 17:54:11 +0100
User-agent: Wanderlust/2.10.1 (Watching The Wheels) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/21.3 (i386-pc-linux-gnu) MULE/5.0 (SAKAKI)


with the changes of today, the glibc patch set in CVS supports startup
and initialization up to the invocation of the main() function - this
means important things like malloc() work.

Of course, there is a lot of cheating going on, and the implementation
is full of gaps and stubs.  But this step forward means that we can do
easy testing by just writing a program and linking it to glibc, and
run it as the "bootstrap filesystem" server.

TLS/TSD seems to work without any problems - important things like the
default locale are set up correctly, and thus strerror() works.
__thread variables are supported, glibc uses them itself.

There were a couple of fixes and extensions needed in wortel and the
startup code, but it wasn't so much.  My understanding of the glibc
code has reached an all-time high (not that this required much ;)

If you want to reproduce all this, you need to configure, make and
install the software as usual.  It is important that your compiler can
find the installed header files afterwards!  Only then you can
reconfigure your source with "--enable-libc" and try to build the C
library according to the README.

Static linking against this new libc should be possible after (manual)
installation, I guess, but I always use a very hackisch and long gcc
command line to cheat myself into a binary that I can then use as
"filesystem server" (the last one in the list) in the GRUB
configuration.  See the README for details.

I think that this basically concludes the first step of the initial
bootstrap phase.  By being able to link a program against glibc, and
by booting all the way up to that programs main() function, we can now
easily explore and develop the system in any way we want.

The dinner is prepared! :)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]