This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Problems with glibc startup code on the Hurd


Hi!

The current i386/elf startup code doesn't work for the Hurd.  The
problem is that on the Hurd `__libc_init_first' has to be called from
the initial stack frame.  Since the introduction of the
`__libc_start_main' function this no longer is the case.

I don't think it is possible to change the Hurd specific
`__libc_init_first' function since it does some non-trivial stack
manipulations.  So we need to change `sysdeps/i386/elf/start.S'.

One solution is to revert the changes made on 1998-03-08, but this is
probably not a good idea, since on all other architectures
`__libc_start_main' is used too.

An other solution is to introduce a new function, let's say
`__libc_setup_stack', that is called early from `_start'.  On the Hurd
this function would setup the stack (and most if not all Hurd-specific
initializations). For Linux(and other ports) it would do nothing.
`__libc_init_first' would then do the initialization of the library.

I can provide a patch for such a change, but since changing the
startup code has a high risk of introducing binary
incompatibilities. we should really think this over before applying it.

Mark




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]