Bug#234073: Crashes machine on startup on Alpha with Radeon 7500
Branden Robinson <branden@debian.org> writes:
> > 10 is R_ALPHA_SREL32, I guess I could come up with a simple patch
> > but I assume this is already fixed upstream, maybe you could check
> > that.
>
> It doesn't look good:
>
> [0] branden@redwald:~/packages/xfree86/cvs/HEAD/xc/programs/Xserver/hw/xfree86/loader % grep R_ALPHA_SREL32 *
> elf.h:#define R_ALPHA_SREL32 10 /* PC relative 32 bit */
> [0] branden@redwald:~/packages/xfree86/cvs/HEAD/xc/programs/Xserver/hw/xfree86/loader %
>
> That's it...
Hm. Here's a totally untested patch (sorry, I don't have much time
right now):
--- /cvs/xc/programs/Xserver/hw/xfree86/loader/elfloader.c 2004-02-21 19:14:05.000000000 +0100
+++ elfloader.c 2004-02-22 13:56:39.000000000 +0100
@@ -1596,6 +1596,20 @@
break;
}
+ case R_ALPHA_SREL32:
+ {
+ dest32 = (unsigned int *)(secp + rel->r_offset);
+ symval += rel->r_addend;
+ symval -= (unsigned long) dest32;
+ if ((long)symval >= 0x80000000
+ || (long)symval < -(long)0x80000000)
+ FatalError("R_ALPHA_SREL32 overflow for %s: %lx\n",
+ ElfGetSymbolName(elffile, ELF_R_SYM(rel->r_info)),
+ symval);
+ *dest32 = symval;
+ break;
+ }
+
#endif /* alpha */
#if defined(__mc68000__)
case R_68K_32:
> In the meantime, does xserver-xfree86-dbg work?
No, same effect; it seems the relocation errors don't really have
anything to do with it.
--
Falk
Reply to: