mirror of https://github.com/RT-Thread/rt-thread
[vdso] use the default arch/abi flags in risc-v vDSO building.
This commit is contained in:
parent
9a8dec35c1
commit
a5359b7223
|
@ -1,5 +1,6 @@
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import subprocess
|
||||||
|
|
||||||
arguments = sys.argv[2]
|
arguments = sys.argv[2]
|
||||||
vdso_usr = arguments
|
vdso_usr = arguments
|
||||||
|
@ -7,7 +8,32 @@ vdso_path = os.path.join(vdso_usr, '..', '..', '..')
|
||||||
|
|
||||||
EXEC_PATH = os.getenv('RTT_EXEC_PATH') or '/usr/bin'
|
EXEC_PATH = os.getenv('RTT_EXEC_PATH') or '/usr/bin'
|
||||||
PREFIX = os.getenv('RTT_CC_PREFIX') or 'riscv64-none-elf-'
|
PREFIX = os.getenv('RTT_CC_PREFIX') or 'riscv64-none-elf-'
|
||||||
DEVICE = os.getenv('RTT_DEVICE') or ' -march=rv64imafdc -mabi=lp64'
|
|
||||||
|
def get_riscv64_default_arch_abi(gcc_bin):
|
||||||
|
try:
|
||||||
|
result = subprocess.check_output(
|
||||||
|
[gcc_bin, '-Q', '--help=target'],
|
||||||
|
universal_newlines=True
|
||||||
|
)
|
||||||
|
arch = None
|
||||||
|
abi = None
|
||||||
|
for line in result.splitlines():
|
||||||
|
if '-march=' in line and '[default]' in line:
|
||||||
|
arch = line.strip().split()[0]
|
||||||
|
if '-mabi=' in line and '[default]' in line:
|
||||||
|
abi = line.strip().split()[0]
|
||||||
|
return arch, abi
|
||||||
|
except Exception as e:
|
||||||
|
print("Error getting arch/abi:", e)
|
||||||
|
return None, None
|
||||||
|
|
||||||
|
# get the gcc path
|
||||||
|
CC_BIN = PREFIX + 'gcc'
|
||||||
|
arch, abi = get_riscv64_default_arch_abi(CC_BIN)
|
||||||
|
if arch and abi:
|
||||||
|
DEVICE = f' {arch} {abi} '
|
||||||
|
else:
|
||||||
|
DEVICE = ' -march=rv64imafdc -mabi=lp64' # fallback
|
||||||
|
|
||||||
CC = PREFIX + 'gcc'
|
CC = PREFIX + 'gcc'
|
||||||
CPP = PREFIX + 'cpp'
|
CPP = PREFIX + 'cpp'
|
||||||
|
|
Loading…
Reference in New Issue