Skip to content

Commit

Permalink
Added some notes on the -triple and -arch options.
Browse files Browse the repository at this point in the history
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44554 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
tkremenek committed Dec 3, 2007
1 parent 87ce5d1 commit f4c45b0
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions NOTES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,47 @@ TODO: New language feature: Configuration queries:
- Use it to increase the number of "architecture-clean" #import'd files,
allowing a single index to be used for all fat slices.

//===---------------------------------------------------------------------===//
// Specifying targets: -triple and -arch
===---------------------------------------------------------------------===//

The clang supports "-triple" and "-arch" options. At most one -triple option may
be specified, while multiple -arch options can be specified. Both are optional.

The "selection of target" behavior is defined as follows:

(1) If the user does not specify -triple:

(a) If no -arch options are specified, the target triple used is the host
triple (in llvm/Config/config.h).

(b) If one or more -arch's are specified (and no -triple), then there is
one triple for each -arch, where the specified arch is substituted
for the arch in the host triple. Example:

host triple = i686-apple-darwin9
command: clang -arch ppc -arch ppc64 ...
triples used: ppc-apple-darwin9 ppc64-apple-darwin9

(2) The user does specify a -triple (only one allowed):

(a) If no -arch options are specified, the triple specified by -triple
is used. E.g clang -triple i686-apple-darwin9

(b) If one or more -arch options are specified, then the triple specified
by -triple is used as the primary target, and the arch's specified
by -arch are used to create secondary targets. For example:

clang -triple i686-apple-darwin9 -arch ppc -arch ppc64

has the following targets:

i686-apple-darwin9 (primary target)
ppc-apple-darwin9 (secondary target)
ppc64-apple-darwin9 (secondary target)

The secondary targets are used in the 'portability' model (see below).

//===---------------------------------------------------------------------===//

The 'portability' model in clang is sufficient to catch translation units (or
Expand Down

0 comments on commit f4c45b0

Please sign in to comment.