[PATCH V2] ldso: fix fdpic support broken from prelink patch
Filippo ARCIDIACONO
filippo.arcidiacono at st.com
Mon Mar 26 14:36:54 UTC 2012
> -----Original Message-----
> From: Mike Frysinger [mailto:vapier at gentoo.org]
> Sent: Sunday, March 25, 2012 8:15 AM
> To: uclibc at uclibc.org
> Cc: Filippo ARCIDIACONO
> Subject: Re: [PATCH V2] ldso: fix fdpic support broken from prelink
> patch
>
> On Wednesday 07 March 2012 04:07:01 Filippo ARCIDIACONO wrote:
> > The fdpic support has been broken since the prelink support was
> added,
> > because it didn't take into account DL_LOADADDR_TYPE could be a
> > different type of ElfW(Addr).
>
> it compiles now, so that's an improvement :). i don't have hardware
> setup atm to test the runtime, but i wouldn't be surprised if there
> were other issues unrelated that'd break things.
>
> > --- a/ldso/ldso/c6x/dl-sysdep.h
> > +++ b/ldso/ldso/c6x/dl-sysdep.h
> >
> > +/* Define this to set the library offset. */ #ifndef
> > +DL_SET_LIB_OFFSET # define DL_SET_LIB_OFFSET(offset)
> > +(_dl_library_offset = 0) #endif
> > +
> > +/* Define this to get the real object's load address. */ #ifndef
> > +DL_GET_LOADADDR_MAPADDR # define DL_GET_LOADADDR_MAPADDR(loadaddr,
> > +mapaddr) (loadaddr) #endif
>
> using ifndef in these arch files doesn't make much sense. just drop
> those checks.
You are right. I missed.
>
> also, seems like _dl_library_offset is always set to 0.
_dl_library_offset is 0 for fdpic and c6x archs only.
> would make more sense i think to have the macro read:
> #define DL_SET_LIB_OFFSET(offset)
>
> and then add a new macro for declaring the _dl_library_offset variable
> which the common code would use to setup a static, and these arches
> would define to 0
IIUC, I should add something like:
#define DEF_LIBRARY_OFFSET() static unsigned long _dl_library_offset
For common code, while for c6x and fdpic:
#define DEF_LIBRARY_OFFSET() unsigned long _dl_library_offset = 0
Is this what you mean?
Thanks for review,
Filippo
More information about the uClibc
mailing list