Comment 6 for bug 674146

Revision history for this message
James Hunt (jamesodhunt) wrote :

I may be heading down the wrong path, but essentially the summary so far is:

- building dpkg with gcc-4.5 with -O2 results in SIGSEGV behaviour
- building dpkg with gcc-4.5 with -O0 results in correct behaviour
- building dpkg with gcc-4.4 with -O2 results in correct behaviour
- building dpkg with gcc-4.4 with -O0 results in correct behaviour

It may still be an application bug: Scott mentioned to me earlier that
there have been changes in gcc/libc? for ARM which affect the way in which
memcpy is implemented (farming the heavy lifting to optimized machine
instructions). These can uncover application bugs where memcpy is
technically being misused since (src+dst overlap so dev should have used
memmove). I'm planning to follow this up using an interposed memcpy with
an assert to check for overlap.