[PATCH] sh: fix __HAVE_SHARED__ condition in crti.S.

Carmelo AMOROSO carmelo.amoroso at st.com
Thu Aug 28 05:58:15 UTC 2008


Paul Mundt wrote:
> On Tue, Aug 26, 2008 at 03:53:18PM +0200, Carmelo AMOROSO wrote:
>> Takashi Yoshii wrote:
>>> For SH, init/fini function prologue is defined in 
>>> libc/sysdeps/linux/sh/crti.S
>>> as follows.
>>>
>>> | (frame entry)
>>> |#ifndef __HAVE_SHARED__
>>> | (GOT pointer initialization)
>>> |#endif
>>>
>>> I think this should be "ifdef", but "ifndef".
>>> Or, are there any reason that GOT should be used (only)in NON-shared case ?
>>>
>> Well, this change has been committed by lethal at
>> http://www.uclibc.org/cgi-bin/viewcvs.cgi/trunk/uClibc/libc/sysdeps/linux/sh/crti.S?rev=16426&view=diff&r1=16426&r2=16425&p1=trunk/uClibc/libc/sysdeps/linux/sh/crti.S&p2=/trunk/uClibc/libc/sysdeps/linux/sh/crti.S
>>
>> so, unless there something I'm not understanding too, I suppose it was a 
>> typo by Paul (aka lethal).
>> Paul, my you give some lights on this change ?
>>
> I had to think about this briefly. It was part of the SH-2 work done by
> Mark Shinwell (added to Cc). The disabling of GOT related code in the
> non-shared case was intentional, but I don't immediately recall what the
> rationale was.
> 
yes, but as Yoshii spotted, the code now seems doing just the opposite.

> Original thread here:
> 
> 	http://www.uclibc.org/lists/uclibc/2006-October/016617.html
> 
> I expect that it's related to the ABI, in that we also don't have the GOT
> references in the FDPIC case, so it should likely be conditionalized for
> the targets that actually emit _GLOBAL_OFFSET_TABLE_, rather than
> depending on __HAVE_SHARED__. While I hit this on FDPIC, I would wager
> that Mark hit this on shared FLAT (which we don't have support in-tree
> for anyways) on his internal libc.
> 




More information about the uClibc mailing list