The question is:
Given a barebones nonroot shell account with no compiler and linker, what would be needed to execute a given bitcode file?
I several possibilities here.
On one end, the distributor simply compiles the bitcode to any platform supported and provides the binaries.
That means a 150% reliable cross-compiler setup for LLVM. Is that a realistic option?
On the other end, the distributor offers, for each platform supported, a simple LLVM backend in binary format, then use that to bootstrap a full optimizing LLVM backend for the current platform, finally compile the bitcode file to binary. (Keep the LLVM backend around so it can be reused for the next bitcode file.)
The snag here might be LLVM's dependency on the platform linker; since there is no root access, this requires supplying a locally-installable version of the linker infrastructure for the platform.
I also hear there's a bitcode interpreter around, which would be yet another option. Could either interpret the final bitcode file directly, or be used as the first stage of the bootstrap process.
Recommendations which path would be the most robust against breakage as platforms evolve?