• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

INPUTS/22-Nov-2023-1,013915

bindings/22-Nov-2023-6,4504,659

cmake/22-Nov-2023-464378

docs/22-Nov-2023-33,98225,746

examples/22-Nov-2023-564400

include/22-Nov-2023-203,936120,727

lib/22-Nov-2023-773,169552,172

runtime/22-Nov-2023-154132

soong/22-Nov-2023-257190

test/22-Nov-2023-895,680512,974

tools/22-Nov-2023-41,85531,990

unittests/22-Nov-2023-39,45733,011

utils/22-Nov-2023-15,97412,192

www/22-Nov-2023-26,14823,890

.arcconfigD22-Nov-202376 54

.clang-formatD22-Nov-202319 21

.clang-tidyD22-Nov-2023579 1312

.gitD01-Jan-19700

.gitignoreD22-Nov-20231.4 KiB3834

Android.bpD22-Nov-20236 KiB254226

Android.mkD22-Nov-20231.9 KiB9886

CMakeLists.txtD22-Nov-202322.2 KiB648548

CODE_OWNERS.TXTD22-Nov-20231.4 KiB5945

INSTALL.txtD22-Nov-20232.1 KiB4935

LICENSE.TXTD22-Nov-20232.7 KiB6448

MODULE_LICENSE_BSD_LIKED22-Nov-20230

ModuleInfo.txtD22-Nov-202396 65

NOTES.txtD22-Nov-20234.3 KiB11280

NOTICED22-Nov-20232.7 KiB6448

OWNERSD22-Nov-2023178 76

README.txtD22-Nov-20231.2 KiB2720

README.versionD22-Nov-2023132 54

ReadmeAndroid.mdD22-Nov-20234.1 KiB11480

RenderScriptPrebuilts.mdD22-Nov-20233.5 KiB11985

ToolchainPrebuilts.mdD22-Nov-20236.4 KiB204137

build.pyD22-Nov-202325.7 KiB746547

clang-version-inc.pyD22-Nov-2023693 2820

clang.mkD22-Nov-2023163 53

compiler_wrapperD22-Nov-2023587 3221

update-prebuilts.pyD22-Nov-20235.5 KiB191126

version.pyD22-Nov-202341 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

README.version

1URL: http://llvm.org/git/clang.git
2Version: Rolling from upstream + cherry-picks
3BugComponent: 117395
4Owners: srhines, android-llvm
5

ReadmeAndroid.md

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