ci: Bump musl 1.2.5->1.2.6 and Alpine headers 3.20->3.24 (kernel 6.6->7.0)#5215
Merged
Conversation
Contributor
Author
3 tasks
tgross35
force-pushed
the
musl-bump
branch
4 times, most recently
from
June 25, 2026 05:11
21689af to
7685cd8
Compare
Contributor
Author
|
I did the paths wrong so this needs rust-lang/ci-mirrors#36, then should be good to go. |
tgross35
marked this pull request as ready for review
June 25, 2026 05:23
Collaborator
|
Some changes occurred in an Android module cc @maurer |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Where possible, change to the latest Ubuntu release. The 32-bit images still aren't bumped because of the time64 mismatch.
Glibc 2.42 updated this definition to an unsigned integer so it no longer overflows. Source: https://sourceware.org/git/?p=glibc.git;a=commit;h=3263675250cbcbbcc76ede4f7c660418bd345a11
Glibc 2.43 adds the additional fields from Linux 6.17 to `struct tcp_info`. Source: https://sourceware.org/git/?p=glibc.git;a=commit;h=7e46c2aae47d3284d4eb0845ddcc3951e987d681
Collaborator
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
In Ubuntu 26.04, the musl build hits:
In file included from /checkout/target/aarch64-unknown-linux-musl/debug/build/libc-test-1eed7f417ef9e9ac/out/ctest_output.c:51:
/musl-aarch64/include/string.h:97:7: error: conflicting types for 'basename'; have 'char *(void)'
97 | char *basename();
| ^~~~~~~~
In file included from /checkout/target/aarch64-unknown-linux-musl/debug/build/libc-test-1eed7f417ef9e9ac/out/ctest_output.c:19:
/musl-aarch64/include/libgen.h:9:7: note: previous declaration of 'basename' with type 'char *(char *)'
9 | char *basename(char *);
| ^~~~~~~~
cc1: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
I believe this may be due to a new error in recent versions of GCC,
though I have not actually gone through the effort to verify this. In
any case, musl received a patch in 1.2.5 that resolves the issue; apply
it to our 1.1.x build to keep it working.
Link: kraj/musl@725e17e
3 tasks
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Where possible, change to the latest Ubuntu release. The 32-bit images still aren't bumped because of the time64 mismatch. (backport <rust-lang#5215>) (cherry picked from commit 836a774)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Source: torvalds/linux@67890d5 (backport <rust-lang#5215>) (cherry picked from commit 348414e)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Glibc 2.42 updated this definition to an unsigned integer so it no longer overflows. Source: https://sourceware.org/git/?p=glibc.git;a=commit;h=3263675250cbcbbcc76ede4f7c660418bd345a11 (backport <rust-lang#5215>) (cherry picked from commit 5001b08)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Glibc 2.43 adds the additional fields from Linux 6.17 to `struct tcp_info`. Source: https://sourceware.org/git/?p=glibc.git;a=commit;h=7e46c2aae47d3284d4eb0845ddcc3951e987d681 (backport <rust-lang#5215>) (cherry picked from commit bfd993e)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
In Ubuntu 26.04, the musl build hits:
In file included from /checkout/target/aarch64-unknown-linux-musl/debug/build/libc-test-1eed7f417ef9e9ac/out/ctest_output.c:51:
/musl-aarch64/include/string.h:97:7: error: conflicting types for 'basename'; have 'char *(void)'
97 | char *basename();
| ^~~~~~~~
In file included from /checkout/target/aarch64-unknown-linux-musl/debug/build/libc-test-1eed7f417ef9e9ac/out/ctest_output.c:19:
/musl-aarch64/include/libgen.h:9:7: note: previous declaration of 'basename' with type 'char *(char *)'
9 | char *basename(char *);
| ^~~~~~~~
cc1: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
I believe this may be due to a new error in recent versions of GCC,
though I have not actually gone through the effort to verify this. In
any case, musl received a patch in 1.2.5 that resolves the issue; apply
it to our 1.1.x build to keep it working.
Link: kraj/musl@725e17e
(backport <rust-lang#5215>)
(cherry picked from commit 2713f20)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Ubuntu 26.04 transitioned PowerPC64LE from the IBM long double format to
IEEE binary128 [1], which mean a handful of variadic functions needed to
switch to a binary128-compatible version. These were available starting
with glibc 2.32 (2020-08) per the abilist [2], which is quite a bit
newer than what we say we support at [3] (2.17, 2012-12).
This explains test failures, so skip checking the functions per now. We
should migrate to the `__<name>ieee128` functions at some point, which
need not be related to our documented minimum, but there is no reason to
do it now since Rust doesn't even stably support either IBM `long
double` or binary128.
Demo on Ubuntu 24.04:
$ cat demo.c
#include <stdio.h>
#include <syslog.h>
void demo() {
char buf1[20] = { 0 };
char buf2[20] = { 0 };
printf("Hello, world! %d\n", 1);
fprintf(stderr, "Hello, world! %d\n", 2);
sprintf(buf1, "Hello, world! %d\n", 3);
snprintf(buf2, 20, "Hello, world! %d\n", 4);
syslog(0, "Hello, world! %d\n", 5);
}
$ powerpc64le-linux-gnu-gcc demo.c -c
$ powerpc64le-linux-gnu-nm demo.o
U .TOC.
U __stack_chk_fail
0000000000000000 T demo
U fprintf
U printf
U snprintf
U sprintf
U stderr
U syslog
And the same demo on Ubuntu 26.04:
$ cat demo.c
#include <stdio.h>
#include <syslog.h>
void demo() {
char buf1[20] = { 0 };
char buf2[20] = { 0 };
printf("Hello, world! %d\n", 1);
fprintf(stderr, "Hello, world! %d\n", 2);
sprintf(buf1, "Hello, world! %d\n", 3);
snprintf(buf2, 20, "Hello, world! %d\n", 4);
syslog(0, "Hello, world! %d\n", 5);
}
$ powerpc64le-linux-gnu-gcc demo.c -c
$ powerpc64le-linux-gnu-nm demo.o
U .TOC.
U __fprintfieee128
U __printfieee128
U __snprintfieee128
U __sprintfieee128
U __stack_chk_fail
U __syslogieee128
0000000000000000 T demo
U stderr
[1]: https://bugs.launchpad.net/ubuntu/+bug/2132257
[2]: https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist;h=65d78e50760b5d6b1a9cb39016a7bf8064224794;hb=HEAD#l2519
[3]: https://doc.rust-lang.org/1.96.0/rustc/platform-support.html
(backport <rust-lang#5215>)
(cherry picked from commit c7bca4c)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
…>7.0) (backport <rust-lang#5215>) (cherry picked from commit b319ce3)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Where possible, change to the latest Ubuntu release. The 32-bit images still aren't bumped because of the time64 mismatch. (backport <rust-lang#5215>) (cherry picked from commit 836a774)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Source: torvalds/linux@67890d5 (backport <rust-lang#5215>) (cherry picked from commit 348414e)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Glibc 2.42 updated this definition to an unsigned integer so it no longer overflows. Source: https://sourceware.org/git/?p=glibc.git;a=commit;h=3263675250cbcbbcc76ede4f7c660418bd345a11 (backport <rust-lang#5215>) (cherry picked from commit 5001b08)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Glibc 2.43 adds the additional fields from Linux 6.17 to `struct tcp_info`. Source: https://sourceware.org/git/?p=glibc.git;a=commit;h=7e46c2aae47d3284d4eb0845ddcc3951e987d681 (backport <rust-lang#5215>) (cherry picked from commit bfd993e)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
In Ubuntu 26.04, the musl build hits:
In file included from /checkout/target/aarch64-unknown-linux-musl/debug/build/libc-test-1eed7f417ef9e9ac/out/ctest_output.c:51:
/musl-aarch64/include/string.h:97:7: error: conflicting types for 'basename'; have 'char *(void)'
97 | char *basename();
| ^~~~~~~~
In file included from /checkout/target/aarch64-unknown-linux-musl/debug/build/libc-test-1eed7f417ef9e9ac/out/ctest_output.c:19:
/musl-aarch64/include/libgen.h:9:7: note: previous declaration of 'basename' with type 'char *(char *)'
9 | char *basename(char *);
| ^~~~~~~~
cc1: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
I believe this may be due to a new error in recent versions of GCC,
though I have not actually gone through the effort to verify this. In
any case, musl received a patch in 1.2.5 that resolves the issue; apply
it to our 1.1.x build to keep it working.
Link: kraj/musl@725e17e
(backport <rust-lang#5215>)
(cherry picked from commit 2713f20)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Ubuntu 26.04 transitioned PowerPC64LE from the IBM long double format to
IEEE binary128 [1], which mean a handful of variadic functions needed to
switch to a binary128-compatible version. These were available starting
with glibc 2.32 (2020-08) per the abilist [2], which is quite a bit
newer than what we say we support at [3] (2.17, 2012-12).
This explains test failures, so skip checking the functions per now. We
should migrate to the `__<name>ieee128` functions at some point, which
need not be related to our documented minimum, but there is no reason to
do it now since Rust doesn't even stably support either IBM `long
double` or binary128.
Demo on Ubuntu 24.04:
$ cat demo.c
#include <stdio.h>
#include <syslog.h>
void demo() {
char buf1[20] = { 0 };
char buf2[20] = { 0 };
printf("Hello, world! %d\n", 1);
fprintf(stderr, "Hello, world! %d\n", 2);
sprintf(buf1, "Hello, world! %d\n", 3);
snprintf(buf2, 20, "Hello, world! %d\n", 4);
syslog(0, "Hello, world! %d\n", 5);
}
$ powerpc64le-linux-gnu-gcc demo.c -c
$ powerpc64le-linux-gnu-nm demo.o
U .TOC.
U __stack_chk_fail
0000000000000000 T demo
U fprintf
U printf
U snprintf
U sprintf
U stderr
U syslog
And the same demo on Ubuntu 26.04:
$ cat demo.c
#include <stdio.h>
#include <syslog.h>
void demo() {
char buf1[20] = { 0 };
char buf2[20] = { 0 };
printf("Hello, world! %d\n", 1);
fprintf(stderr, "Hello, world! %d\n", 2);
sprintf(buf1, "Hello, world! %d\n", 3);
snprintf(buf2, 20, "Hello, world! %d\n", 4);
syslog(0, "Hello, world! %d\n", 5);
}
$ powerpc64le-linux-gnu-gcc demo.c -c
$ powerpc64le-linux-gnu-nm demo.o
U .TOC.
U __fprintfieee128
U __printfieee128
U __snprintfieee128
U __sprintfieee128
U __stack_chk_fail
U __syslogieee128
0000000000000000 T demo
U stderr
[1]: https://bugs.launchpad.net/ubuntu/+bug/2132257
[2]: https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist;h=65d78e50760b5d6b1a9cb39016a7bf8064224794;hb=HEAD#l2519
[3]: https://doc.rust-lang.org/1.96.0/rustc/platform-support.html
(backport <rust-lang#5215>)
(cherry picked from commit c7bca4c)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
…>7.0) (backport <rust-lang#5215>) (cherry picked from commit b319ce3)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Where possible, change to the latest Ubuntu release. The 32-bit images still aren't bumped because of the time64 mismatch. (backport <rust-lang#5215>) (cherry picked from commit 836a774)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Source: torvalds/linux@67890d5 (backport <rust-lang#5215>) (cherry picked from commit 348414e)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Glibc 2.42 updated this definition to an unsigned integer so it no longer overflows. Source: https://sourceware.org/git/?p=glibc.git;a=commit;h=3263675250cbcbbcc76ede4f7c660418bd345a11 (backport <rust-lang#5215>) (cherry picked from commit 5001b08)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Glibc 2.43 adds the additional fields from Linux 6.17 to `struct tcp_info`. Source: https://sourceware.org/git/?p=glibc.git;a=commit;h=7e46c2aae47d3284d4eb0845ddcc3951e987d681 (backport <rust-lang#5215>) (cherry picked from commit bfd993e)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
In Ubuntu 26.04, the musl build hits:
In file included from /checkout/target/aarch64-unknown-linux-musl/debug/build/libc-test-1eed7f417ef9e9ac/out/ctest_output.c:51:
/musl-aarch64/include/string.h:97:7: error: conflicting types for 'basename'; have 'char *(void)'
97 | char *basename();
| ^~~~~~~~
In file included from /checkout/target/aarch64-unknown-linux-musl/debug/build/libc-test-1eed7f417ef9e9ac/out/ctest_output.c:19:
/musl-aarch64/include/libgen.h:9:7: note: previous declaration of 'basename' with type 'char *(char *)'
9 | char *basename(char *);
| ^~~~~~~~
cc1: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
I believe this may be due to a new error in recent versions of GCC,
though I have not actually gone through the effort to verify this. In
any case, musl received a patch in 1.2.5 that resolves the issue; apply
it to our 1.1.x build to keep it working.
Link: kraj/musl@725e17e
(backport <rust-lang#5215>)
(cherry picked from commit 2713f20)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
Ubuntu 26.04 transitioned PowerPC64LE from the IBM long double format to
IEEE binary128 [1], which mean a handful of variadic functions needed to
switch to a binary128-compatible version. These were available starting
with glibc 2.32 (2020-08) per the abilist [2], which is quite a bit
newer than what we say we support at [3] (2.17, 2012-12).
This explains test failures, so skip checking the functions per now. We
should migrate to the `__<name>ieee128` functions at some point, which
need not be related to our documented minimum, but there is no reason to
do it now since Rust doesn't even stably support either IBM `long
double` or binary128.
Demo on Ubuntu 24.04:
$ cat demo.c
#include <stdio.h>
#include <syslog.h>
void demo() {
char buf1[20] = { 0 };
char buf2[20] = { 0 };
printf("Hello, world! %d\n", 1);
fprintf(stderr, "Hello, world! %d\n", 2);
sprintf(buf1, "Hello, world! %d\n", 3);
snprintf(buf2, 20, "Hello, world! %d\n", 4);
syslog(0, "Hello, world! %d\n", 5);
}
$ powerpc64le-linux-gnu-gcc demo.c -c
$ powerpc64le-linux-gnu-nm demo.o
U .TOC.
U __stack_chk_fail
0000000000000000 T demo
U fprintf
U printf
U snprintf
U sprintf
U stderr
U syslog
And the same demo on Ubuntu 26.04:
$ cat demo.c
#include <stdio.h>
#include <syslog.h>
void demo() {
char buf1[20] = { 0 };
char buf2[20] = { 0 };
printf("Hello, world! %d\n", 1);
fprintf(stderr, "Hello, world! %d\n", 2);
sprintf(buf1, "Hello, world! %d\n", 3);
snprintf(buf2, 20, "Hello, world! %d\n", 4);
syslog(0, "Hello, world! %d\n", 5);
}
$ powerpc64le-linux-gnu-gcc demo.c -c
$ powerpc64le-linux-gnu-nm demo.o
U .TOC.
U __fprintfieee128
U __printfieee128
U __snprintfieee128
U __sprintfieee128
U __stack_chk_fail
U __syslogieee128
0000000000000000 T demo
U stderr
[1]: https://bugs.launchpad.net/ubuntu/+bug/2132257
[2]: https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist;h=65d78e50760b5d6b1a9cb39016a7bf8064224794;hb=HEAD#l2519
[3]: https://doc.rust-lang.org/1.96.0/rustc/platform-support.html
(backport <rust-lang#5215>)
(cherry picked from commit c7bca4c)
tgross35
added a commit
to tgross35/rust-libc
that referenced
this pull request
Jul 20, 2026
…>7.0) (backport <rust-lang#5215>) (cherry picked from commit b319ce3)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Based on #5175