software: use native toolchain for same host, target architectures

LiteX rightfully assumes that most often the target software must
be cross-compiled from an x86 host platform. However, LiteX can be
also built on a 'linux-riscv64' platform (e.g. Fedora's riscv64
port), where the software for riscv64 targets should be compiled
using the native toolchain.

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
This commit is contained in:
Gabriel L. Somlo 2019-08-23 08:56:02 -04:00
parent d36f1fb7d2
commit 6d844a038a
2 changed files with 10 additions and 0 deletions

View File

@ -15,6 +15,7 @@
import os
import json
from shutil import which
from sysconfig import get_platform
from migen import *
@ -58,8 +59,13 @@ def get_cpu_mak(cpu):
r = None
if not isinstance(triple, tuple):
triple = (triple,)
p = get_platform()
for i in range(len(triple)):
t = triple[i]
# use native toolchain if host and target platforms are the same
if t == 'riscv64-unknown-elf' and p == 'linux-riscv64':
r = '--native--'
break
if which(t+"-gcc"):
r = t
break

View File

@ -1,4 +1,8 @@
ifeq ($(TRIPLE),--native--)
TARGET_PREFIX=
else
TARGET_PREFIX=$(TRIPLE)-
endif
RM ?= rm -f
PYTHON ?= python3