Earlier quoted context omitted.
Just in case you aren't in the loop, but there are gcc and llvm based Amiga cross compilers.
Actually I wasn't able to do it also with Bebbo's GCC fork. Never used Nim before so I might be doing something wrong though. I wish retro Amiga had Rust support. I've briefly skimmed what would be necessary to do, based on the rust-mos (Rust for commodore-64 fork), but I'm too weak in LLVM internals to actually do it.
Unofficial "Tier 4" Rust Target for older Windows versions
91–97 of 97 posts
Re: Unofficial "Tier 4" Rust Target for older Windows versions
#92Earlier quoted context omitted.
Just in case you aren't in the loop, but there are gcc and llvm based Amiga cross compilers.
GCC cross-compiling for the Amiga is available from https://franke.ms/git/bebbo/amiga-gcc for a standalone toolchain, and https://github.com/BartmanAbyss/vscode-amiga-debug for one that requires VSCode. I'm not aware of any working LLVM solution? All I know is that LLVM supports MC680x0 as a backend, can spit out 68k-but-non-amiga-objects and some brave souls have trying to use vlink or mold to produce Amiga executab…
Re: Unofficial "Tier 4" Rust Target for older Windows versions
#93Earlier quoted context omitted.
Big assumption there... chances are they would rather keep the money or spend it elsewhere, instead of "unnecessarily" upgrading when things still work
Win10 has got to cost less than a single ransomware attack.
Re: Unofficial "Tier 4" Rust Target for older Windows versions
#94Earlier quoted context omitted.
Just in case you aren't in the loop, but there are gcc and llvm based Amiga cross compilers.
Actually I wasn't able to do it also with Bebbo's GCC fork. Never used Nim before so I might be doing something wrong though. I wish retro Amiga had Rust support. I've briefly skimmed what would be necessary to do, based on the rust-mos (Rust for commodore-64 fork), but I'm too weak in LLVM internals to actually do it.
With Nim on weird targets you usually want:
- OS target = any
- Memory Management = ARC
- malloc instead of default Nim allocator
- turn off signal handler (if not POSIX)
- disable threads (most of the time)
Then look at how C is compiled and copy all compiler+linker flags to your Nim configuration. Here's an absolute minimal `config.nims` I used to compile Nim for C64 with LLVM-MOS[1] toolchain:
import std/strutils
--cc:clang
--clang.exe:"mos-c64-clang"
--os:any
--cpu:avr
--mm:arc
--threads:off
--define:usemalloc
--define:noSignalHandler
let args = [
"-isystem $PWD/../mos-platform/c64/include",
"-I$PWD/../mos-platform/c64/asminc",
"-L$PWD/../mos-platform/c64/lib",
"-mlto-zp=110",
"-D__C64__",
"-isystem $PWD/../mos-platform/commodore/include",
"-I$PWD/../mos-platform/commodore/asminc",
"-L$PWD/../mos-platform/commodore/lib",
"-D__CBM__",
"-isystem $PWD/../mos-platform/common/include",
"-I$PWD/../mos-platform/common/asminc",
"-L$PWD/../mos-platform/common/lib",
"--target=mos",
"-flto",
"-Os",
].join(" ")
switch("passC", args)
switch("passL", args)
Nim side was easy, because I have already compiled Nim to WASM at that point and the flags are similar. Hard part was figuring out the C compiler flags: e.g. cmake structure and why compiler complains about missing symbols, when they're not missing (answer: include/lib order is very important).Re: Unofficial "Tier 4" Rust Target for older Windows versions
#95Earlier quoted context omitted.
And? There are barely any API differences between 7 and 10.
Ok, and? API being the same is kinda the Windows selling point. That said, there are API differences - DirectX12, Bitlocker, etc.
Re: Unofficial "Tier 4" Rust Target for older Windows versions
#96The idea of running Rust code on Windows 95 is very funny to me. Two completely different universes colliding.
Re: Unofficial "Tier 4" Rust Target for older Windows versions
#97Earlier quoted context omitted.
GCC cross-compiling for the Amiga is available from https://franke.ms/git/bebbo/amiga-gcc for a standalone toolchain, and https://github.com/BartmanAbyss/vscode-amiga-debug for one that requires VSCode. I'm not aware of any working LLVM solution? All I know is that LLVM supports MC680x0 as a backend, can spit out 68k-but-non-amiga-objects and some brave souls have trying to use vlink or mold to produce Amiga executab…
I probably just confused m68k support with HUNK support. Maybe one could use https://github.com/BinaryMelodies/RetroLinker