This is the mail archive of the
libc-hacker@sourceware.cygnus.com
mailing list for the glibc project.
Re: ARM crt.. files
- To: Philip Blundell <philb@gnu.org>
- Subject: Re: ARM crt.. files
- From: Roland McGrath <roland@frob.com>
- Date: Thu, 23 Jul 1998 18:02:33 -0400
- Cc: libc-hacker@gnu.org
> It doesn't fix it completely at the moment. I think I can see a way to
> make it work but this would involve modifying both GCC and GAS to change
> the way global data is accessed (basically, some of the intelligence
> would need moving from the compiler to the assembler). Although I'm
> prepared to try this if necessary, I'm not too keen on doing so if a
> simpler solution would avoid the problem.
Can you explain the situation in more detail? That is, describe the ARM
ELF layout (like what objdump on initfini.o from my version looks like)
and why splitting it doesn't work?
> The simpler, though less elegant, solution that I can think of is to
> remove the test of `if (__gmon_start__ != NULL)' and always provide a weak
> definition of __gmon_start__ that does nothing. If the real gmon_start is
> present it will override the weak definition and if not we only have to pay
> the price of one function call at startup, which in any case is offset by
> the saving of not needing the comparison. Does that sound workable and
> acceptable to people?
That seems reasonable enough to me if it is necessary to fix the problem.
Independently, I am interested in the details of why my solution didn't work.