• Home
Name Date Size #Lines LOC

..--

INPUTS/07-May-2024-1,013915

bindings/07-May-2024-6,2484,501

cmake/07-May-2024-9273

docs/07-May-2024-32,44824,642

examples/07-May-2024-552364

include/07-May-2024-192,878113,265

lib/07-May-2024-697,882497,406

runtime/07-May-2024-457290

test/07-May-2024-762,618457,364

tools/07-May-2024-35,80827,164

unittests/07-May-2024-34,98529,078

utils/07-May-2024-14,57511,113

www/07-May-2024-25,07322,822

.arcconfigD07-May-202475 54

.clang-formatD07-May-202419 21

.clang-tidyD07-May-202446 21

.gitignoreD07-May-20241.4 KiB3632

Android.mkD07-May-20242.6 KiB125110

CMakeLists.txtD07-May-202425.8 KiB760649

CODE_OWNERS.TXTD07-May-20241.3 KiB5542

INSTALL.txtD07-May-20242.1 KiB4935

LICENSE.TXTD07-May-20242.7 KiB6448

MODULE_LICENSE_BSD_LIKED07-May-20240

MakefileD07-May-20243 KiB12572

ModuleInfo.txtD07-May-202496 65

NOTES.txtD07-May-20244.3 KiB11280

NOTICED07-May-20242.7 KiB6448

README.txtD07-May-20241.2 KiB2720

ReadmeAndroid.mdD07-May-20243.7 KiB10474

RenderScriptPrebuilts.mdD07-May-20243.1 KiB11380

ToolchainPrebuilts.mdD07-May-20245.9 KiB190129

build.pyD07-May-202416.2 KiB482356

clang-device-build.mkD07-May-20241.1 KiB4635

clang-host-build.mkD07-May-20241.3 KiB5742

clang-tblgen-rules.mkD07-May-202413.6 KiB249210

clang-version-inc.mkD07-May-20241.6 KiB3626

clang.mkD07-May-2024372 97

shared_clang.mkD07-May-20241.6 KiB7250

update-prebuilts.pyD07-May-20244.9 KiB171113

version.pyD07-May-202441 43

README.txt

1//===----------------------------------------------------------------------===//
2// C Language Family Front-end
3//===----------------------------------------------------------------------===//
4
5Welcome to Clang.  This is a compiler front-end for the C family of languages
6(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
7compiler infrastructure project.
8
9Unlike many other compiler frontends, Clang is useful for a number of things
10beyond just compiling code: we intend for Clang to be host to a number of
11different source-level tools.  One example of this is the Clang Static Analyzer.
12
13If you're interested in more (including how to build Clang) it is best to read
14the relevant web sites.  Here are some pointers:
15
16Information on Clang:              http://clang.llvm.org/
17Building and using Clang:          http://clang.llvm.org/get_started.html
18Clang Static Analyzer:             http://clang-analyzer.llvm.org/
19Information on the LLVM project:   http://llvm.org/
20
21If you have questions or comments about Clang, a great place to discuss them is
22on the Clang development mailing list:
23  http://lists.llvm.org/mailman/listinfo/cfe-dev
24
25If you find a bug in Clang, please file it in the LLVM bug tracker:
26  http://llvm.org/bugs/
27

ReadmeAndroid.md

1Android Clang/LLVM
2==================
3
4Platform Projects
5-----------------
6
7The LLVM toolchain is primarily composed of the following projects:
8
9* **external/clang**
10* **external/compiler-rt**
11* **external/llvm**
12
13Each of these projects has three important branches:
14
15* *aosp/master*
16
17  This is the branch that will be present in most platform trees. As such,
18  platform components that use clang or LLVM will build against the headers and
19  libraries in this branch.
20
21  This branch does not contain a full history. Updates to this are done via a
22  squashed merge from the *dev* branch. Aside from updates, patches usually
23  shouldn't be submitted to this branch. Any that are will need to be
24  cherry-picked to *dev*.
25
26* *aosp/dev*
27
28  The primary purpose of this branch is allowing us to decouple the platform
29  compilers from RenderScript and other platform components that depend on LLVM
30  libraries. This means we can update the platform compilers even if
31  RenderScript will need substantial modification for API changes.
32
33  Updates are performed in this branch, and the platform compilers are built
34  from this branch.
35
36* *aosp/upstream-master*
37
38  This branch is an automatically updated direct mirror of the upstream master
39  branch. This is a read only branch that is the merge source for updates to
40  *dev*.
41
42
43Development Flow
44----------------
45
46Rebases take place in the **aosp/llvm** tree. This tree is a manifest that uses
47the appropriate *dev* branches of each LLVM project and contains only the
48projects needed to build the platform compilers. Updates are done by merging
49from the *aosp/upstream-master* branch.
50
51Conflicts are resolved manually and then a patch is produced to adapt
52Android.mk files (as well as to add/delete any updated source files).
53Prebuilts are then generated using these projects and placed into the proper
54**prebuilts/clang/host** subprojects.
55
56The prebuilt projects contain multiple versions to make it easy to check in a
57new compiler that may not be ready to be enabled by default. Each new toolchain
58will add the following paths:
59
60    prebuilts/clang/host/linux-x86/clang-$BUILD_NUMBER
61    prebuilts/clang/host/darwin-x86/clang-$BUILD_NUMBER
62    prebuilts/clang/host/windows-x86/clang-$BUILD_NUMBER
63
64In order to prepare for the actual rebase (including updating dependent
65projects), we will copy each **external/** *aosp/dev* project to its
66corresponding **external/** *aosp/master* project as a squashed single CL.
67This makes rollbacks simpler, and it also reduces churn on the Android build
68servers.
69This also has the side effect of not spamming non-Android @google.com
70committers to upstream LLVM projects, since their commits will be batched up
71into a single copy commit on each tracked **external/** project.
72
73Prebuilts for llvm-rs-cc and bcc\_compat also need to be generated for
74**prebuilts/sdk**.
75This is done by running **frameworks/rs/update\_rs\_prebuilts.sh** on both Mac
76and Linux. This is done from the normal AOSP platform tree rather than the LLVM
77tree.
78After this completes, the **prebuilts/sdk** project will have a prepared
79branch/CL that can be uploaded for review/commit.
80
81
82Fixing Bugs
83-----------
84
85If we find a host-side bug that needs to be fixed, it may trigger an update of
86the host prebuilts (i.e. rebase).
87Device-side fixes can be pushed directly to **external/** *aosp/master* and then
88copied to **external/** *aosp/dev* to speed up the process (assuming that it
89doesn’t affect the host builds).
90
91
92Looking at Upstream
93-------------------
94
95The upstream repositories are automatically mirrored to the
96*aosp/upstream-master* branch. Update with `git fetch aosp upstream-master`.
97
98
99Guides for Updating Toolchains
100------------------------------
101
102* [Updating platform toolchains](ToolchainPrebuilts.md)
103* [Updating RenderScript prebuilts](RenderScriptPrebuilts.md)
104