[LLVMdev] Distribution in assembler format

John Criswell 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
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

More information about the llvm-dev mailing list