aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-06-20 23:39:25 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-06-21 14:22:35 +0200
commit49d56b6969d2f47f8c92060204a73cc10caa2249 (patch)
treeb6b453f7f19c2a30a6127e2e47cae2a115c7d974
parent7ef3df201b51d6df694896d7382803b55d4f44da (diff)
downloadsparse-49d56b6969d2f47f8c92060204a73cc10caa2249.tar.gz
cgcc: teach cgcc about arm64
This is needed to use sparse on the git tree on an arm64 machine (where a bug in the __builtin_bswapXX() expansion was discovered). Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rwxr-xr-xcgcc5
1 files changed, 5 insertions, 0 deletions
diff --git a/cgcc b/cgcc
index fd9d482f..904695c8 100755
--- a/cgcc
+++ b/cgcc
@@ -289,6 +289,9 @@ sub add_specs {
&float_types (1, 1, 36, [24,8], [53,11], [113,15]) .
&define_size_t ("long unsigned int") .
' -D__SIZEOF_POINTER__=' . ($m64 ? '8' : '4'));
+ } elsif ($spec eq 'aarch64') {
+ return (' -D__aarch64__=1 -m64' .
+ &float_types (1, 1, 36, [24,8], [53,11], [113,15]));
} elsif ($spec eq 'host_os_specs') {
my $os = `uname -s`;
chomp $os;
@@ -308,6 +311,8 @@ sub add_specs {
return &add_specs ('s390x');
} elsif ($arch =~ /^(sparc64)$/i) {
return &add_specs ('sparc64');
+ } elsif ($arch =~ /^(aarch64)$/i) {
+ return &add_specs ('aarch64');
}
} else {
die "$0: invalid specs: $spec\n";