Skip to content

Commit a1ea7f7

Browse files
pj4533parkera
authored andcommitted
Adding support for ARMv6 on linux (#352)
1 parent d4aef4f commit a1ea7f7

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

lib/target.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
class ArchType:
1414
UnknownArch = 0
15-
arm = 1
15+
armv7 = 1
1616
armeb = 2
1717
aarch64 = 3
1818
aarch64_be = 4
@@ -51,13 +51,16 @@ class ArchType:
5151
spir64 = 37
5252
kalimba = 38
5353
shave = 39
54+
armv6 = 40
5455
# Do not assume that these are 1:1 mapping. This should follow
5556
# canonical naming conventions for arm, etc. architectures.
5657
# See apple/swift PR #608
5758
@staticmethod
5859
def to_string(value):
59-
if value == ArchType.arm:
60+
if value == ArchType.armv7:
6061
return "armv7"
62+
if value == ArchType.armv6:
63+
return "armv6"
6164
if value == ArchType.armeb:
6265
return "armeb"
6366
if value == ArchType.aarch64:
@@ -138,12 +141,18 @@ def to_string(value):
138141
# Not 1:1, See to_string
139142
@staticmethod
140143
def from_string(string):
141-
# Match big endian arm first
142144
if string == "armeb":
143145
return ArchType.armeb
144-
# Catch-all for little endian arm
145-
if "arm" in string:
146-
return ArchType.arm
146+
if string == "arm":
147+
return ArchType.armv7
148+
if string == "armv7":
149+
return ArchType.armv7
150+
if string == "armv7l":
151+
return ArchType.armv7
152+
if string == "armv6":
153+
return ArchType.armv6
154+
if string == "armv6l":
155+
return ArchType.armv6
147156
if string == "aarch64":
148157
return ArchType.aarch64
149158
if string == "aarch64_be":
@@ -343,7 +352,7 @@ def default():
343352
arch = ArchType.from_string(platform.machine())
344353
triple = ArchType.to_string(arch)
345354
if platform.system() == "Linux":
346-
if arch == ArchType.arm:
355+
if (arch == ArchType.armv6) or (arch == ArchType.armv7):
347356
triple += "-linux-gnueabihf"
348357
else:
349358
triple += "-linux-gnu"
@@ -365,7 +374,7 @@ def swift_triple(self):
365374
return None
366375
elif self.sdk == OSType.Linux:
367376
# FIXME: It would be nice to detect the host ABI here
368-
if self.arch == ArchType.arm:
377+
if (self.arch == ArchType.armv6) or (self.arch == ArchType.armv7):
369378
triple += "-unknown-linux-gnueabihf"
370379
else:
371380
triple += "-unknown-linux"

0 commit comments

Comments
 (0)