[RTEMS Project] #3767: Should all PPC BSPs build with -mstrict-align?

RTEMS trac trac at rtems.org
Wed Jul 17 17:28:32 UTC 2019

#3767: Should all PPC BSPs build with -mstrict-align?
  Reporter:  Michael Davidsaver  |      Owner:  (none)
      Type:  defect              |     Status:  new
  Priority:  normal              |  Milestone:
 Component:  arch/powerpc        |    Version:
  Severity:  normal              |   Keywords:
Blocked By:                      |   Blocking:
 As requested by Gedare Bloom.


 Based on the description in the GCC documentation, I would expect
 this to be needed unless the target handles alignment exceptions
 to fixup unaligned access (which RTEMS doesn't).


 It looks like some, but not all, RTEMS BSPs provide this flag.
 With relevant exceptions being mvme5500 and beatnik.


 We're seeing a fault from a memcpy() when a copy of a double into an
 unaligned byte buffer is optimized to the builtin.

 > char *buf = ...;
 > double value = ...;
 > memcpy(buf, &value, sizeof(value));

 In the absence of -mstrict-align this memcpy() is sometimes ("-mcpu=7400
 optimized to a single "stfd" which faults because 'buf' is not 8 byte

 I feel like there is a bug here.  My question is whether this is the
 builtin making an overzealous assumption about destination alignment,
 or our usage of memcpy() being incorrect somehow.  Should this be reported
 as a GCC bug as well?

Ticket URL: <http://devel.rtems.org/ticket/3767>
RTEMS Project <http://www.rtems.org/>
RTEMS Project

More information about the bugs mailing list