As far as I can see, the macro '_STRING_ARCH_unaligned' may be defined by glibc, not gcc. So, there is no reason for cgcc to define it. Worse, cgcc defines it to '1' while on some platorms (at least the few ppc64 I've access to) the installed glibc defines it to '0'. So, do not let cgcc define this macro. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- cgcc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cgcc b/cgcc index 8e8c510e3..c97085e74 100755 --- a/cgcc +++ b/cgcc @@ -276,11 +276,11 @@ sub add_specs { return (' --arch=x86_64' . &float_types (1, 1, 33, [24,8], [53,11], [113,15])); } elsif ($spec eq 'ppc') { - return (' -D_BIG_ENDIAN -D_STRING_ARCH_unaligned=1' . + return (' -D_BIG_ENDIAN' . ' --arch=ppc' . &float_types (1, 1, 21, [24,8], [53,11], [113,15])); } elsif ($spec eq 'ppc64') { - return (' -D_STRING_ARCH_unaligned=1 ' . + return ( ' --arch=ppc64' . &float_types (1, 1, 21, [24,8], [53,11], [113,15])); } elsif ($spec eq 'ppc64+be') { -- 2.24.0