[LLVMdev] win32 assemblers and linkers for llvm
Razvan Aciu
admin at kam.ro
Tue May 13 05:59:08 PDT 2008
Yes, you are right. During my testings, I tried the llvm produced .S files
with the gcc frontend and it compiled and linked them to the final
executable.
The problem is with the gcc and binutils licence. This is GPL and while this
is ok for open source or for academic purposes, it can't be used on
commercial projects. In fact one of the strong points of llvm (and clang) is
its BSD like license. To quote from (
http://clang.llvm.org/features.html#enduser ):
"We actively indend for clang (and a LLVM as a whole) to be used for
commercial projects, and the BSD license is the simplest way to allow this.
We feel that the license encourages contributors to pick up the source and
work with it, and believe that those individuals and organizations will
contribute back their work if they do not want to have to maintain a fork
forever (which is time consuming and expensive when merges are involved).
Further, nobody makes money on compilers these days, but many people need
them to get bigger goals accomplished: it makes sense for everyone to work
together."
To design the native code generators of llvm to work only with software
under much more restrictive licenses like GPL or the MASM license, means to
throw away this goal and simply make llvm and clang only another open source
project, not suitable for many commercial applications (the ones who can't
use the JIT interpreter).
There is also another licensing issue: there are some discussions what means
for GPL "work based on project" or "work derived from project". The tendency
is that if an independent project fully depends for its work on a GPL
project (like a code generator which only generates code for GAS) to be
considered a "work based on project" or even "work derived from project", so
the intent is to also apply the GPL license to it, even this means lawsuits.
Even if right now the need for a native code generator for a *free as llvm*
assembler maybe is not really perceived, I think it will arise sharply when
the clang will be production ready. In that respect, if someone can adapt
the MASM templates to produce NASM directives (it is the only thing that
needs to be changed), these updates will be more than welcome.
Razvan
----- Original Message -----
From: "Anton Korobeynikov" <asl at math.spbu.ru>
To: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>
Sent: Tuesday, May 13, 2008 8:19 AM
Subject: Re: [LLVMdev] win32 assemblers and linkers for llvm
>> There's also then entire GNU toolchain, through MinGW and/or Cygwin.
> Which works perfectly right now without any extra tweaking :)
>
> --
> With best regards, Anton Korobeynikov.
>
> Faculty of Mathematics & Mechanics, Saint Petersburg State University.
>
>
> _______________________________________________
> 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