[LLVMdev] Distribution in assembler format
criswell at uiuc.edu
Fri Jan 29 11:51:15 PST 2010
Russell Wallace wrote:
> One issue I've been looking at with regard to using LLVM as a compiler
> backend is distribution of programs, particularly on Linux where
> different distributions have different binary package formats and it
> is usual to ship programs as source rather than binary; specifically,
> I'm looking at the general case where the end user may not have (the
> correct version of) LLVM installed, so the compiler can't simply be
> run on the end user's machine.
> A solution that occurs to me is to compile as far as assembler on the
> programmer's machine, then ship the .s file (or a small number
> thereof, one per CPU architecture) and assemble it on the user's
> machine (which in most cases will have the GNU assembler installed).
> It seems to me that this ought to work; are there any pitfalls I
> should be aware of?
A potential problem with this approach is that different Linux systems
have different versions of header files and libraries. While the
machine code will assemble correctly, it may not link (because a native
code library is missing or is of an incorrect version) or the generated
code will not work properly (because some structure in a header file is
different between the system used for compilation and the system on
which the program is installed).
Shipping assembly code is more or less equivalent to shipping a binary.
If shipping native code will work, then shipping assembly code will work
(in which case, why ship assembly code instead of a native binary?).
-- John T.
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the llvm-dev