This is the mail archive of the
libc-alpha@sourceware.cygnus.com
mailing list for the glibc project.
Re: Problem in rtld.c with gcc-2.95pre
> Mailing-List: contact libc-alpha-help@sourceware.cygnus.com; run by ezmlm
> From: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
> Date: Sat, 12 Jun 1999 11:23:10 +0200
> Cc: libc-alpha@sourceware.cygnus.com
> Hmm, so is this a bug in gcc or in glibc? Or in both? Wouldn't it be
> better to just split out the end of _dl_start into a separate
> function/file? This should be a portable solution for all platforms.
>
> FYI, both splitting out the end of _dl_start and using asm volatile("" : : :
> "r30") solves the problem and the resulting gcc-2.95pre built library passes
> all tests.
It's certainly a gcc bug; if you say that "memory" was clobbered, gcc
shouldn't cache the contents of any memory. Otherwise, all sorts of
tricks become impossible, like switching address spaces mid-program.
Splitting _dl_start would be one way to make it work on ppc; I don't know
about on other platforms. Clobbering r30 is likely to stop working
in future.
--
Geoffrey Keating <geoffk@ozemail.com.au>