diff options
Diffstat (limited to 'experimental/mrustc/mrustc-adelie-targets.patch')
-rw-r--r-- | experimental/mrustc/mrustc-adelie-targets.patch | 309 |
1 files changed, 309 insertions, 0 deletions
diff --git a/experimental/mrustc/mrustc-adelie-targets.patch b/experimental/mrustc/mrustc-adelie-targets.patch new file mode 100644 index 000000000..c084538f7 --- /dev/null +++ b/experimental/mrustc/mrustc-adelie-targets.patch @@ -0,0 +1,309 @@ +This two-step patch is for ease of patch maintenance only. + +diff -ur a/src/trans/target.cpp b/src/trans/target.cpp +--- a/src/trans/target.cpp 2024-12-17 15:23:24.990000000 +0000 ++++ b/src/trans/target.cpp 2024-12-17 15:23:59.900000000 +0000 +@@ -411,231 +411,6 @@ + { + return load_spec_from_file(target_name); + } +- else if(target_name == "i586-linux-gnu" || target_name == "i586-unknown-linux-gnu") +- { +- return TargetSpec { +- "unix", "linux", "gnu", {CodegenMode::Gnu11, true, "i586-linux-gnu", BACKEND_C_OPTS_GNU}, +- ARCH_X86 +- }; +- } +- else if(target_name == "x86_64-linux-gnu" || target_name == "x86_64-unknown-linux-gnu") +- { +- return TargetSpec { +- "unix", "linux", "gnu", {CodegenMode::Gnu11, true /*false*/, "x86_64-linux-gnu", BACKEND_C_OPTS_GNU}, +- ARCH_X86_64 +- }; +- } +- else if(target_name == "x86_64-linux-musl" || target_name == "x86_64-unknown-linux-musl") +- { +- return TargetSpec { +- "unix", "linux", "musl", {CodegenMode::Gnu11, true /*false*/, "x86_64-linux-musl", BACKEND_C_OPTS_GNU}, +- ARCH_X86_64 +- }; +- } +- else if(target_name == "x86_64-unknown-linux-gnux32") +- { +- return TargetSpec { +- "unix", "linux", "gnu", {CodegenMode::Gnu11, true, "x86_64-unknown-linux-gnux32", BACKEND_C_OPTS_GNU}, +- ARCH_X32 +- }; +- } +- else if(target_name == "arm-linux-gnu" || target_name == "arm-unknown-linux-gnu") +- { +- return TargetSpec { +- "unix", "linux", "gnu", {CodegenMode::Gnu11, true, "arm-elf-eabi", BACKEND_C_OPTS_GNU}, +- ARCH_ARM32 +- }; +- } +- else if(target_name == "aarch64-linux-gnu" || target_name == "aarch64-unknown-linux-gnu") +- { +- return TargetSpec { +- "unix", "linux", "gnu", {CodegenMode::Gnu11, false, "aarch64-linux-gnu", BACKEND_C_OPTS_GNU}, +- ARCH_ARM64 +- }; +- } +- else if(target_name == "m68k-linux-gnu" || target_name == "m68k-unknown-linux-gnu") +- { +- return TargetSpec { +- "unix", "linux", "gnu", {CodegenMode::Gnu11, true, "m68k-linux-gnu", BACKEND_C_OPTS_GNU}, +- ARCH_M68K +- }; +- } +- else if(target_name == "powerpc64-unknown-linux-gnu") +- { +- return TargetSpec { +- "unix", "linux", "gnu", {CodegenMode::Gnu11, false, "powerpc64-unknown-linux-gnu", BACKEND_C_OPTS_GNU}, +- ARCH_POWERPC64 +- }; +- } +- else if(target_name == "powerpc64le-unknown-linux-gnu") +- { +- return TargetSpec { +- "unix", "linux", "gnu", {CodegenMode::Gnu11, false, "powerpc64le-unknown-linux-gnu", BACKEND_C_OPTS_GNU}, +- 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 { +- "windows", "windows", "gnu", {CodegenMode::Gnu11, true, "mingw32", BACKEND_C_OPTS_GNU}, +- ARCH_X86 +- }; +- } +- else if(target_name == "x86_64-pc-windows-gnu") +- { +- return TargetSpec { +- "windows", "windows", "gnu", {CodegenMode::Gnu11, false, "x86_64-w64-mingw32", BACKEND_C_OPTS_GNU}, +- ARCH_X86_64 +- }; +- } +- else if (target_name == "x86-pc-windows-msvc") +- { +- // TODO: Should this include the "kernel32.lib" inclusion? +- return TargetSpec { +- "windows", "windows", "msvc", {CodegenMode::Msvc, true, "x86", {}, {}}, +- ARCH_X86 +- }; +- } +- else if (target_name == "x86_64-pc-windows-msvc") +- { +- return TargetSpec { +- "windows", "windows", "msvc", {CodegenMode::Msvc, true, "amd64", {}, {}}, +- ARCH_X86_64 +- }; +- } +- else if(target_name == "i686-unknown-freebsd") +- { +- return TargetSpec { +- "unix", "freebsd", "gnu", {CodegenMode::Gnu11, true, "i686-unknown-freebsd", BACKEND_C_OPTS_GNU}, +- ARCH_X86 +- }; +- } +- else if(target_name == "x86_64-unknown-freebsd") +- { +- return TargetSpec { +- "unix", "freebsd", "gnu", {CodegenMode::Gnu11, false, "x86_64-unknown-freebsd", BACKEND_C_OPTS_GNU}, +- ARCH_X86_64 +- }; +- } +- else if(target_name == "arm-unknown-freebsd") +- { +- return TargetSpec { +- "unix", "freebsd", "gnu", {CodegenMode::Gnu11, true, "arm-unknown-freebsd", BACKEND_C_OPTS_GNU}, +- ARCH_ARM32 +- }; +- } +- else if(target_name == "aarch64-unknown-freebsd") +- { +- return TargetSpec { +- "unix", "freebsd", "gnu", {CodegenMode::Gnu11, false, "aarch64-unknown-freebsd", BACKEND_C_OPTS_GNU}, +- ARCH_ARM64 +- }; +- } +- else if(target_name == "x86_64-unknown-netbsd") +- { +- return TargetSpec { +- "unix", "netbsd", "gnu", {CodegenMode::Gnu11, false, "x86_64-unknown-netbsd", BACKEND_C_OPTS_GNU}, +- ARCH_X86_64 +- }; +- } +- else if(target_name == "i686-unknown-openbsd") +- { +- return TargetSpec { +- "unix", "openbsd", "gnu", {CodegenMode::Gnu11, true, "i686-unknown-openbsd", BACKEND_C_OPTS_GNU}, +- ARCH_X86 +- }; +- } +- else if(target_name == "x86_64-unknown-openbsd") +- { +- return TargetSpec { +- "unix", "openbsd", "gnu", {CodegenMode::Gnu11, false, "x86_64-unknown-openbsd", BACKEND_C_OPTS_GNU}, +- ARCH_X86_64 +- }; +- } +- else if(target_name == "arm-unknown-openbsd") +- { +- return TargetSpec { +- "unix", "openbsd", "gnu", {CodegenMode::Gnu11, true, "arm-unknown-openbsd", BACKEND_C_OPTS_GNU}, +- ARCH_ARM32 +- }; +- } +- else if(target_name == "aarch64-unknown-openbsd") +- { +- return TargetSpec { +- "unix", "openbsd", "gnu", {CodegenMode::Gnu11, false, "aarch64-unknown-openbsd", BACKEND_C_OPTS_GNU}, +- ARCH_ARM64 +- }; +- } +- else if(target_name == "x86_64-unknown-dragonfly") +- { +- return TargetSpec { +- "unix", "dragonfly", "gnu", {CodegenMode::Gnu11, false, "x86_64-unknown-dragonfly", BACKEND_C_OPTS_GNU}, +- ARCH_X86_64 +- }; +- } +- else if(target_name == "i686-apple-darwin") +- { +- // NOTE: OSX uses Mach-O binaries, which don't fully support the defaults used for GNU targets +- // The first 32bit Intel Mac was Core Solo aka yonah. It allows to use `-march=yonah` like Rust. +- return TargetSpec { +- "unix", "macos", "gnu", {CodegenMode::Gnu11, false, "x86_64-apple-darwin", {"-march=yonah"}, {}}, +- ARCH_X86_64 +- }; +- } +- else if(target_name == "x86_64-apple-darwin") +- { +- // NOTE: OSX uses Mach-O binaries, which don't fully support the defaults used for GNU targets +- // The first 64bit Intel Mac was Core Duo. It allows to use `-march=core2` like Rust. +- return TargetSpec { +- "unix", "macos", "gnu", {CodegenMode::Gnu11, false, "x86_64-apple-darwin", {"-march=core2"}, {}}, +- ARCH_X86_64 +- }; +- } +- else if(target_name == "aarch64-apple-darwin") +- { +- // NOTE: OSX uses Mach-O binaries, which don't fully support the defaults used for GNU targets +- return TargetSpec { +- "unix", "macos", "gnu", {CodegenMode::Gnu11, false, "aarch64-apple-darwin", {}, {}}, +- ARCH_ARM64 +- }; +- } +- else if(target_name == "powerpc-apple-darwin") +- { +- // NOTE: OSX uses Mach-O binaries, which don't fully support the defaults used for GNU targets +- return TargetSpec { +- "unix", "macos", "gnu", {CodegenMode::Gnu11, false, "powerpc-apple-darwin", {}, {}}, +- ARCH_POWERPC32 +- }; +- } +- else if(target_name == "powerpc64-apple-darwin") +- { +- // NOTE: OSX uses Mach-O binaries, which don't fully support the defaults used for GNU targets +- return TargetSpec { +- "unix", "macos", "gnu", {CodegenMode::Gnu11, false, "powerpc64-apple-darwin", {}, {}}, +- ARCH_POWERPC64 +- }; +- } +- else if(target_name == "arm-unknown-haiku") +- { +- return TargetSpec { +- "unix", "haiku", "gnu", {CodegenMode::Gnu11, true, "arm-unknown-haiku", {}, {}}, +- ARCH_ARM32 +- }; +- } +- else if(target_name == "x86_64-unknown-haiku") +- { +- return TargetSpec { +- "unix", "haiku", "gnu", {CodegenMode::Gnu11, false, "x86_64-unknown-haiku", {}, {}}, +- ARCH_X86_64 +- }; +- } + else + { + ::std::cerr << "Unknown target name '" << target_name << "'" << ::std::endl; +--- a/src/trans/target.cpp 2024-12-17 15:27:49.410000000 +0000 ++++ b/src/trans/target.cpp 2024-12-17 15:26:13.600000000 +0000 +@@ -411,6 +411,69 @@ + { + return load_spec_from_file(target_name); + } ++ else if(target_name == "x86_64-foxkit-linux-musl" || target_name == "x86_64-unknown-linux-musl") ++ { ++ return TargetSpec { ++ "unix", "linux", "musl", {CodegenMode::Gnu11, true /*false*/, "x86_64-linux-musl", BACKEND_C_OPTS_GNU}, ++ ARCH_X86_64 ++ }; ++ } ++ else if(target_name == "i586-foxkit-linux-musl" || target_name == "i586-unknown-linux-musl") ++ { ++ return TargetSpec { ++ "unix", "linux", "musl", {CodegenMode::Gnu11, true /*false*/, "i586-linux-musl", BACKEND_C_OPTS_GNU}, ++ ARCH_X86 ++ }; ++ } ++ else if(target_name == "aarch64-foxkit-linux-musl" || target_name == "aarch64-unknown-linux-musl") ++ { ++ return TargetSpec { ++ "unix", "linux", "musl", {CodegenMode::Gnu11, true /*false*/, "aarch64-linux-musl", BACKEND_C_OPTS_GNU}, ++ ARCH_ARM64 ++ }; ++ } ++ else if(target_name == "armv7-foxkit-linux-musleabihf" || target_name == "armv7-unknown-linux-musleabihf") ++ { ++ return TargetSpec { ++ "unix", "linux", "musl", {CodegenMode::Gnu11, true /*false*/, "arm-linux-musl", BACKEND_C_OPTS_GNU}, ++ ARCH_ARM32 ++ }; ++ } ++ else if(target_name == "m68k-foxkit-linux-musl" || target_name == "m68k-unknown-linux-musl") ++ { ++ return TargetSpec { ++ "unix", "linux", "musl", {CodegenMode::Gnu11, true /*false*/, "m68k-linux-musl", BACKEND_C_OPTS_GNU}, ++ ARCH_M68K ++ }; ++ } ++ else if(target_name == "powerpc64-foxkit-linux-musl" || target_name == "powerpc64-unknown-linux-musl") ++ { ++ return TargetSpec { ++ "unix", "linux", "musl", {CodegenMode::Gnu11, true /*false*/, "powerpc64-linux-musl", BACKEND_C_OPTS_GNU}, ++ ARCH_POWERPC64 ++ }; ++ } ++ else if(target_name == "powerpc64le-foxkit-linux-musl" || target_name == "powerpc64le-unknown-linux-musl") ++ { ++ return TargetSpec { ++ "unix", "linux", "musl", {CodegenMode::Gnu11, true /*false*/, "powerpc64le-linux-musl", BACKEND_C_OPTS_GNU}, ++ ARCH_POWERPC64LE ++ }; ++ } ++ else if(target_name == "powerpc-foxkit-linux-musl" || target_name == "powerpc-unknown-linux-musl") ++ { ++ return TargetSpec { ++ "unix", "linux", "musl", {CodegenMode::Gnu11, true /*false*/, "powerpc-linux-musl", BACKEND_C_OPTS_GNU}, ++ ARCH_POWERPC32 ++ }; ++ } ++ else if(target_name == "riscv64-foxkit-linux-musl" || target_name == "riscv64-unknown-linux-musl") ++ { ++ return TargetSpec { ++ "unix", "linux", "musl", {CodegenMode::Gnu11, true /*false*/, "riscv64-linux-musl", BACKEND_C_OPTS_GNU}, ++ ARCH_RISCV64 ++ }; ++ } + else + { + ::std::cerr << "Unknown target name '" << target_name << "'" << ::std::endl; |