From b3e315e24af56b609e9a41c882287ed152d1d1f0 Mon Sep 17 00:00:00 2001 From: occheung Date: Mon, 8 Nov 2021 12:57:13 +0800 Subject: [PATCH] rust: find json file using CARGO_TRIPLE --- artiq/firmware/bootloader/Makefile | 2 +- artiq/firmware/ksupport/Makefile | 2 +- artiq/firmware/riscv32g-unknown-none-elf.json | 40 ++++++++++++ .../firmware/riscv32ima-unknown-none-elf.json | 61 +++++++++---------- artiq/firmware/runtime/Makefile | 2 +- artiq/firmware/satman/Makefile | 2 +- 6 files changed, 74 insertions(+), 35 deletions(-) create mode 100644 artiq/firmware/riscv32g-unknown-none-elf.json diff --git a/artiq/firmware/bootloader/Makefile b/artiq/firmware/bootloader/Makefile index 4dbd7b608..82baef3eb 100644 --- a/artiq/firmware/bootloader/Makefile +++ b/artiq/firmware/bootloader/Makefile @@ -11,7 +11,7 @@ all:: bootloader.bin $(RUSTOUT)/libbootloader.a: $(cargo) --target-dir ./cargo \ --manifest-path $(BOOTLOADER_DIRECTORY)/Cargo.toml \ - --target $(BOOTLOADER_DIRECTORY)/../riscv32ima-unknown-none-elf.json + --target $(BOOTLOADER_DIRECTORY)/../$(CARGO_TRIPLE).json bootloader.elf: $(RUSTOUT)/libbootloader.a $(link) -T $(BOOTLOADER_DIRECTORY)/bootloader.ld diff --git a/artiq/firmware/ksupport/Makefile b/artiq/firmware/ksupport/Makefile index f1fbfc19a..b73faea50 100644 --- a/artiq/firmware/ksupport/Makefile +++ b/artiq/firmware/ksupport/Makefile @@ -22,7 +22,7 @@ all:: ksupport.elf $(RUSTOUT)/libksupport.a: $(cargo) --target-dir ./cargo \ --manifest-path $(KSUPPORT_DIRECTORY)/Cargo.toml \ - --target $(KSUPPORT_DIRECTORY)/../riscv32ima-unknown-none-elf.json + --target $(KSUPPORT_DIRECTORY)/../$(CARGO_TRIPLE).json ksupport.elf: $(RUSTOUT)/libksupport.a glue.o $(link) -T $(KSUPPORT_DIRECTORY)/ksupport.ld \ diff --git a/artiq/firmware/riscv32g-unknown-none-elf.json b/artiq/firmware/riscv32g-unknown-none-elf.json new file mode 100644 index 000000000..2a3fb8bfb --- /dev/null +++ b/artiq/firmware/riscv32g-unknown-none-elf.json @@ -0,0 +1,40 @@ +{ + "arch": "riscv32", + "code-model": "medium", + "cpu": "generic-rv32", + "crt-static-respected": true, + "data-layout": "e-m:e-p:32:32-i64:64-n32-S128", + "dynamic-linking": true, + "executables": true, + "features": "+m,+a,+f,+d", + "has-elf-tls": true, + "has-rpath": true, + "llvm-abiname": "ilp32d", + "llvm-target": "riscv32-unknown-linux", + "max-atomic-width": 32, + "position-independent-executables": true, + "pre-link-args": { + "gcc": [ + "-Wl,--as-needed", + "-Wl,-z,noexecstack" + ] + }, + "relro-level": "full", + "target-family": "unix", + "target-pointer-width": "32", + "unsupported-abis": [ + "cdecl", + "stdcall", + "fastcall", + "vectorcall", + "thiscall", + "aapcs", + "win64", + "sysv64", + "ptx-kernel", + "msp430-interrupt", + "x86-interrupt", + "amdgpu-kernel" + ] +} + \ No newline at end of file diff --git a/artiq/firmware/riscv32ima-unknown-none-elf.json b/artiq/firmware/riscv32ima-unknown-none-elf.json index ddacc0247..e41408842 100644 --- a/artiq/firmware/riscv32ima-unknown-none-elf.json +++ b/artiq/firmware/riscv32ima-unknown-none-elf.json @@ -1,32 +1,31 @@ { - "arch": "riscv32", - "cpu": "generic-rv32", - "data-layout": "e-m:e-p:32:32-i64:64-n32-S128", - "eh-frame-header": false, - "emit-debug-gdb-scripts": false, - "executables": true, - "features": "+m,+a,-c", - "is-builtin": false, - "linker": "rust-lld", - "linker-flavor": "ld.lld", - "llvm-target": "riscv32", - "max-atomic-width": 32, - "panic-strategy": "unwind", - "relocation-model": "static", - "target-pointer-width": "32", - "unsupported-abis": [ - "cdecl", - "stdcall", - "fastcall", - "vectorcall", - "thiscall", - "aapcs", - "win64", - "sysv64", - "ptx-kernel", - "msp430-interrupt", - "x86-interrupt", - "amdgpu-kernel" - ] - } - \ No newline at end of file + "arch": "riscv32", + "cpu": "generic-rv32", + "data-layout": "e-m:e-p:32:32-i64:64-n32-S128", + "eh-frame-header": false, + "emit-debug-gdb-scripts": false, + "executables": true, + "features": "+m,+a,-c", + "is-builtin": false, + "linker": "rust-lld", + "linker-flavor": "ld.lld", + "llvm-target": "riscv32", + "max-atomic-width": 32, + "panic-strategy": "unwind", + "relocation-model": "static", + "target-pointer-width": "32", + "unsupported-abis": [ + "cdecl", + "stdcall", + "fastcall", + "vectorcall", + "thiscall", + "aapcs", + "win64", + "sysv64", + "ptx-kernel", + "msp430-interrupt", + "x86-interrupt", + "amdgpu-kernel" + ] +} diff --git a/artiq/firmware/runtime/Makefile b/artiq/firmware/runtime/Makefile index 00506b2f3..3e4b91ba3 100644 --- a/artiq/firmware/runtime/Makefile +++ b/artiq/firmware/runtime/Makefile @@ -18,7 +18,7 @@ all:: runtime.bin runtime.fbi $(RUSTOUT)/libruntime.a: $(cargo) --target-dir ./cargo \ --manifest-path $(RUNTIME_DIRECTORY)/Cargo.toml \ - --target $(RUNTIME_DIRECTORY)/../riscv32ima-unknown-none-elf.json + --target $(RUNTIME_DIRECTORY)/../$(CARGO_TRIPLE).json runtime.elf: $(RUSTOUT)/libruntime.a ksupport_data.o $(link) -T $(RUNTIME_DIRECTORY)/runtime.ld \ diff --git a/artiq/firmware/satman/Makefile b/artiq/firmware/satman/Makefile index 7c3885c87..82e65d730 100644 --- a/artiq/firmware/satman/Makefile +++ b/artiq/firmware/satman/Makefile @@ -13,7 +13,7 @@ all:: satman.bin satman.fbi $(RUSTOUT)/libsatman.a: $(cargo) --target-dir ./cargo \ --manifest-path $(SATMAN_DIRECTORY)/Cargo.toml \ - --target $(SATMAN_DIRECTORY)/../riscv32ima-unknown-none-elf.json + --target $(SATMAN_DIRECTORY)/../$(CARGO_TRIPLE).json satman.elf: $(RUSTOUT)/libsatman.a $(link) -T $(SATMAN_DIRECTORY)/satman.ld