Skip to content

feat(24.04): add cpp slices for s390x ppc64le - #1091

Merged
lczyk merged 12 commits into
canonical:ubuntu-24.04from
alesancor1:feat/cpp-s390x-ppc64le-24.04
Jul 29, 2026
Merged

lczyk merged 12 commits into
canonical:ubuntu-24.04from
alesancor1:feat/cpp-s390x-ppc64le-24.04

Conversation

@alesancor1

@alesancor1 alesancor1 commented Jul 25, 2026 •

Copy link
Copy Markdown
Member

Proposed changes

  • Add cpp slices for s390x and ppc64le

Related issues/PRs

Part of:

Checklist

@github-actions

github-actions Bot commented Jul 25, 2026 •

Copy link
Copy Markdown

Test Coverage

Average Total Coverage: 45.83%


Arch: aarch64

Coverage: 45.83%

cpp-13-aarch64-linux-gnu: ☂️ 100.00% (0 missing)
cpp-13-powerpc64le-linux-gnu: ☂️ 100.00% (0 missing)
cpp-13-s390x-linux-gnu: ☂️ 100.00% (0 missing)
cpp-13-x86-64-linux-gnu: ☂️ 100.00% (0 missing)
cpp-aarch64-linux-gnu: 🌂 0.00% (2 missing)
cpp-aarch64-linux-gnu_cc1
cpp-aarch64-linux-gnu_copyright
cpp-powerpc64le-linux-gnu: 🌂 0.00% (2 missing)
cpp-powerpc64le-linux-gnu_cc1
cpp-powerpc64le-linux-gnu_copyright
cpp-s390x-linux-gnu: 🌂 0.00% (2 missing)
cpp-s390x-linux-gnu_cc1
cpp-s390x-linux-gnu_copyright
cpp-x86-64-linux-gnu: 🌂 0.00% (2 missing)
cpp-x86-64-linux-gnu_cc1
cpp-x86-64-linux-gnu_copyright
gcc-13-aarch64-linux-gnu-base: 🌂 0.00% (2 missing)
gcc-13-aarch64-linux-gnu-base_cc1
gcc-13-aarch64-linux-gnu-base_copyright
gcc-13-powerpc64le-linux-gnu-base: 🌂 50.00% (1 missing)
gcc-13-powerpc64le-linux-gnu-base_cc1
gcc-13-s390x-linux-gnu-base: 🌂 50.00% (1 missing)
gcc-13-s390x-linux-gnu-base_cc1
gcc-13-x86-64-linux-gnu-base: 🌂 50.00% (1 missing)
gcc-13-x86-64-linux-gnu-base_cc1

Arch: ppc64le

Coverage: 45.83%

cpp-13-aarch64-linux-gnu: ☂️ 100.00% (0 missing)
cpp-13-powerpc64le-linux-gnu: ☂️ 100.00% (0 missing)
cpp-13-s390x-linux-gnu: ☂️ 100.00% (0 missing)
cpp-13-x86-64-linux-gnu: ☂️ 100.00% (0 missing)
cpp-aarch64-linux-gnu: 🌂 0.00% (2 missing)
cpp-aarch64-linux-gnu_cc1
cpp-aarch64-linux-gnu_copyright
cpp-powerpc64le-linux-gnu: 🌂 0.00% (2 missing)
cpp-powerpc64le-linux-gnu_cc1
cpp-powerpc64le-linux-gnu_copyright
cpp-s390x-linux-gnu: 🌂 0.00% (2 missing)
cpp-s390x-linux-gnu_cc1
cpp-s390x-linux-gnu_copyright
cpp-x86-64-linux-gnu: 🌂 0.00% (2 missing)
cpp-x86-64-linux-gnu_cc1
cpp-x86-64-linux-gnu_copyright
gcc-13-aarch64-linux-gnu-base: 🌂 50.00% (1 missing)
gcc-13-aarch64-linux-gnu-base_cc1
gcc-13-powerpc64le-linux-gnu-base: 🌂 0.00% (2 missing)
gcc-13-powerpc64le-linux-gnu-base_cc1
gcc-13-powerpc64le-linux-gnu-base_copyright
gcc-13-s390x-linux-gnu-base: 🌂 50.00% (1 missing)
gcc-13-s390x-linux-gnu-base_cc1
gcc-13-x86-64-linux-gnu-base: 🌂 50.00% (1 missing)
gcc-13-x86-64-linux-gnu-base_cc1

Arch: s390x

Coverage: 45.83%

cpp-13-aarch64-linux-gnu: ☂️ 100.00% (0 missing)
cpp-13-powerpc64le-linux-gnu: ☂️ 100.00% (0 missing)
cpp-13-s390x-linux-gnu: ☂️ 100.00% (0 missing)
cpp-13-x86-64-linux-gnu: ☂️ 100.00% (0 missing)
cpp-aarch64-linux-gnu: 🌂 0.00% (2 missing)
cpp-aarch64-linux-gnu_cc1
cpp-aarch64-linux-gnu_copyright
cpp-powerpc64le-linux-gnu: 🌂 0.00% (2 missing)
cpp-powerpc64le-linux-gnu_cc1
cpp-powerpc64le-linux-gnu_copyright
cpp-s390x-linux-gnu: 🌂 0.00% (2 missing)
cpp-s390x-linux-gnu_cc1
cpp-s390x-linux-gnu_copyright
cpp-x86-64-linux-gnu: 🌂 0.00% (2 missing)
cpp-x86-64-linux-gnu_cc1
cpp-x86-64-linux-gnu_copyright
gcc-13-aarch64-linux-gnu-base: 🌂 50.00% (1 missing)
gcc-13-aarch64-linux-gnu-base_cc1
gcc-13-powerpc64le-linux-gnu-base: 🌂 50.00% (1 missing)
gcc-13-powerpc64le-linux-gnu-base_cc1
gcc-13-s390x-linux-gnu-base: 🌂 0.00% (2 missing)
gcc-13-s390x-linux-gnu-base_cc1
gcc-13-s390x-linux-gnu-base_copyright
gcc-13-x86-64-linux-gnu-base: 🌂 50.00% (1 missing)
gcc-13-x86-64-linux-gnu-base_cc1

Arch: x86_64

Coverage: 45.83%

cpp-13-aarch64-linux-gnu: ☂️ 100.00% (0 missing)
cpp-13-powerpc64le-linux-gnu: ☂️ 100.00% (0 missing)
cpp-13-s390x-linux-gnu: ☂️ 100.00% (0 missing)
cpp-13-x86-64-linux-gnu: ☂️ 100.00% (0 missing)
cpp-aarch64-linux-gnu: 🌂 0.00% (2 missing)
cpp-aarch64-linux-gnu_cc1
cpp-aarch64-linux-gnu_copyright
cpp-powerpc64le-linux-gnu: 🌂 0.00% (2 missing)
cpp-powerpc64le-linux-gnu_cc1
cpp-powerpc64le-linux-gnu_copyright
cpp-s390x-linux-gnu: 🌂 0.00% (2 missing)
cpp-s390x-linux-gnu_cc1
cpp-s390x-linux-gnu_copyright
cpp-x86-64-linux-gnu: 🌂 0.00% (2 missing)
cpp-x86-64-linux-gnu_cc1
cpp-x86-64-linux-gnu_copyright
gcc-13-aarch64-linux-gnu-base: 🌂 50.00% (1 missing)
gcc-13-aarch64-linux-gnu-base_cc1
gcc-13-powerpc64le-linux-gnu-base: 🌂 50.00% (1 missing)
gcc-13-powerpc64le-linux-gnu-base_cc1
gcc-13-s390x-linux-gnu-base: 🌂 50.00% (1 missing)
gcc-13-s390x-linux-gnu-base_cc1
gcc-13-x86-64-linux-gnu-base: 🌂 0.00% (2 missing)
gcc-13-x86-64-linux-gnu-base_cc1
gcc-13-x86-64-linux-gnu-base_copyright

@alesancor1
alesancor1 marked this pull request as ready for review July 25, 2026 13:50
lczyk added 2 commits July 27, 2026 15:15
matches the form merged on ubuntu-26.04. the pre-existing x86-64 and
aarch64 files get the same annotation so all four read consistently.
the cpp-13 packages now reference their native arch's gcc-13-*-linux-gnu-base copyright directly, falling back to generic gcc-13-base for foreign architectures. new arch-specific base slices satisfy the copyright essentials on their native host, avoiding symlink assumptions in cross-compiled contexts.

@lczyk lczyk left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i've fixed some tiny nitpicks / copyright which we've already established in other PRs. other than that i think it's good. well, other than the missing FP ofc

@lczyk
lczyk requested a review from zhijie-yang July 27, 2026 14:46
@lczyk lczyk mentioned this pull request Jul 27, 2026
3 tasks done
@alesancor1

Copy link
Copy Markdown
Member Author

i've fixed some tiny nitpicks / copyright which we've already established in other PRs. other than that i think it's good. well, other than the missing FP ofc

The FP was merged already: #1045

@lczyk

lczyk commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

The FP was merged already: #1045

as discussed, i mean FP of the versioned packages aka cpp-13

@zhijie-yang

Copy link
Copy Markdown
Collaborator

Minor / non-blocking consistency note: the sibling files slices/gcc-13.yaml and slices/binutils.yaml include the comment # Note: v3-essential only works for chisel>=1.3.0 above each v3-essential block. The modified cpp-13-*.yaml copyright blocks introduce v3-essential without that comment. Consider adding it for consistency and maintainability. Not a functional issue.

lczyk added a commit that referenced this pull request Oct 8, 2026
* feat(26.04): add cpp-13 slices for s390x and ppc64le

Forward port of #1091 from ubuntu-24.04, rewritten for chisel format v3.

The /usr/share/doc entry of a cpp-13-<triplet> package is a symlink whose
target depends on how that package was built: gcc-13-base for the native
build, gcc-13-<triplet>-base for the cross builds. The copyright slices
are keyed by architecture accordingly, and the four gcc-13-<triplet>-base
packages get copyright slices of their own.

* test(26.04): add integration tests for cpp-13 on s390x and ppc64le

The existing cpp-13 tests also learn about the two new spread runners, on
which they are cross-compilation cases.

* docs(26.04): mark cpp-13 copyright paths as symlinks

Matches the marker the binutils and cpp-15 slices carry, and makes it
clear the entry is not the directory it looks like.

* test(26.04): fix dynamic linker lookup in the cpp-13 tests

The ld-linux-*.so.* glob matches nothing on ppc64el and s390x, whose
loaders are ld64.so.2 and ld64.so.1. Use the same lookup #1090 gave the
binutils tests, so all four cpp-13 suites agree.

Nothing was failing: the value is only consumed on the native-architecture
path, which never runs on those two runners.

* fix(libc6-dev): omit absent s390x headers

The s390x libc6-dev package no longer ships gnu/lib-names-64.h or
gnu/stubs-64.h. Restrict those entries to amd64 while retaining the
generic headers, restoring s390x slice installation on Ubuntu 26.10.

---------

Co-authored-by: Zhijie Yang <[email protected]>
lczyk added a commit that referenced this pull request Oct 11, 2026
* feat(26.04): add cpp-13 slices for s390x and ppc64le

Forward port of #1091 from ubuntu-24.04, rewritten for chisel format v3.

The /usr/share/doc entry of a cpp-13-<triplet> package is a symlink whose
target depends on how that package was built: gcc-13-base for the native
build, gcc-13-<triplet>-base for the cross builds. The copyright slices
are keyed by architecture accordingly, and the four gcc-13-<triplet>-base
packages get copyright slices of their own.

* test(26.04): add integration tests for cpp-13 on s390x and ppc64le

The existing cpp-13 tests also learn about the two new spread runners, on
which they are cross-compilation cases.

* docs(26.04): mark cpp-13 copyright paths as symlinks

Matches the marker the binutils and cpp-15 slices carry, and makes it
clear the entry is not the directory it looks like.

* test(26.04): fix dynamic linker lookup in the cpp-13 tests

The ld-linux-*.so.* glob matches nothing on ppc64el and s390x, whose
loaders are ld64.so.2 and ld64.so.1. Use the same lookup #1090 gave the
binutils tests, so all four cpp-13 suites agree.

Nothing was failing: the value is only consumed on the native-architecture
path, which never runs on those two runners.
lczyk added a commit that referenced this pull request Oct 12, 2026
* feat(26.04): add cpp-13 slices for s390x and ppc64le

Forward port of #1091 from ubuntu-24.04, rewritten for chisel format v3.

The /usr/share/doc entry of a cpp-13-<triplet> package is a symlink whose
target depends on how that package was built: gcc-13-base for the native
build, gcc-13-<triplet>-base for the cross builds. The copyright slices
are keyed by architecture accordingly, and the four gcc-13-<triplet>-base
packages get copyright slices of their own.

* test(26.04): add integration tests for cpp-13 on s390x and ppc64le

The existing cpp-13 tests also learn about the two new spread runners, on
which they are cross-compilation cases.

* docs(26.04): mark cpp-13 copyright paths as symlinks

Matches the marker the binutils and cpp-15 slices carry, and makes it
clear the entry is not the directory it looks like.

* test(26.04): fix dynamic linker lookup in the cpp-13 tests

The ld-linux-*.so.* glob matches nothing on ppc64el and s390x, whose
loaders are ld64.so.2 and ld64.so.1. Use the same lookup #1090 gave the
binutils tests, so all four cpp-13 suites agree.

Nothing was failing: the value is only consumed on the native-architecture
path, which never runs on those two runners.

* fix(26.04): dangling gcc-13 copyright on cross arches

Same bug and same fix as the cpp-13 slices this branch builds on: the
/usr/share/doc entry of a gcc-13-<triplet> package is a symlink to
gcc-13-base for the native build and to gcc-13-<triplet>-base for the
cross builds, so pulling gcc-13-base unconditionally left it dangling
everywhere but on the native architecture.

Depends on the gcc-13-<triplet>-base slices added by the cpp-13 branch.

* test(26.04): run the gcc-13 tests on the s390x and ppc64le runners

Both suites bailed out with "Unsupported architecture" there, which fails
outright now that a change to these slices schedules them on all four
runners. The arch lists match what gcc-15 already carries.

* docs(26.04): align the gcc-13 slice notes with gcc-15

Three generations of these slices each spelled the same guidance
differently. Adopt the wording gcc-15 carries.

* feat(26.04): add gcc-13 slices for s390x and ppc64le

Forward port of the remaining half of #1092. The two new triplet slices
follow gcc-15's, including the per-architecture copyright split the rest of
this branch applies to the existing two.

gcc-13.yaml gains the matching cc1 and gcc-13 entries, so gcc-13_gcc-13 --
the architecture-independent slice that carries /usr/bin/gcc-13 along with
an assembler, a linker and cc1 -- resolves on all four architectures rather
than only amd64 and arm64.

* test(26.04): add integration tests for gcc-13 on s390x and ppc64le

Copies of the gcc-15 suites, which already cover these two runners.

* test(26.04): drop the chisel_arch workaround from the gcc-13 test

Obsolete since canonical/chisel#256, and its Unsupported architecture
fallback fails outright on the s390x and ppc64le runners -- which a change
to gcc-13.yaml now schedules. Same shape the gcc-15 test already has.
lczyk added a commit that referenced this pull request Oct 12, 2026
* feat(26.04): add cpp-13 slices for s390x and ppc64le

Forward port of #1091 from ubuntu-24.04, rewritten for chisel format v3.

The /usr/share/doc entry of a cpp-13-<triplet> package is a symlink whose
target depends on how that package was built: gcc-13-base for the native
build, gcc-13-<triplet>-base for the cross builds. The copyright slices
are keyed by architecture accordingly, and the four gcc-13-<triplet>-base
packages get copyright slices of their own.

* test(26.04): add integration tests for cpp-13 on s390x and ppc64le

The existing cpp-13 tests also learn about the two new spread runners, on
which they are cross-compilation cases.

* docs(26.04): mark cpp-13 copyright paths as symlinks

Matches the marker the binutils and cpp-15 slices carry, and makes it
clear the entry is not the directory it looks like.

* test(26.04): fix dynamic linker lookup in the cpp-13 tests

The ld-linux-*.so.* glob matches nothing on ppc64el and s390x, whose
loaders are ld64.so.2 and ld64.so.1. Use the same lookup #1090 gave the
binutils tests, so all four cpp-13 suites agree.

Nothing was failing: the value is only consumed on the native-architecture
path, which never runs on those two runners.

* fix(26.04): dangling gcc-13 copyright on cross arches

Same bug and same fix as the cpp-13 slices this branch builds on: the
/usr/share/doc entry of a gcc-13-<triplet> package is a symlink to
gcc-13-base for the native build and to gcc-13-<triplet>-base for the
cross builds, so pulling gcc-13-base unconditionally left it dangling
everywhere but on the native architecture.

Depends on the gcc-13-<triplet>-base slices added by the cpp-13 branch.

* test(26.04): run the gcc-13 tests on the s390x and ppc64le runners

Both suites bailed out with "Unsupported architecture" there, which fails
outright now that a change to these slices schedules them on all four
runners. The arch lists match what gcc-15 already carries.

* docs(26.04): align the gcc-13 slice notes with gcc-15

Three generations of these slices each spelled the same guidance
differently. Adopt the wording gcc-15 carries.

* feat(26.04): add gcc-13 slices for s390x and ppc64le

Forward port of the remaining half of #1092. The two new triplet slices
follow gcc-15's, including the per-architecture copyright split the rest of
this branch applies to the existing two.

gcc-13.yaml gains the matching cc1 and gcc-13 entries, so gcc-13_gcc-13 --
the architecture-independent slice that carries /usr/bin/gcc-13 along with
an assembler, a linker and cc1 -- resolves on all four architectures rather
than only amd64 and arm64.

* test(26.04): add integration tests for gcc-13 on s390x and ppc64le

Copies of the gcc-15 suites, which already cover these two runners.

* test(26.04): drop the chisel_arch workaround from the gcc-13 test

Obsolete since canonical/chisel#256, and its Unsupported architecture
fallback fails outright on the s390x and ppc64le runners -- which a change
to gcc-13.yaml now schedules. Same shape the gcc-15 test already has.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants