[LLVMdev] Preferring to use GCC instead of LLVM
Owen Anderson
resistor at mac.com
Sun May 11 09:42:10 PDT 2008
On May 11, 2008, at 9:36 AM, Óscar Fuentes wrote:
>
> Not that I sympathize with the OP's manners but...
>
> Bill Wendling <isanbard at gmail.com> writes:
>>
>> That's only a convenience. GCC generates assembly code too and calls
>> the assembler and linker as part of it's execution. You are perfectly
>> able to call the assembler & linker yourself.
>
> This means that LLVM requires an assembler and linker. Call it GCC or
> binutils, it is irrelevant. The OP point is that LLVM is not a
> self-sufficient tool on this aspect.
>
Actually, I think Bill's right on target. The OP was implying that
LLVM is incomplete because it depends on GCC in the backend, which is
incorrect. It depends on binutils, _which GCC also depends on_. Thus
LLVM is certainly no less complete than GCC in that sense.
I think the point is that implementing our own linker is definitely
beyond the purview of LLVM, and implementing our own object file
writer/assembler is honestly pretty low on the priority queue. GCC,
the primary alternative, also depends on these things, so having them
would be a competitive advantage, not a requirement for parity.
>
>>> Bill Wendling wrote:
>>>> I don't know about your computer, by mine comes with an
>>>> assembler.
>>>
>>> MS Windows does not come with an assembler, AFAIK.
>>>
>> You should really learn how to use Google. Got this as the top hit
>> for
>> "Microsoft Assembler":
>>
>> http://www.microsoft.com/downloads/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64&displaylang=en
>
> This does not *comes* with MS Windows. It is a separate download,
> which
> depends on more downloads (Visual C++ Express Edition) and is for
> non-commercial use only. Furthermore, you can't re-distribute it.
>
From what I read, it's included with copies of Visual Studio. I
assume that a paid copy of Visual Studio (as opposed to the free
Express edition) includes a version that's licensed for commercial use.
Additionally, LLVM's support for Win32 outside of MinGW/Cygwin is ...
spotty at best. And in those environments, the competition is, once
again, GCC, which still depends on gas and ld.
The fundamental problem is that both executable formats and linking
problems are EXTREMELY platform specific, so it's typically best to
leave it up to the system tools. Assembly/object file generation is a
_possibility_ for us only because there is some commonality between
platforms (i.e. ELF is used on many platforms). But it's still low on
the queue because there already system-provided tools that do it
better on every platform we care about (*nix + MinGW/Cygwin).
--Owen
P.S. I do agree that, if he has a desperate need to run LLVM outside
of MinGW/Cygwin, JIT is his best bet.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4260 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080511/87c1ff42/attachment.bin>
More information about the llvm-dev
mailing list