Takashi Yoshii wrote: > Hi, > > 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'm wondering anyway it the could be a testcase to show a potential problem (if this is wrong). Carmelo > I did some cleanups as well as invert that conditions. > Actually, "push r12" is not needed in non-shared case. But, I've left it > untouched, because I don't want to modify the function epilogue(crtn.S). > If fixed, we will have 4 bytes smaller code. Anyone want it ? > > Regards, > /yoshii > --- > libc/sysdeps/linux/sh/crti.S: > Fix(invert) __HAVE_SHARED__ condition. > Reorder/eliminate instructions. > > Signed-off-by: Takashi YOSHII <[EMAIL PROTECTED]> > --- > diff --git a/libc/sysdeps/linux/sh/crti.S b/libc/sysdeps/linux/sh/crti.S > index a74f96e..a092b78 100644 > --- a/libc/sysdeps/linux/sh/crti.S > +++ b/libc/sysdeps/linux/sh/crti.S > @@ -12,20 +12,17 @@ _init: > mov.l r12,@-r15 > mov.l r14,@-r15 > sts.l pr,@-r15 > -#ifndef __HAVE_SHARED__ > + mov r15,r14 > +#ifdef __HAVE_SHARED__ > mova .L6,r0 > mov.l .L6,r12 > - add r0,r12 > -#endif > - mov r15,r14 > bra 1f > - nop > + add r0,r12 > .align 2 > -#ifndef __HAVE_SHARED__ > .L6: > .long _GLOBAL_OFFSET_TABLE_ > -#endif > 1: > +#endif > > .section .fini > .hidden _fini > @@ -37,19 +34,15 @@ _fini: > mov.l r14,@-r15 > sts.l pr,@-r15 > mov r15,r14 > -#ifndef __HAVE_SHARED__ > +#ifdef __HAVE_SHARED__ > mov.l .L11,r12 > mova .L11,r0 > - add r0,r12 > -#endif > - > bra 1f > - nop > + add r0,r12 > .align 2 > -#ifndef __HAVE_SHARED__ > .L11: > .long _GLOBAL_OFFSET_TABLE_ > -#endif > 1: > +#endif > > .ident "GCC: (GNU) 3.3.2" > > _______________________________________________ > uClibc mailing list > uClibc@uclibc.org > http://busybox.net/cgi-bin/mailman/listinfo/uclibc > _______________________________________________ uClibc mailing list uClibc@uclibc.org http://busybox.net/cgi-bin/mailman/listinfo/uclibc