diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2017-09-27 23:11:37 +0200 |
|---|---|---|
| committer | Christopher Li <sparse@chrisli.org> | 2017-10-03 00:44:48 -0400 |
| commit | cc58fdcfb8569d56e14e97959d42d9305a2b55dd (patch) | |
| tree | 573dfe6d3aa45270d9f47f39823cf370e28dbe44 /cgcc | |
| parent | 4b7b6b63f6069a387971276cf84db6cfafb2b4fe (diff) | |
| download | sparse-dev-cc58fdcfb8569d56e14e97959d42d9305a2b55dd.tar.gz | |
fix cgcc ELF version for ppc64/pcc64le
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@gmail.com>
Tested-by: Uwe Kleine-König <uwe@kleine-koenig.org>
Signed-off-by: Christopher Li <sparse@chrisli.org>
Diffstat (limited to 'cgcc')
| -rwxr-xr-x | cgcc | 5 |
1 files changed, 2 insertions, 3 deletions
@@ -289,7 +289,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') { @@ -327,9 +326,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) { |
