targets: make compiler runtime selection more configurable

Этот коммит содержится в:
Ayke van Laethem 2018-11-19 20:17:42 +01:00
родитель 74b5e28a38
коммит f02766265c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E97FF5335DFDFDED
6 изменённых файлов: 7 добавлений и 7 удалений

Просмотреть файл

@ -153,7 +153,7 @@ func Compile(pkgName, outpath string, spec *TargetSpec, config *BuildConfig, act
// Load builtins library from the cache, possibly compiling it on the
// fly.
var cachePath string
if spec.CompilerRT {
if spec.RTLib == "compiler-rt" {
librt, err := loadBuiltins(spec.Triple)
if err != nil {
return err
@ -165,7 +165,7 @@ func Compile(pkgName, outpath string, spec *TargetSpec, config *BuildConfig, act
executable := filepath.Join(dir, "main")
tmppath := executable // final file
args := append(spec.PreLinkArgs, "-o", executable, objfile)
if spec.CompilerRT {
if spec.RTLib == "compiler-rt" {
args = append(args, "-L", cachePath, "-lrt-"+spec.Triple)
}
cmd := exec.Command(spec.Linker, args...)

Просмотреть файл

@ -20,7 +20,7 @@ type TargetSpec struct {
Triple string `json:"llvm-target"`
BuildTags []string `json:"build-tags"`
Linker string `json:"linker"`
CompilerRT bool `json:"compiler-rt"`
RTLib string `json:"rtlib"` // compiler runtime library (libgcc, compiler-rt)
PreLinkArgs []string `json:"pre-link-args"`
Objcopy string `json:"objcopy"`
Emulator []string `json:"emulator"`

Просмотреть файл

@ -2,7 +2,7 @@
"llvm-target": "armv7m-none-eabi",
"build-tags": ["bluepill", "stm32f103xx", "stm32", "tinygo.arm", "js", "wasm"],
"linker": "arm-none-eabi-gcc",
"compiler-rt": true,
"rtlib": "compiler-rt",
"pre-link-args": ["-nostdlib", "-nostartfiles", "-mcpu=cortex-m3", "-mthumb", "-T", "targets/stm32.ld", "-Wl,--gc-sections", "-fno-exceptions", "-fno-unwind-tables", "-ffunction-sections", "-fdata-sections", "-Os", "src/device/stm32/stm32f103xx.s"],
"objcopy": "arm-none-eabi-objcopy",
"flash": "openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c 'program {hex} reset exit'"

Просмотреть файл

@ -2,7 +2,7 @@
"llvm-target": "armv6m-none-eabi",
"build-tags": ["microbit", "nrf51822", "nrf51", "nrf", "tinygo.arm", "js", "wasm"],
"linker": "arm-none-eabi-gcc",
"compiler-rt": true,
"rtlib": "compiler-rt",
"pre-link-args": [
"-nostdlib",
"-nostartfiles",

Просмотреть файл

@ -2,7 +2,7 @@
"llvm-target": "armv7em-none-eabi",
"build-tags": ["pca10040", "nrf52832", "nrf52", "nrf", "tinygo.arm", "js", "wasm"],
"linker": "arm-none-eabi-gcc",
"compiler-rt": true,
"rtlib": "compiler-rt",
"pre-link-args": [
"-nostdlib",
"-nostartfiles",

Просмотреть файл

@ -2,7 +2,7 @@
"llvm-target": "armv7m-none-eabi",
"build-tags": ["qemu", "lm3s6965", "tinygo.arm", "js", "wasm"],
"linker": "arm-none-eabi-gcc",
"compiler-rt": true,
"rtlib": "compiler-rt",
"pre-link-args": [
"-nostdlib",
"-nostartfiles",