[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Alignment issues



I've recently submitted bug #576944 and could use some help to trace
it down better, and understand if it's really a bug.

It's a bug in g++ to generate relocation type R_ARM_ABS32 with an offset
such as 0x000a1336 which is not a multiple of 4.  All of the legitimate
targets for R_ARM_ABS32 have an offset which is 0 modulo 4.

It's a bug in ports/sysdeps/arm/dl-machine.h:429 processing of R_ARM_ABS32
to perform a 32-bit memory access using an address that is not aligned
to a multiple of 4.  Some of the hardware CPUs that are included
in the applicable architecture give the wrong result for this case,
therefore the software must not perform such an access.  Instead,
dl-machine.h should detect the misalignment, generate an error message,
then either ignore that particular R_ARM_ABS32 entirely, or "do the
right thing" using multiple memory accesses which are aligned.

--


Reply to: