Re: Re: [PATCHv3] uapi libc compat: add fallback for unsupported libcs
From: Florian Fainelli <f.fainelli@gmail.com>
Date: 2017-10-10 03:35:58
Also in:
lkml
Le 10/01/17 à 03:37, Hauke Mehrtens a écrit :
On 07/29/2017 04:02 PM, Felix Janda wrote:quoted
libc-compat.h aims to prevent symbol collisions between uapi and libc headers for each supported libc. This requires continuous coordination between them. The goal of this commit is to improve the situation for libcs (such as musl) which are not yet supported and/or do not wish to be explicitly supported, while not affecting supported libcs. More precisely, with this commit, unsupported libcs can request the suppression of any specific uapi definition by defining the correspondings _UAPI_DEF_* macro as 0. This can fix symbol collisions for them, as long as the libc headers are included before the uapi headers. Inclusion in the other order is outside the scope of this commit. All infrastructure in order to enable this fallback for unsupported libcs is already in place, except that libc-compat.h unconditionally defines all _UAPI_DEF_* macros to 1 for all unsupported libcs so that any previous definitions are ignored. In order to fix this, this commit merely makes these definitions conditional. This commit together with the musl libc commit http://git.musl-libc.org/cgit/musl/commit/?id=04983f2272382af92eb8f8838964ff944fbb8258 fixes for example the following compiler errors when <linux/in6.h> is included after musl's <netinet/in.h>: ./linux/in6.h:32:8: error: redefinition of 'struct in6_addr' ./linux/in6.h:49:8: error: redefinition of 'struct sockaddr_in6' ./linux/in6.h:59:8: error: redefinition of 'struct ipv6_mreq' Signed-off-by: Felix Janda <redacted> --- v3: Fix typos, add a comment to the file and use #ifndef. v2: The only change to the previous version is the commit title and message.Was this send to the wrong mailing lists? I would like to see this in the mainline kernel and I am wondering why it neither gets any comments nor shows up in linux-next.
Same here. Without such changes we cannot essentially build upstream kernels in OpenWrt/LEDE using musl-libc without patching kernel headers, which is really not great... -- Florian