This is the mail archive of the
mailing list for the glibc project.
On Wed, Aug 29, 2001 at 04:48:49PM -0700, Ulrich Drepper wrote:
> The system startup consists not only of the explicit dependencies of
> libgcjgc etc, all code running before the application code counts.
> Just imagine a LD_PRELOAD module which changes something which
> invalidates assumptions made by the GC when it ran.
Doesn't LD_PRELOAD init code run first?
Anyway, the GC library is used like malloc, and so _must_ be usable
from constructors. If you say it should defer collection until all
constructors are run, fine. The question then is: how should it know
when all constructors are finished? I don't know of any answer here.
> If what you want would be done it just means that we might just keep
> on adding more and more crap like this variable in ld.so etc just to
> make yet another runtime environment happy.
Eh? This variable is *exactly* the same as __libc_stack_end
which is already set in _dl_start_user. But as you well know,
ia64 has two stacks, and so needs two variables.
> And for this case it should be simple to fix: just let the GC return
> without doing anything until the application code starts. It might be
> that your patch does just that.
No, there is some fallback code for older libc that tries to
guess what the top of the register stack should be based on
the top of the program stack.