On Fri, Oct 19, 2012 at 10:38 AM, Daniel Dunbar <[email protected]> wrote:
> Hi Michael,
>
> I understand what this patch does, but I don't really understand the
> motivation for it, yet.
>
> Why is this the "main feature" needed for sane gnu-ld and link command
> line support?
>
> It seems to me, that what you really need for those is a completely
> separate option parsing table. I can see how this patch could be
> useful if you wanted to accept the same options for the link.exe
> parsing just with a '/' at the front, but that doesn't seem right to
> me. It seems to me that the link.exe parsing or cl.exe parsing would
> end up using a completely separate parsing table.
>
> Can you explain?
>
>  - Daniel

The option tables would be completely separate. This is needed because
link supports both / and - prefixes for all options. gnu-ld supports -
and -- for almost all options.

>From the ld man page:

"For options whose names are multiple letters, either one dash or two
can precede the option name; for example, -trace-symbol and
--trace-symbol are equivalent. Note---there is one exception to this
rule. Multiple letter options that start with a lower case 'o' can
only be preceded by two dashes. This is to reduce confusion with the
-o option. So for example -omagic sets the output file name to magic
whereas --omagic sets the NMAGIC flag on the output."

- Michael Spencer

>
> On Thu, Oct 18, 2012 at 3:53 PM, Michael Spencer <[email protected]> 
> wrote:
>> Hi ddunbar,
>>
>> This patch adds support for multiple prefixes per option. This is the main 
>> feature needed for sane gnu-ld and link command line support.
>>
>> Most of the ["-"]'s can be refactored to a common class in tablegen, but I 
>> have a few more widespread tablegen changes I want to make before doing all 
>> the refactoring needed.
>>
>> http://llvm-reviews.chandlerc.com/D69
>>
>> Files:
>>   include/clang/Driver/Arg.h
>>   include/clang/Driver/CC1AsOptions.h
>>   include/clang/Driver/CC1AsOptions.td
>>   include/clang/Driver/CC1Options.td
>>   include/clang/Driver/OptParser.td
>>   include/clang/Driver/OptTable.h
>>   include/clang/Driver/Option.h
>>   include/clang/Driver/Options.h
>>   include/clang/Driver/Options.td
>>   lib/Driver/Arg.cpp
>>   lib/Driver/ArgList.cpp
>>   lib/Driver/CC1AsOptions.cpp
>>   lib/Driver/Driver.cpp
>>   lib/Driver/DriverOptions.cpp
>>   lib/Driver/OptTable.cpp
>>   lib/Driver/Option.cpp
>>   lib/Driver/Tools.cpp
>>   lib/Frontend/CompilerInvocation.cpp
>>   utils/TableGen/OptParserEmitter.cpp
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to