This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: RFC: Adding non-PIC executable support to MIPS
On Mon, Jul 28, 2008 at 08:24:41PM +0100, Richard Sandiford wrote:
> OK. I'll take that as maintainer approval and commit it later.
Great, thank you.
> >> I think it'd be good to tighten the assert, as it would currently trigger
> >> for valid X >= -0x80000000 addresses (both in 32-bit and 64-bit code).
> >> I don't know of any system out there that allows dynamic executables
> >> in kernel space, but I've ceased to be surprised by such things ;)
> >
> > OK. Could you check that I got this right?
> >
> > /* The PLT sequence is not safe for N64 if .got.plt's address can
> > not be loaded in two instructions. */
> > BFD_ASSERT ((gotplt_value & ~(bfd_vma) 0x7fffffff) == 0
> > || ~(gotplt_value | 0x7fffffff) == 0);
>
> Looks right if we can rely on wider-than-necessary bfd_vmas being
> sign-extended, but I don't know off-hand if we can. (If we can, then:
>
> BFD_ASSERT (((gotplt_value + 0x80000000) >> 31) < 2);
>
> is a little shorter. Someone's probably going to tell me that it's
> also wrong.)
Yes, we can rely on sign extension. I think I'll stick with my
version, though... clever arithmetic makes my head ache.
> The situation you were in was unusual: you were making incompatible
> changes to the ABI under test. The tests are really there to make
> sure that we don't accidentally do that again in future. ;)
True enough. It sounds like we're set then? You can check in your
various prerequisite binutils and gcc patches, then I can post and
commit final versions of these, and get the glibc / gdb patches
merged. If any of the binutils patches still need review, let me
know.
No rush - I've got plenty of other things to keep me busy :-)
--
Daniel Jacobowitz
CodeSourcery