Probably doesn't matter too much since we are just using the machine code tools of LLVM (addr2line, lld, etc.) and unlike the others they tend not to break compatibility every few days there.
ll…
Please test artiq_compile as well, the LLVM/llvmlite stuff often tends to break.
Note that the x87 FPU internally has higher-precision registers with 80 bits. Might have to do with that perhaps. I think use of the higher precision can be disabled.
This PR would be a good place to address M-Labs/nac3#478 (comment), and also look for similar problems and fix them.
Ack. We don't have to (and should not) implement every GCC option. And compiling for 686 is a better match to what is happening when we target the (current) ARTIQ devices.
Are you sure you're not using the wrong files? IIRC cargo eventually gives you one single .a with a stable name when building a static lib.
I think limiting to float is fine. But the compiler should not crash if the user passes integer, and report the error correctly instead.
It's also not only about the bitwidth of size_t. The code suggests it is.
I don't think we need this -m flag at all. It looks superfluous, complex, and error prone. Just use -target
and then get the information such as the bitwidth of size_t by querying the LLVM target.