X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FGettingStarted.html;h=0a6a4811880ebc2145514e8abb955d3e9807cd7f;hb=39fe397421a23ea44e19b991e64b04f335f7bde6;hp=d608a1370be8f31b31a4a79de4bd2cff3f95810b;hpb=343c3a5005fd354aa84e7dbebd663f4fd5011a82;p=oota-llvm.git diff --git a/docs/GettingStarted.html b/docs/GettingStarted.html index d608a1370be..0a6a4811880 100644 --- a/docs/GettingStarted.html +++ b/docs/GettingStarted.html @@ -516,9 +516,8 @@ href="GCCFEBuildInstrs.html">try to compile it on your platform.

LLVM is very demanding of the host C++ compiler, and as such tends to expose bugs in the compiler. In particular, several versions of GCC crash when trying -to compile LLVM. We routinely use GCC 3.3.3, 3.4.0, and Apple 4.0.1 -successfully with them (however, see important notes below). Other versions -of GCC will probably work as well. GCC versions listed +to compile LLVM. We routinely use GCC 4.2 (and higher) or Clang. +Other versions of GCC will probably work as well. GCC versions listed here are known to not work. If you are using one of these versions, please try to upgrade your GCC to something more recent. If you run into a problem with a version of GCC not listed here, please let @@ -802,23 +801,108 @@ instructions to successfully get and build the LLVM GCC front-end.

now mirrors reflect only trunk for each project. You can do the read-only GIT clone of LLVM via:

-
+
 git clone http://llvm.org/git/llvm.git
 

If you want to check out clang too, run:

-
+
 git clone http://llvm.org/git/llvm.git
 cd llvm/tools
 git clone http://llvm.org/git/clang.git
 
+

+Since the upstream repository is in Subversion, you should use +"git pull --rebase" +instead of "git pull" to avoid generating a non-linear +history in your clone. +To configure "git pull" to pass --rebase by default +on the master branch, run the following command: +

+ +
+git config branch.master.rebase true
+
+ +

Sending patches with Git

+
+

+Please read Developer Policy, too. +

+ +

+Assume master points the upstream and mybranch points your +working branch, and mybranch is rebased onto master. +At first you may check sanity of whitespaces: +

+ +
+git diff --check master..mybranch
+
+ +

+The easiest way to generate a patch is as below: +

+ +
+git diff master..mybranch > /path/to/mybranch.diff
+
+ +

+It is a little different from svn-generated diff. git-diff-generated diff has +prefixes like a/ and b/. Don't worry, most developers might +know it could be accepted with patch -p1 -N. +

+ +

+But you may generate patchset with git-format-patch. It generates +by-each-commit patchset. To generate patch files to attach to your article: +

+ +
+git format-patch --no-attach master..mybranch -o /path/to/your/patchset
+
+ +

+If you would like to send patches directly, you may use git-send-email or +git-imap-send. Here is an example to generate the patchset in Gmail's [Drafts]. +

+ +
+git format-patch --attach master..mybranch --stdout | git imap-send
+
+ +

+Then, your .git/config should have [imap] sections. +

+ +
+[imap]
+        host = imaps://imap.gmail.com
+        user = your.gmail.account@gmail.com
+        pass = himitsu!
+        port = 993
+        sslverify = false
+; in English
+        folder = "[Gmail]/Drafts"
+; example for Japanese, "Modified UTF-7" encoded.
+        folder = "[Gmail]/&Tgtm+DBN-"
+; example for Traditional Chinese
+        folder = "[Gmail]/&g0l6Pw-"
+
+ +
+ +

For developers to work with git-svn

+
+

To set up clone from which you can submit code using git-svn, run:

-
-git clone http://llvm.org/git/llvm
+
+git clone http://llvm.org/git/llvm.git
 cd llvm
 git svn init https://llvm.org/svn/llvm-project/llvm/trunk --username=<username>
 git config svn-remote.svn.fetch :refs/remotes/origin/master
@@ -826,7 +910,7 @@ git svn rebase -l  # -l avoids fetching ahead of the git mirror.
 
 # If you have clang too:
 cd tools
-git clone http://llvm.org/git/clang.git clang
+git clone http://llvm.org/git/clang.git
 cd clang
 git svn init https://llvm.org/svn/llvm-project/cfe/trunk --username=<username>
 git config svn-remote.svn.fetch :refs/remotes/origin/master
@@ -836,7 +920,7 @@ git svn rebase -l
 

To update this clone without generating git-svn tags that conflict with the upstream git repo, run:

-
+
 git fetch && (cd tools/clang && git fetch)  # Get matching revisions of both trees.
 git checkout master
 git svn rebase -l
@@ -856,13 +940,15 @@ branches and dcommit. When that happens, git svn
 dcommit stops working, complaining about files with uncommitted
 changes. The fix is to rebuild the metadata:

-
+
 rm -rf .git/svn
 git svn rebase -l
 
+ +

Install the GCC Front End @@ -1417,13 +1503,9 @@ different tools.

at runtime in both interpreted and JIT compiled fashions.
llvm/lib/Support/
-
This directory contains the source code that corresponds to the header - files located in llvm/include/Support/.
- - -
llvm/lib/System/
-
This directory contains the operating system abstraction layer that - shields LLVM from platform-specific coding.
+
This directory contains the source code that corresponds to the header + files located in llvm/include/ADT/ + and llvm/include/Support/.
@@ -1510,16 +1592,6 @@ information is in the Command Guide.

href="HowToSubmitABug.html">HowToSubmitABug.html for more information on using bugpoint. -
llvmc
-
The LLVM Compiler Driver. This program can - be configured to utilize both LLVM and non-LLVM compilation tools to enable - pre-processing, translation, optimization, assembly, and linking of programs - all from one command line. llvmc also takes care of processing the - dependent libraries found in bitcode. This reduces the need to get the - traditional -l<name> options right on the command line. Please - note that this tool, while functional, is still experimental and not feature - complete.
-
llvm-ar
The archiver produces an archive containing the given LLVM bitcode files, optionally with an index for faster @@ -1535,9 +1607,9 @@ information is in the Command Guide.

llvm-ld
llvm-ld is a general purpose and extensible linker for LLVM. - This is the linker invoked by llvmc. It performs standard link time - optimizations and allows optimization modules to be loaded and run so that - language specific optimizations can be applied at link time.
+ It performs standard link time optimizations and allows optimization + modules to be loaded and run so that language specific optimizations can + be applied at link time.
llvm-link
llvm-link, not surprisingly, links multiple LLVM modules into