1
1
# Instructions for updating to the latest LLVM/Clang sources
2
2
3
3
We are staying in sync with the upstream LLVM/Clang repository. The ` baseline `
4
- branch of the ` checkedc-clang ` repository is a pristine copy of LLVM/Clang
4
+ branch of the ` checkedc-llvm-project ` repository is a pristine copy of LLVM/Clang
5
5
sources, and the ` master ` branch contains LLVM/Clang sources plus the support
6
6
for Checked C language extensions. We periodically upgrade the ` baseline ` branch
7
7
and the ` master ` branch to the sources of the most recent releases from the
8
8
upstream LLVM/Clang repository.
9
9
10
- The branching and merging policies of the ` checkedc-clang ` repository are
10
+ The branching and merging policies of the ` checkedc-llvm-project ` repository are
11
11
aligned with the versioning and branching of upstream LLVM/Clang repository in
12
12
order to closely follow the LLVM/Clang releases. LLVM/Clang releases are
13
13
versioned as < ; major-version> ; .< ; minor-version> ; .< ; patch-version> ; .
@@ -19,13 +19,13 @@ is created. Bug fixes go on the release branch and only some of these bug fixes
19
19
get merged back into the ` main ` branch. Typically, LLVM/Clang makes two final
20
20
releases for each major version.
21
21
22
- Now we describe our approach for upgrading the ` checkedc-clang ` repository to
22
+ Now we describe our approach for upgrading the ` checkedc-llvm-project ` repository to
23
23
LLVM/Clang sources corresponding to the two releases for each major version,
24
24
for example, 12.0.0 and 12.0.1. The upgrade is performed in two phases as
25
25
described below. This description is followed by detailed instructions for each
26
26
phase.
27
27
28
- ** Phase 1** : We upgrade the ` master ` branch of the ` checkedc-clang ` repository
28
+ ** Phase 1** : We upgrade the ` master ` branch of the ` checkedc-llvm-project ` repository
29
29
up to the commit hash on the ` main ` branch of the LLVM/Clang repository at which
30
30
the branch ` release/12.x ` is created - we shall refer to this commit hash as
31
31
< ; branch-point-of-12-on-main> ; . We get this commit hash by executing the
@@ -35,10 +35,10 @@ needs to be the full commit hash and not just the 7-digit abbreviation. This
35
35
phase constitutes the major portion of the developer effort towards the merge.
36
36
37
37
** Phase 2** : We create a branch called ` release_12.x ` off the ` master ` branch in
38
- the ` checkedc-clang ` repository. Then there are two sub-phases:
38
+ the ` checkedc-llvm-project ` repository. Then there are two sub-phases:
39
39
- When we wish to make a Checked C compiler release based on the 12.0.0
40
40
release of LLVM/Clang:
41
- - We first upgrade the ` release_12.x ` branch (of the ` checkedc-clang `
41
+ - We first upgrade the ` release_12.x ` branch (of the ` checkedc-llvm-project `
42
42
repository) to the sources corresponding to the 12.0.0 release on the
43
43
` release/12.x ` branch of the LLVM/Clang repository.
44
44
- Next, we merge Checked C features and bug fixes from the ` master ` branch
@@ -47,7 +47,7 @@ the `checkedc-clang` repository. Then there are two sub-phases:
47
47
branch.
48
48
- When we wish to make a Checked C compiler release based on the 12.0.1
49
49
release of LLVM/Clang:
50
- - We upgrade the same ` release_12.x ` branch (of the ` checkedc-clang `
50
+ - We upgrade the same ` release_12.x ` branch (of the ` checkedc-llvm-project `
51
51
repository) to the sources corresponding to the 12.0.1 release on the
52
52
` release/12.x ` branch of the LLVM/Clang repository.
53
53
- Next, we merge Checked C features and bug fixes from the ` master ` branch
@@ -66,7 +66,7 @@ be interspersed with Checked C development on the `master` branch.
66
66
67
67
## Detailed Instructions - Phase 1
68
68
69
- 1 . Create a new branch off the ` baseline ` branch in the ` checkedc-clang `
69
+ 1 . Create a new branch off the ` baseline ` branch in the ` checkedc-llvm-project `
70
70
repository. Let us call this new branch ` updated_baseline ` .
71
71
```
72
72
git checkout -b updated_baseline baseline
@@ -92,7 +92,7 @@ branch.
92
92
```
93
93
git checkout -b updated_baseline_master_12 baseline
94
94
```
95
- 6 . Merge the ` master ` branch of the checkedc-clang repository into the
95
+ 6 . Merge the ` master ` branch of the checkedc-llvm-project repository into the
96
96
` updated_baseline_master_12 ` branch. This merge may cause several merge
97
97
conflicts and test case failures. After the merge command, git may suggest to
98
98
you to set ` merge.renamelimit ` to a specific value. It is a good idea to set it
@@ -144,7 +144,7 @@ We give the instructions for the first sub-phase of Phase 2. Similar steps
144
144
have to be followed for the other sub-phase.
145
145
146
146
1 . Create a new branch, called ` release_12.x ` , from the ` master ` branch in the
147
- ` checkedc-clang ` repository. If the branch already exists, then merge the
147
+ ` checkedc-llvm-project ` repository. If the branch already exists, then merge the
148
148
` master ` branch into it. Resolve merge conflicts and test failures if any.
149
149
```
150
150
git checkout -b release_12.x master
@@ -209,7 +209,7 @@ on GitHub. Just push the branches up to GitHub.
209
209
2 . While resolving merge conflicts, it is a good idea to have three reference
210
210
code snapshots to perform diffs of individual files to help distinguish between
211
211
checkedc-specific changes and llvm-11-to-12 changes:
212
- - The ` master ` branch of the ` checkedc-clang ` repository at the commit hash
212
+ - The ` master ` branch of the ` checkedc-llvm-project ` repository at the commit hash
213
213
which was merged into ` updated_baseline_master_12 ` .
214
214
- The pristine LLVM/Clang source at < ; branch-point-of-11-on-main> ;
215
215
- The pristine LLVM/Clang source at < ; branch-point-of-12-on-main> ;
0 commit comments