40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
import os
|
|
import sys
|
|
import subprocess
|
|
|
|
arguments = sys.argv[2]
|
|
vdso_usr = os.path.dirname(arguments)
|
|
vdso_root = os.path.dirname(vdso_usr)
|
|
|
|
|
|
EXEC_PATH = os.getenv('RTT_EXEC_PATH') or '/usr/bin'
|
|
PREFIX = os.getenv('RTT_CC_PREFIX') or 'aarch64-none-elf-'
|
|
|
|
CC = PREFIX + 'gcc'
|
|
CXX = PREFIX + 'g++'
|
|
CPP = PREFIX + 'cpp'
|
|
AS = PREFIX + 'gcc'
|
|
AR = PREFIX + 'ar'
|
|
LINK = PREFIX + 'gcc'
|
|
|
|
DEVICE = ' -march=armv8-a -mtune=cortex-a53 -ftree-vectorize -ffast-math -funwind-tables -fno-strict-aliasing'
|
|
CXXFLAGS = DEVICE + ' -Wall -fdiagnostics-color=always'
|
|
AFLAGS = ' -x assembler-with-cpp'
|
|
CFLAGS = DEVICE + ' -Wall -Wno-cpp -std=gnu99 -fdiagnostics-color=always -fPIC -O2'
|
|
LFLAGS = DEVICE + ' -Bsymbolic -Wl,--gc-sections,-u,system_vectors -T {path}/vdso.lds'.format(path=vdso_usr)
|
|
CFLAGS += " -I {path} -I{path}/user".format(path=vdso_root)
|
|
|
|
env = Environment(tools=['gcc', 'link'],
|
|
AS = AS, ASFLAGS = AFLAGS,
|
|
CC = CC, CFLAGS = CFLAGS,
|
|
CXX = CXX, CXXFLAGS = CXXFLAGS,
|
|
AR = AR,
|
|
LINK = LINK, LINKFLAGS = LFLAGS)
|
|
env.PrependENVPath('PATH', EXEC_PATH)
|
|
|
|
src = os.path.join(vdso_usr,'vdso_sys.c')
|
|
target_name = 'librtos_vdso.so'
|
|
target = os.path.join(vdso_usr, "build", target_name)
|
|
shared_lib = env.SharedLibrary(target=target, source=src)
|
|
env.Default(shared_lib)
|