Skip to content

Commit 9390288

Browse files
committed
Merge branch 'master' into deploy
2 parents 2dc96f6 + 4955fc5 commit 9390288

File tree

6 files changed

+35
-21
lines changed

6 files changed

+35
-21
lines changed

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
build/output
21
__pycache__

README.md

+27-17
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,31 @@ Scripts I use to do continuous integration for linuxppc.
55

66
Still (and probably always) under heavy development.
77

8+
> [!NOTE]
9+
> The scripts notionally work with `docker` or `podman`, but they're only regularly tested with `podman` on Fedora.
10+
811
Quick start
912
-----------
1013

1114
Make sure you can run containers.
1215

13-
On Ubuntu the scripts will use `docker`, on Fedora they will use `podman`.
16+
On Fedora the scripts will use `podman`, on Ubuntu they use `docker`,
1417

1518
You need a Linux source tree, which hasn't been built in. You can make sure it's
1619
clean with `make mrproper`, or clone a fresh tree.
1720

18-
Clone this repo.
21+
Clone this repo. The examples use `~/ci-scripts` for brevity, but the repo can be located anywhere.
1922

2023
```
2124
$ cd ci-scripts
2225
$ cd build
23-
$ make pull-image@ppc64le@ubuntu
24-
$ make SRC=~/src/linux kernel@ppc64le@ubuntu JFACTOR=$(nproc)
26+
$ make pull-image@ppc64le@fedora
27+
$ make SRC=~/src/linux kernel@ppc64le@fedora JFACTOR=$(nproc)
2528
```
2629

27-
This will build you a `ppc64le_defconfig` using the latest Ubuntu toolchain.
30+
This will build you a `ppc64le_defconfig` using the latest Fedora toolchain.
2831

29-
The kernel will be in `output/ppc64le@ubuntu/ppc64le_defconfig/vmlinux`.
32+
The kernel will be in `~/ci/scripts/build/output/latest-kernel/vmlinux`.
3033

3134
For more help try `make help`.
3235

@@ -36,22 +39,27 @@ Building different defconfigs
3639
You can specify a defconfig with `DEFCONFIG`.
3740

3841
```
39-
$ make SRC=~/src/linux kernel@ppc64le@ubuntu DEFCONFIG=powernv_defconfig JFACTOR=$(nproc)
42+
$ make SRC=~/src/linux kernel@ppc64le@fedora DEFCONFIG=powernv_defconfig JFACTOR=$(nproc)
4043
```
4144

4245
Note that the subarch (eg. `ppc64le`) needs to match the defconfig, so to build
4346
`ppc64_defconfig`, use `ppc64`.
4447

4548
```
46-
$ make SRC=~/src/linux kernel@ppc64@ubuntu DEFCONFIG=ppc64_defconfig JFACTOR=$(nproc)
49+
$ make SRC=~/src/linux kernel@ppc64@fedora DEFCONFIG=ppc64_defconfig JFACTOR=$(nproc)
4750
```
4851

4952
Different toolchains
5053
--------------------
5154

5255
There are images for various toolchains, they are encoded in the distro name/version.
5356

57+
- `[email protected]`: kernel.org gcc 14.2.0, binutils 2.42
58+
- `[email protected]`: kernel.org gcc 14.1.0, binutils 2.42
59+
- `[email protected]`: kernel.org gcc 13.1.0, binutils 2.42
60+
- `[email protected]`: kernel.org gcc 13.1.0, binutils 2.41
5461
- `[email protected]`: kernel.org gcc 13.1.0, binutils 2.40
62+
- `[email protected]`: kernel.org gcc 12.3.0, binutils 2.42
5563
- `[email protected]`: kernel.org gcc 12.3.0, binutils 2.40
5664
- `[email protected]`: kernel.org gcc 12.2.0, binutils 2.39
5765
- `[email protected]`: kernel.org gcc 12.1.0, binutils 2.38
@@ -108,13 +116,13 @@ Other options
108116

109117
As mentioned above you pass the make -j factor with `JFACTOR=n`.
110118

111-
To run sparse use the `ubuntu` image and pass `SPARSE=2`.
119+
To run sparse use the `fedora` image and pass `SPARSE=2`.
112120

113121
```
114-
$ make SRC=~/src/linux kernel@ppc64le@ubuntu SPARSE=2 JFACTOR=$(nproc)
122+
$ make SRC=~/src/linux kernel@ppc64le@fedora SPARSE=2 JFACTOR=$(nproc)
115123
```
116124

117-
The log will be in eg. `output/ppc64le@ubuntu/ppc64le_defconfig/sparse.log`.
125+
The log will be in eg. `~/ci-scripts/build/output/latest-kernel/sparse.log`.
118126

119127
To only run sparse on files being recompiled, pass `SPARSE=1`.
120128

@@ -144,7 +152,7 @@ Building your own image
144152
If you don't want to pull an untrusted image, you can build it yourself with:
145153

146154
```
147-
$ make rebuild-image@ppc64le@ubuntu
155+
$ make rebuild-image@ppc64le@fedora
148156
```
149157

150158
Note that the build mounts the source tree read-only, so nothing it does can
@@ -166,17 +174,19 @@ $ cd ~/linux
166174
```
167175

168176
```
169-
$ make SRC=$PWD -C ~/ci-scripts/build QUIET=1 JFACTOR=$(nproc) ppctests@ppc64le@ubuntu@16.04 INSTALL=1
177+
$ make SRC=$PWD -C ~/ci-scripts/build QUIET=1 JFACTOR=$(nproc) ppctests@ppc64le@ubuntu@22.04 INSTALL=1
170178
```
171179

172-
:rotating_light: Using an old Ubuntu image uses an older libc, which is more
173-
likely to be present on the guest root filesystem. Another option is to build
174-
the selftests statically.
180+
> [!NOTE]
181+
> :rotating_light: Building the selftests with Ubuntu 22.04 uses glibc 2.35.
182+
> The default rootdisk uses glibc 2.36, so there should be no issue with missing
183+
> symbols in glibc. If using another root disk you may need to build with an older
184+
> Ubuntu image. Another option is to build the selftests statically.
175185
176186
Tar up the selftests into the current directory, the qemu scripts will detect them:
177187

178188
```
179-
$ tar -czf selftests.tar.gz -C $HOME/ci-scripts/build/output/selftests_powerpc@ppc64le@[email protected]/ install
189+
$ tar -czf selftests.tar.gz -C $HOME/ci-scripts/build/output/latest-selftests/ install
180190
```
181191

182192
```

build/Makefile

+4-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ endif
1717
1818

1919
FEDORA_DISTROS := fedora@${FEDORA_LATEST} fedora@39 fedora@38 fedora@37 fedora@36 fedora@35 fedora@34 fedora@33 fedora@31 fedora
20-
20+
21+
22+
23+
2124
ALL_DISTROS := ${UBUNTU_DISTROS} ${KORG_DISTROS} ${FEDORA_DISTROS}
2225
DOCS_DISTRO := docs@${UBUNTU_LATEST}
2326
X86_DISTROS := ubuntu@${UBUNTU_LATEST} ubuntu

build/output/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*
2+
!.gitignore

lib/qemu.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ def apply_defaults(self):
294294

295295
if self.prompt is None:
296296
# Default prompt for our root disks
297-
self.prompt = "/ #"
297+
self.prompt = "~ #"
298298

299299
if self.initrd is None and len(self.drives) == 0 and self.cloud_image is None:
300300
if self.compat_rootfs or self.qemu_cmd.endswith('qemu-system-ppc'):

root-disks/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ define wget
2323
endef
2424

2525
define wget_lbt
26-
$(call wget,$(1),"https://github.com/groeck/linux-build-test/blob/236ccac32e5c3538f2c8221b359225cc40925ba0/rootfs/$(2)?raw=true")
26+
$(call wget,$(1),"https://github.com/groeck/linux-build-test/blob/8891968937a86214dbddfdbd98e43a0519402a80/rootfs/$(2)?raw=true")
2727
endef
2828

2929
ppc64-rootfs.cpio.gz: ppc64-novsx-rootfs.cpio.gz

0 commit comments

Comments
 (0)