From f52dd42779bdd56fe336ed4132fe64a76d18262f Mon Sep 17 00:00:00 2001 From: dybucc <149513579+dybucc@users.noreply.github.com> Date: Thu, 28 May 2026 11:59:50 +0200 Subject: [PATCH] crate: annotate unstable `*LAST` constants These symbols are troublesome. They can change upstream. They don't work well with SemVer. Usage advice is needed. This patch links to it. --- src/solid/mod.rs | 3 +++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 5 ++++- src/unix/linux_like/android/mod.rs | 9 +++++++++ src/unix/linux_like/linux/mod.rs | 15 +++++++++++++++ src/unix/solarish/illumos.rs | 2 ++ src/unix/solarish/solaris.rs | 2 ++ 6 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/solid/mod.rs b/src/solid/mod.rs index 4aec2bf90b65f..c0ba109d39e2f 100644 --- a/src/solid/mod.rs +++ b/src/solid/mod.rs @@ -219,6 +219,9 @@ pub const LC_MONETARY: c_int = 3; pub const LC_NUMERIC: c_int = 4; pub const LC_TIME: c_int = 5; pub const LC_MESSAGES: c_int = 6; + +/// This symbol is prone to change across releases upstream. +/// See the [usage guidelines](crate#usage-guidelines) for details. pub const _LC_LAST: c_int = 7; pub const EPERM: c_int = 1; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index e4b3f2c509afa..102e468a470cf 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -947,7 +947,7 @@ pub const EOWNERDEAD: c_int = 94; pub const EPROTO: c_int = 95; /// This symbols is prone to change across releases upstream. -/// See the [usage guidelines](crate::#usage-guidelines) for details and use. +/// See the [usage guidelines](crate#usage-guidelines) for details. pub const ELAST: c_int = 95; pub const F_DUPFD_CLOEXEC: c_int = 10; @@ -1739,7 +1739,10 @@ pub const LC_NUMERIC_MASK: c_int = 1 << crate::LC_NUMERIC; pub const LC_TIME_MASK: c_int = 1 << crate::LC_TIME; pub const LC_MESSAGES_MASK: c_int = 1 << crate::LC_MESSAGES; +/// This symbol is prone to change across releases upstream. +/// See the [usage guidelines](crate#usage-guidelines) for details. const _LC_LAST: c_int = 7; + pub const LC_ALL_MASK: c_int = (1 << _LC_LAST) - 2; pub const LC_GLOBAL_LOCALE: crate::locale_t = -1isize as crate::locale_t; diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index cea6778750119..e79cb7a5a16d9 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1937,6 +1937,9 @@ pub const NF_BR_PRI_BRNF: c_int = 0; pub const NF_BR_PRI_NAT_DST_OTHER: c_int = 100; pub const NF_BR_PRI_FILTER_OTHER: c_int = 200; pub const NF_BR_PRI_NAT_SRC: c_int = 300; + +/// This symbol is prone to change across releases upstream. +/// See the [usage guidelines](crate#usage-guidelines) for details. pub const NF_BR_PRI_LAST: c_int = crate::INT_MAX; // linux/netfilter_ipv4.h @@ -1961,6 +1964,9 @@ pub const NF_IP_PRI_NAT_SRC: c_int = 100; pub const NF_IP_PRI_SELINUX_LAST: c_int = 225; pub const NF_IP_PRI_CONNTRACK_HELPER: c_int = 300; pub const NF_IP_PRI_CONNTRACK_CONFIRM: c_int = crate::INT_MAX; + +/// This symbol is prone to change across releases upstream. +/// See the [usage guidelines](crate#usage-guidelines) for details. pub const NF_IP_PRI_LAST: c_int = crate::INT_MAX; // linux/netfilter_ipv6.h @@ -1984,6 +1990,9 @@ pub const NF_IP6_PRI_SECURITY: c_int = 50; pub const NF_IP6_PRI_NAT_SRC: c_int = 100; pub const NF_IP6_PRI_SELINUX_LAST: c_int = 225; pub const NF_IP6_PRI_CONNTRACK_HELPER: c_int = 300; + +/// This symbol is prone to change across releases upstream. +/// See the [usage guidelines](crate#usage-guidelines) for details. pub const NF_IP6_PRI_LAST: c_int = crate::INT_MAX; // linux/netfilter_ipv6/ip6_tables.h diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 20ddce4860e97..776b02e252982 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1905,6 +1905,9 @@ pub const NF_BR_PRI_BRNF: c_int = 0; pub const NF_BR_PRI_NAT_DST_OTHER: c_int = 100; pub const NF_BR_PRI_FILTER_OTHER: c_int = 200; pub const NF_BR_PRI_NAT_SRC: c_int = 300; + +/// This symbol is prone to change across releases upstream. +/// See the [usage guidelines](crate#usage-guidelines) for details. pub const NF_BR_PRI_LAST: c_int = crate::INT_MAX; // linux/netfilter_ipv4.h @@ -1929,6 +1932,9 @@ pub const NF_IP_PRI_NAT_SRC: c_int = 100; pub const NF_IP_PRI_SELINUX_LAST: c_int = 225; pub const NF_IP_PRI_CONNTRACK_HELPER: c_int = 300; pub const NF_IP_PRI_CONNTRACK_CONFIRM: c_int = crate::INT_MAX; + +/// This symbol is prone to change across releases upstream. +/// See the [usage guidelines](crate#usage-guidelines) for details. pub const NF_IP_PRI_LAST: c_int = crate::INT_MAX; // linux/netfilter_ipv6.h @@ -1952,6 +1958,9 @@ pub const NF_IP6_PRI_SECURITY: c_int = 50; pub const NF_IP6_PRI_NAT_SRC: c_int = 100; pub const NF_IP6_PRI_SELINUX_LAST: c_int = 225; pub const NF_IP6_PRI_CONNTRACK_HELPER: c_int = 300; + +/// This symbol is prone to change across releases upstream. +/// See the [usage guidelines](crate#usage-guidelines) for details. pub const NF_IP6_PRI_LAST: c_int = crate::INT_MAX; // linux/netfilter_ipv6/ip6_tables.h @@ -2029,9 +2038,15 @@ pub const SIOCGIWENCODEEXT: c_ulong = 0x8B35; pub const SIOCSIWPMKSA: c_ulong = 0x8B36; pub const SIOCIWFIRSTPRIV: c_ulong = 0x8BE0; + +/// This symbol is prone to change across releases upstream. +/// See the [usage guidelines](crate#usage-guidelines) for details. pub const SIOCIWLASTPRIV: c_ulong = 0x8BFF; pub const SIOCIWFIRST: c_ulong = 0x8B00; + +/// This symbol is prone to change across releases upstream. +/// See the [usage guidelines](crate#usage-guidelines) for details. pub const SIOCIWLAST: c_ulong = SIOCIWLASTPRIV; pub const IWEVTXDROP: c_ulong = 0x8C00; diff --git a/src/unix/solarish/illumos.rs b/src/unix/solarish/illumos.rs index b31c31bd1f6c8..fa19dac42177c 100644 --- a/src/unix/solarish/illumos.rs +++ b/src/unix/solarish/illumos.rs @@ -152,6 +152,8 @@ pub const LOCK_EX: c_int = 2; pub const LOCK_NB: c_int = 4; pub const LOCK_UN: c_int = 8; +/// This symbol is prone to change across releases upstream. +/// See the [usage guidelines](crate#usage-guidelines) for details. pub const _PC_LAST: c_int = 101; pub const _CS_PATH: c_int = 65; diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index 992df9ddc0ad9..2e3797846e4b3 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -132,6 +132,8 @@ pub const F_DUPFD_CLOFORK: c_int = 49; pub const F_DUP2FD_CLOEXEC: c_int = 48; pub const F_DUP2FD_CLOFORK: c_int = 50; +/// This symbol is prone to change across releases upstream. +/// See the [usage guidelines](crate#usage-guidelines) for details. pub const _PC_LAST: c_int = 102; pub const PRIV_PROC_SENSITIVE: c_uint = 0x0008;