This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
On Thu, Jun 15, 2000 at 10:04:44AM -0700, Ulrich Drepper wrote:
> "H . J . Lu" <hjl@lucon.org> writes:
>
> > If those functions are referenced in the DSO in any way, they
> > will be exported from the main object. A reference can be as
> > simple as
> >
> > static void *(foo) () = funtion;
>
> You can prevent that. DSOs (unline the main program) can have
> undefined references.
>
From gcc/crtstuff.c:
/* This is a kludge. The i386 GNU/Linux dynamic linker needs ___brk_addr,
__environ and atexit (). We have to make sure they are in the .dynsym
section. We accomplish it by making a dummy call here. This
code is never reached. */
#if defined(__linux__) && defined(__PIC__) && defined(__i386__)
{
extern void *___brk_addr;
extern char **__environ;
___brk_addr = __environ;
atexit (0);
}
#endif
I put them in for libc 5 since it needs ___brk_addr and __environ
exported from the main object. I don't see why we cannot play the
same trick.
H.J.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |