[cfe-dev] Distinguishing between clang Window versions

Nikola Smiljanic popizdeh at gmail.com
Sun Jul 13 17:29:46 PDT 2014


Yeah, I think this documents internal options.

1. Driver uses -target, frontend (clang -cc1) uses -triple. Frontend seems
to understand '--option=' form but driver doesn't.

2. That's why I said that we could do better, these are defined in
Tripple.h and looking them up in there would be your best bet.

3. I'm guessing historical reasons, I think that abi part was introduced
not too long ago. You pass i386-pc-win32 to the driver and it turns it into
i386-pc-win32-msvc before passing it to frontend, you can observe these
with -###.

4. I agree, and patches for documentation would be very welcome.


On Mon, Jul 14, 2014 at 9:42 AM, Edward Diener <
eldlistmailingz at tropicsoft.com> wrote:

> On 7/13/2014 6:23 PM, Nikola Smiljanic wrote:
>
>> It's documented to some extent
>> http://clang.llvm.org/docs/CrossCompilation.html#target-triple but we
>> could probably do better here.
>>
>
> The doc you cite is very different from the 'clang --help' doc:
>
> 1) In the "clang --help" it gives the target option as "--target=<value>
> but the doc shows the target option as "-target value". Do all options take
> the duplicate form, ie. "--option=value" or "-option value" ?
>
> 2) The targets given in the original answer below start with "i386" but
> the <arch> part of the doc specifies only "x86, arm, thumb, mips".
>
> 3) Why is the form called a "Target Triple" when it has a maximum 4 parts ?
>
> 4) All the valid possibilities for each part should be documented, with an
> explanation, else you are asking the end-user to play guessing games or be
> a mind-reader. Writing etc. does not explain anything in the doc.
>
>
>>
>> On Mon, Jul 14, 2014 at 4:41 AM, Edward Diener
>> <eldlistmailingz at tropicsoft.com
>> <mailto:eldlistmailingz at tropicsoft.com>> wrote:
>>
>>     On 7/8/2014 11:13 AM, Nico Weber wrote:
>>
>>         On Tue, Jul 8, 2014 at 6:54 AM, Edward Diener
>>         <eldlistmailingz at tropicsoft.__com
>>         <mailto:eldlistmailingz at tropicsoft.com>
>>         <mailto:eldlistmailingz at __tropicsoft.com
>>         <mailto:eldlistmailingz at tropicsoft.com>>>
>>         wrote:
>>
>>              Since the two versions for clang on Windows, one using VC++
>>         RTL and
>>              emulating VC++ to some small extent and the other using
>>         mingw rtl,
>>              are radically different, is there any easy way to distinguish
>>              between them at pre-execution time.
>>
>>              In Boost Build we currently have a single toolset named
>>         'clang' for
>>              the clang compiler. On Linux it uses a clang-linux.jam
>>         file, on the
>>              Mac it uses a clang-darwin.jam file, and I am trying to
>>         establish
>>              .jam files for using clang on Windows. Essentially I can
>>         use the
>>              clang-linux.jam file with a slight modification if the
>>         clang version
>>              uses mingw, but I need to use a clang-win.jam file if the
>> clang
>>              version uses VC++. So somewhere early in the Boost Build
>>         processing
>>              I have to determine which 'clang.exe' is being used on
>>         Windows in
>>              order to invoke the proper Boost Build jam file for it.
>>
>>
>>         It's not really to different clang binaries as far as I know,
>>         just the
>>         same binary with a different default triple. So you could pass an
>>         explicit -target parameter to force one compiler behavior over
>>         the other
>>         too. (-target i386-pc-win32 for VC mode, -target i386-pc-mingw32
>>         for gcc
>>         mode)
>>
>>
>>     When using clang --help I see:
>>
>>       --target=<value>        Generate code for the given target
>>
>>     Is this the target option ( note the -- ) that can be passed to
>>     clang to change to either VC mode or gcc mode ? If so, are these two
>>     values you specify above ( "i386-pc-win32" or "i386-pc-mingw32" )
>>     documented anywhere ? If this is not the target option you have
>>     mentioned, is that target option ( maybe with a single - )
>>     documented anywhere ?
>>
>>
>>     _________________________________________________
>>
>>     cfe-dev mailing list
>>     cfe-dev at cs.uiuc.edu
>>     <mailto:cfe-dev at cs.uiuc.edu>
>>     http://lists.cs.uiuc.edu/__mailman/listinfo/cfe-dev
>>     <http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev>
>>
>>
>>
>>
>>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140714/eefda967/attachment.html>


More information about the cfe-dev mailing list