From 00913b013f95fa1abb4a858eea388c0a9268d002 Mon Sep 17 00:00:00 2001 From: Stroe Andrei Catalin Date: Tue, 3 Jan 2023 22:15:03 +0200 Subject: [PATCH] [beken-72xx] Fix compilation on ARM systems (#58) * Fix toolchain for BK7231 on ARM cpus * Fix format * PR comments * PR Comments, part 2 --- platform.json | 18 +++++++++++++++--- platform.py | 11 +++++++++-- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/platform.json b/platform.json index 55e1053..e4cccac 100644 --- a/platform.json +++ b/platform.json @@ -46,7 +46,11 @@ "manifest": { "description": "SDK for Ameba1" }, - "toolchain": "gccarmnoneeabi@~1.50201.0", + "toolchains": { + "x86_64": "gccarmnoneeabi@~1.50201.0", + "arm": "gccarmnoneeabi@~1.50401.211104", + "arm64": "gccarmnoneeabi@~1.50401.210715" + }, "libraries": { "lwip": [ "v2.1.3-amb1" @@ -60,7 +64,11 @@ "manifest": { "description": "SDK for AmebaZ2" }, - "toolchain": "gccarmnoneeabi@~1.100301.0" + "toolchains": { + "x86_64": "gccarmnoneeabi@~1.100301.0", + "arm": "gccarmnoneeabi@~1.100301.0", + "arm64": "gccarmnoneeabi@~1.100301.0" + } }, "framework-beken-bdk": { "type": "framework", @@ -69,7 +77,11 @@ "manifest": { "description": "Beken Development Kit for FreeRTOS" }, - "toolchain": "gccarmnoneeabi@~1.40804.0", + "toolchains": { + "x86_64":"gccarmnoneeabi@~1.40804.0", + "arm": "gccarmnoneeabi@~1.40803.0", + "arm64": "gccarmnoneeabi@~1.40803.0" + }, "libraries": { "lwip": [ "v2.1.3-bdk" diff --git a/platform.py b/platform.py index 8e4f0cd..a7d8bb7 100644 --- a/platform.py +++ b/platform.py @@ -2,6 +2,7 @@ import importlib import json +import platform import sys from os import system from os.path import dirname, join @@ -170,8 +171,14 @@ class LibretuyaPlatform(PlatformBase): package_obj = {} # set specific compiler versions - if "toolchain" in package_obj: - (toolchain, version) = package_obj["toolchain"].split("@") + if "toolchains" in package_obj: + toolchains = package_obj["toolchains"] + if "arm" in platform.machine(): + (toolchain, version) = toolchains["arm"].split("@") + elif "aarch64" in platform.machine(): + (toolchain, version) = toolchains["arm64"].split("@") + else: + (toolchain, version) = toolchains["x86_64"].split("@") self.packages[f"toolchain-{toolchain}"]["version"] = version # mark framework SDK as required