This is the mail archive of the libc-alpha@sourceware.cygnus.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]

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>

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