This is the mail archive of the
libc-alpha@cygnus.com
mailing list for the glibc project.
Re: Damaged PPC_REL24 handling
- To: Daniel Jacobowitz <drow+@cs.cmu.edu>
- Subject: Re: Damaged PPC_REL24 handling
- From: "Jack Howarth" <howarth@bromo.med.uc.edu>
- Date: Fri, 13 Nov 1998 19:14:20 -0500
- Cc: geoffk@ozemail.com.au, libc-alpha@cygnus.com
- References: <19981113170701.A25128@drow.res.cmu.edu>
Geoff,
Dan forgot to mention that the program which routinely displays this
behavior under linuxppc is mozilla.
Jack
On Nov 13, 5:07pm, Daniel Jacobowitz wrote:
> Subject: Damaged PPC_REL24 handling
> From owner-libc-alpha@cygnus.com Fri Nov 13 18:44:54 1998
> Date: Fri, 13 Nov 1998 17:07:01 -0500
> From: Daniel Jacobowitz <drow+@cs.cmu.edu>
> To: Geoff Keating <geoffk@ozemail.com.au>
> Cc: libc-alpha@gnu.org
> Subject: Damaged PPC_REL24 handling
> Mail-Followup-To: Geoff Keating <geoffk@ozemail.com.au>, libc-alpha@gnu.org
> X-Mailer: Mutt 0.94.12i
> Sender: owner-libc-alpha@cygnus.com
> Precedence: bulk
>
> Something is wrong with the handling of R_PPC_REL24 relocations. This
> error keeps getting triggered:
>
> case R_PPC_REL24:
> {
> Elf32_Sword delta = finaladdr - (Elf32_Word) (char *) reloc_addr;
> if (delta << 6 >> 6 != delta)
> {
> _dl_signal_error(0, map->l_name,
> "R_PPC_REL24 relocation out of range");
> }
> *reloc_addr = *reloc_addr & 0xfc000003 | delta & 0x3fffffc;
> }
> break;
>
> What the problem is I'm not quite sure - it could be binutils, but I
> think the test is at fault. From what I can see this should be an
> Elf32_Word, or cast to one for the range check. This way, if the
> seventh MSB is set (within the valid range), sign extension breaks the
> test. Am I misunderstanding?
>
> Dan
>
>-- End of excerpt from Daniel Jacobowitz
--
------------------------------------------------------------------------------
Jack W. Howarth, Ph.D. 231 Bethesda Avenue
NMR Facility Director Cincinnati, Ohio 45267-0524
Dept. of Molecular Genetics phone: (513) 558-4420
Univ. of Cincinnati College of Medicine fax: (513) 558-8474