Skip to content

Commit a8dbf58

Browse files
authored
Merge pull request #4139 from tgross35/backport-spaghetti-squash
[0.2] Backports
2 parents 53c3473 + 19464c3 commit a8dbf58

File tree

5 files changed

+411
-89
lines changed

5 files changed

+411
-89
lines changed

libc-test/build.rs

+66-3
Original file line numberDiff line numberDiff line change
@@ -3617,6 +3617,8 @@ fn test_linux(target: &str) {
36173617
"linux/netlink.h",
36183618
// FIXME: requires Linux >= 5.6:
36193619
[!musl]: "linux/openat2.h",
3620+
// FIXME: some items require Linux >= 5.6:
3621+
"linux/ptp_clock.h",
36203622
[!musl]: "linux/ptrace.h",
36213623
"linux/quota.h",
36223624
"linux/random.h",
@@ -3766,6 +3768,11 @@ fn test_linux(target: &str) {
37663768
return true;
37673769
}
37683770

3771+
// FIXME: CI has old headers
3772+
if ty == "ptp_sys_offset_extended" {
3773+
return true;
3774+
}
3775+
37693776
// LFS64 types have been removed in musl 1.2.4+
37703777
if musl && (ty.ends_with("64") || ty.ends_with("64_t")) {
37713778
return true;
@@ -3881,12 +3888,25 @@ fn test_linux(target: &str) {
38813888

38823889
// FIXME: Requires >= 5.4 kernel headers.
38833890
// Everything that uses install-musl.sh has 4.19 kernel headers.
3884-
"xdp_umem_reg" | "xdp_ring_offset" | "xdp_mmap_offsets" if musl => true,
3891+
"xdp_ring_offset" | "xdp_mmap_offsets" if musl => true,
3892+
3893+
// FIXME: Requires >= 6.8 kernel headers.
3894+
// A field was added in 6.8.
3895+
// https://github.com/torvalds/linux/commit/341ac980eab90ac1f6c22ee9f9da83ed9604d899
3896+
// The previous version of the struct was removed in 6.11 due to a bug.
3897+
// https://github.com/torvalds/linux/commit/32654bbd6313b4cfc82297e6634fa9725c3c900f
3898+
"xdp_umem_reg" => true,
38853899

38863900
// FIXME: Requires >= 5.9 kernel headers.
38873901
// Everything that uses install-musl.sh has 4.19 kernel headers.
38883902
"xdp_statistics" if musl => true,
38893903

3904+
// FIXME: Requires >= 6.8 kernel headers.
3905+
"xsk_tx_metadata"
3906+
| "__c_anonymous_xsk_tx_metadata_union"
3907+
| "xsk_tx_metadata_request"
3908+
| "xsk_tx_metadata_completion" => true,
3909+
38903910
// A new field was added in kernel 5.4, this is the old version for backwards compatibility.
38913911
// https://github.com/torvalds/linux/commit/77cd0d7b3f257fd0e3096b4fdcff1a7d38e99e10
38923912
"xdp_ring_offset_v1" | "xdp_mmap_offsets_v1" => true,
@@ -3961,6 +3981,22 @@ fn test_linux(target: &str) {
39613981
{
39623982
return true;
39633983
}
3984+
// FIXME: Requires >= 4.20 kernel headers
3985+
if name == "PTP_SYS_OFFSET_EXTENDED" {
3986+
return true;
3987+
}
3988+
// FIXME: Requires >= 5.4 kernel headers
3989+
if name == "PTP_ENABLE_PPS2"
3990+
|| name == "PTP_EXTTS_REQUEST2"
3991+
|| name == "PTP_PEROUT_REQUEST2"
3992+
|| name == "PTP_PIN_GETFUNC2"
3993+
|| name == "PTP_PIN_SETFUNC2"
3994+
|| name == "PTP_SYS_OFFSET2"
3995+
|| name == "PTP_SYS_OFFSET_PRECISE2"
3996+
|| name == "PTP_SYS_OFFSET_EXTENDED2"
3997+
{
3998+
return true;
3999+
}
39644000
// FIXME: Requires >= 5.4.1 kernel headers
39654001
if name.starts_with("J1939")
39664002
|| name.starts_with("RTEXT_FILTER_")
@@ -4315,6 +4351,23 @@ fn test_linux(target: &str) {
43154351
true
43164352
}
43174353

4354+
// FIXME: Requires >= 6.8 kernel headers.
4355+
"XDP_UMEM_TX_SW_CSUM"
4356+
| "XDP_TXMD_FLAGS_TIMESTAMP"
4357+
| "XDP_TXMD_FLAGS_CHECKSUM"
4358+
| "XDP_TX_METADATA"
4359+
=>
4360+
{
4361+
true
4362+
}
4363+
4364+
// FIXME: Requires >= 6.11 kernel headers.
4365+
"XDP_UMEM_TX_METADATA_LEN"
4366+
=>
4367+
{
4368+
true
4369+
}
4370+
43184371
// FIXME: Requires >= 6.6 kernel headers.
43194372
"SYS_fchmodat2" => true,
43204373

@@ -4490,7 +4543,11 @@ fn test_linux(target: &str) {
44904543
// `__exit_status` type is a patch which is absent in musl
44914544
(struct_ == "utmpx" && field == "ut_exit" && musl) ||
44924545
// `can_addr` is an anonymous union
4493-
(struct_ == "sockaddr_can" && field == "can_addr")
4546+
(struct_ == "sockaddr_can" && field == "can_addr") ||
4547+
// `anonymous_1` is an anonymous union
4548+
(struct_ == "ptp_perout_request" && field == "anonymous_1") ||
4549+
// `anonymous_2` is an anonymous union
4550+
(struct_ == "ptp_perout_request" && field == "anonymous_2")
44944551
});
44954552

44964553
cfg.volatile_item(|i| {
@@ -4561,11 +4618,17 @@ fn test_linux(target: &str) {
45614618
(struct_ == "fanotify_event_info_fid" && field == "fsid") ||
45624619
// `handle` is a VLA
45634620
(struct_ == "fanotify_event_info_fid" && field == "handle") ||
4621+
// `anonymous_1` is an anonymous union
4622+
(struct_ == "ptp_perout_request" && field == "anonymous_1") ||
4623+
// `anonymous_2` is an anonymous union
4624+
(struct_ == "ptp_perout_request" && field == "anonymous_2") ||
45644625
// invalid application of 'sizeof' to incomplete type 'long unsigned int[]'
45654626
(musl && struct_ == "mcontext_t" && field == "__extcontext" && loongarch64) ||
45664627
// FIXME(#4121): a new field was added from `f_spare`
45674628
(struct_ == "statvfs" && field == "__f_spare") ||
4568-
(struct_ == "statvfs64" && field == "__f_spare")
4629+
(struct_ == "statvfs64" && field == "__f_spare") ||
4630+
// the `xsk_tx_metadata_union` field is an anonymous union
4631+
(struct_ == "xsk_tx_metadata" && field == "xsk_tx_metadata_union")
45694632
});
45704633

45714634
cfg.skip_roundtrip(move |s| match s {

libc-test/semver/linux.txt

+38
Original file line numberDiff line numberDiff line change
@@ -2252,6 +2252,27 @@ PTHREAD_PRIO_PROTECT
22522252
PTHREAD_PROCESS_PRIVATE
22532253
PTHREAD_PROCESS_SHARED
22542254
PTHREAD_STACK_MIN
2255+
PTP_ENABLE_PPS
2256+
PTP_ENABLE_PPS2
2257+
PTP_EXTTS_REQUEST
2258+
PTP_EXTTS_REQUEST2
2259+
PTP_MAX_SAMPLES
2260+
PTP_PEROUT_REQUEST
2261+
PTP_PEROUT_REQUEST2
2262+
PTP_PF_EXTTS
2263+
PTP_PF_NONE
2264+
PTP_PF_PEROUT
2265+
PTP_PF_PHYSYNC
2266+
PTP_PIN_GETFUNC
2267+
PTP_PIN_GETFUNC2
2268+
PTP_PIN_SETFUNC
2269+
PTP_PIN_SETFUNC2
2270+
PTP_SYS_OFFSET
2271+
PTP_SYS_OFFSET2
2272+
PTP_SYS_OFFSET_EXTENDED
2273+
PTP_SYS_OFFSET_EXTENDED2
2274+
PTP_SYS_OFFSET_PRECISE
2275+
PTP_SYS_OFFSET_PRECISE2
22552276
PTRACE_ATTACH
22562277
PTRACE_CONT
22572278
PTRACE_DETACH
@@ -3367,6 +3388,11 @@ W_EXITCODE
33673388
W_STOPCODE
33683389
XATTR_CREATE
33693390
XATTR_REPLACE
3391+
XDP_TXMD_FLAGS_CHECKSUM
3392+
XDP_TXMD_FLAGS_TIMESTAMP
3393+
XDP_TX_METADATA
3394+
XDP_UMEM_TX_METADATA_LEN
3395+
XDP_UMEM_TX_SW_CSUM
33703396
XTABS
33713397
YESEXPR
33723398
YESSTR
@@ -3558,11 +3584,15 @@ __WNOTHREAD
35583584
__c_anonymous_ifc_ifcu
35593585
__c_anonymous_ifr_ifru
35603586
__c_anonymous_ifru_map
3587+
__c_anonymous_ptp_perout_request_1
3588+
__c_anonymous_ptp_perout_request_2
35613589
__c_anonymous_sockaddr_can_can_addr
35623590
__c_anonymous_sockaddr_can_j1939
35633591
__c_anonymous_sockaddr_can_tp
35643592
__errno_location
35653593
__exit_status
3594+
__kernel_clockid_t
3595+
__kernel_fsid_t
35663596
__s16
35673597
__s32
35683598
__u16
@@ -3916,6 +3946,14 @@ pthread_spin_lock
39163946
pthread_spin_trylock
39173947
pthread_spin_unlock
39183948
pthread_spinlock_t
3949+
ptp_clock_time
3950+
ptp_extts_event
3951+
ptp_extts_request
3952+
ptp_perout_request
3953+
ptp_pin_desc
3954+
ptp_sys_offset
3955+
ptp_sys_offset_extended
3956+
ptp_sys_offset_precise
39193957
ptrace
39203958
ptsname_r
39213959
pwrite64

src/unix/linux_like/linux/gnu/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,7 @@ s! {
401401
pub chunk_size: ::__u32,
402402
pub headroom: ::__u32,
403403
pub flags: ::__u32,
404+
pub tx_metadata_len: ::__u32,
404405
}
405406

406407
pub struct xdp_umem_reg_v1 {

0 commit comments

Comments
 (0)