Commit e0306fe0 "cgcc: teach cgcc about ppc64[le]" add support for PPC64 to cgcc by adding the needed options like '-m64' & '-m{little,big}-endian' and defines likes '-D__PPC64__=1'. In this commit the defined '-D_CALL_ELF=2' was also added but the value of 2 is for ELF v2 ABI, normally used for ppc64le, while the older ELF ABI, normally used for plain ppc64 should use '-D_CALL_ELF=2'. Fix this by using the value of 1 or 2 for '_CALL_ELF' depending if the architecture is ppc64 or ppc64le. Fixes: e0306fe0b725af6e2e7ff59d7f0d99c96315791a Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- cgcc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cgcc b/cgcc index a8d7b4f21..909cd2477 100755 --- a/cgcc +++ b/cgcc @@ -286,7 +286,6 @@ sub add_specs { } elsif ($spec eq 'ppc64') { return (' -D__powerpc__=1 -D__PPC__=1 -D_STRING_ARCH_unaligned=1' . ' -D__powerpc64__=1 -D__PPC64__=1' . - ' -D_CALL_ELF=2' . ' -m64' . &float_types (1, 1, 21, [24,8], [53,11], [113,15])); } elsif ($spec eq 's390x') { @@ -317,9 +316,9 @@ sub add_specs { } elsif ($arch =~ /^(ppc)$/i) { return &add_specs ('ppc'); } elsif ($arch =~ /^(ppc64)$/i) { - return &add_specs ('ppc64') . ' -mbig-endian'; + return &add_specs ('ppc64') . ' -mbig-endian -D_CALL_ELF=1'; } elsif ($arch =~ /^(ppc64le)$/i) { - return &add_specs ('ppc64') . ' -mlittle-endian'; + return &add_specs ('ppc64') . ' -mlittle-endian -D_CALL_ELF=2'; } elsif ($arch =~ /^(s390x)$/i) { return &add_specs ('s390x'); } elsif ($arch =~ /^(sparc64)$/i) { -- 2.14.0 -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html