This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ppc64 vDSO in mainline


On Tue, Mar 29, 2005 at 09:45:40AM -0600, Steve Munroe wrote:
> It sounds like randomization (independent of VDSO) invalidates prelink!

Yes, randomization and prelink don't work together.
The current state of things at least is that PIEs are randomized and the
dynamic linker doesn't honor the preferred addresses of shared libraries
by default (can be overridden with LD_USE_LOAD_BIAS env var unless
setuid/setgid), while for normal binaries the default is to use the
preferred addresses if the libraries are prelinked and thus prelink
works for non-PIEs.

> Nothing I proposed implies that prelinking has to be disabled, only that 
> prelinking has to exclude VDSO (VDSO symbols).

It is not possible to selectively exclude some symbols from prelinking.
All prelink can do is to choose whether a relocation can be resolved
at prelink time or must be fixed up at runtime.
But stuff that is fixed up at runtime means just writing precomputed
values to precomputed locations, so adjusting for vDSO base changes
(or changes due to booting a different kernel) is not going to work there.

BTW, there is already a mechanism for processor optimized routines,
you just do another glibc build targetting that particular CPU
and install into /lib*/<platform>/ instead of /lib*/, on IA-32
e.g. /lib/i{386,486,586,686,686/sse2} etc.

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]