On Tue, 2024-10-15 at 18:31 -0600, Gustavo A. R. Silva wrote: > -Wflex-array-member-not-at-end was introduced in GCC-14, and we are > getting ready to enable it, globally. > > Address the following warnings by changing the type of the middle struct > members in various composite structs, which are currently causing trouble, > from `struct sockaddr` to `struct sockaddr_legacy`. Note that the latter > struct doesn't contain a flexible-array member. > > include/uapi/linux/wireless.h:751:33: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] > include/uapi/linux/wireless.h:776:25: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] > include/uapi/linux/wireless.h:833:25: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] > include/uapi/linux/wireless.h:857:25: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] > include/uapi/linux/wireless.h:864:25: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] > > No binary differences are present after these changes. I don't see how this works if you introduce "struct sockaddr_legacy" in a non-UAPI header, but then use it in UAPI?! Also, userspace might have pointers to it or whatnot, and warn/break if you change the type? johannes