mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-06 03:17:15 -05:00
ca4bfb0f2d
* gnu/packages/rust.scm (%mrustc-source): Add patch. (rust-bootstrap)[native-inputs]: On riscv64-linux add gcc@9:lib. [supported-systems]: Add riscv64-linux. Adjust comment. * gnu/packages/patches/mrustc-riscv64-support.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it.
48 lines
1.6 KiB
Diff
48 lines
1.6 KiB
Diff
Patch sent upstream for review:
|
|
https://github.com/thepowersgang/mrustc/pull/276
|
|
|
|
diff --git a/src/trans/target.cpp b/src/trans/target.cpp
|
|
index 420a2870..4d5eefb3 100644
|
|
--- a/src/trans/target.cpp
|
|
+++ b/src/trans/target.cpp
|
|
@@ -65,6 +65,13 @@ const TargetArch ARCH_POWERPC64LE = {
|
|
{ /*atomic(u8)=*/true, true, true, true, true },
|
|
TargetArch::Alignments(2, 4, 8, 16, 4, 8, 8)
|
|
};
|
|
+// This is a guess
|
|
+const TargetArch ARCH_RISCV64 = {
|
|
+ "riscv64",
|
|
+ 64, false,
|
|
+ { /*atomic(u8)=*/true, true, true, true, true },
|
|
+ TargetArch::Alignments(2, 4, 8, 16, 4, 8, 8)
|
|
+};
|
|
TargetSpec g_target;
|
|
|
|
|
|
@@ -455,6 +462,13 @@ namespace
|
|
ARCH_POWERPC64LE
|
|
};
|
|
}
|
|
+ else if(target_name == "riscv64-unknown-linux-gnu")
|
|
+ {
|
|
+ return TargetSpec {
|
|
+ "unix", "linux", "gnu", {CodegenMode::Gnu11, false, "riscv64-unknown-linux-gnu", BACKEND_C_OPTS_GNU},
|
|
+ ARCH_RISCV64
|
|
+ };
|
|
+ }
|
|
else if(target_name == "i586-pc-windows-gnu")
|
|
{
|
|
return TargetSpec {
|
|
diff --git a/tools/common/target_detect.h b/tools/common/target_detect.h
|
|
index a052da6b..42fea91a 100644
|
|
--- a/tools/common/target_detect.h
|
|
+++ b/tools/common/target_detect.h
|
|
@@ -34,6 +34,8 @@
|
|
# define DEFAULT_TARGET_NAME "powerpc64-unknown-linux-gnu"
|
|
# elif defined(__powerpc64__) && defined(__LITTLE_ENDIAN__)
|
|
# define DEFAULT_TARGET_NAME "powerpc64le-unknown-linux-gnu"
|
|
+# elif defined(__riscv) && __riscv_xlen == 64
|
|
+# define DEFAULT_TARGET_NAME "riscv64-unknown-linux-gnu"
|
|
# else
|
|
# warning "Unable to detect a suitable default target (linux-gnu)"
|
|
# endif
|