[lld] r193301 - [Driver] Change UniversalDriver to use TD file.

Nick Kledzik kledzik at apple.com
Thu Oct 24 11:28:55 PDT 2013


On Oct 24, 2013, at 12:38 AM, Alex Rosenberg <alexr at ohmantics.com> wrote:

> On Oct 23, 2013, at 11:56 PM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:
> 
>>> core was supposed to be the "one true" flavor that would potentially be the "native" command line for lld in the absence of a need for legacy compatibility and for the future.
>> 
>> Is that realistic? On the clang side there was some discussion about
>> adding a clean command line interface, but the added value of doing so
>> seemed small.
> 
> It's where we started.
> 
>>> From http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-November/018588.html
>> 
>> However, the challenge then becomes "why would anyone use the 'nice'
>> one"?  It is likely to get less development and features, and users of
>> the compiler don't care about academic purity of the implementation
>> details.  Any features of the 'nice' driver would also need to
>> supported by the 'ugly' driver also, so I don't see that introducing a
>> new driver is really all that useful.
> 
> Some flavors can't express everything in the command line, e.g. GNU ld uses linker scripts, whereas ld64 can do everything on the command line. The hope was that a single universal command line language would be the best future direction.
> 
> Also, the other flavors were internally translated to core command lines, so it always got tested and always had every feature.
At one point, all drivers just rewrote a new command line in the “core” syntax.  But that hit some scalability issues, and I changed the design so that each driver fills out a flavor specific struct (LinkingContext) of what/how to link.  Now, the core driver fills out the base LinkingContext struct and is only useful for testing common/core linker parts.

-Nick







More information about the llvm-commits mailing list