From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/12194 Path: news.gmane.org!.POSTED!not-for-mail From: Hauke Mehrtens Newsgroups: gmane.linux.kernel,gmane.linux.kernel.api,gmane.linux.lib.musl.general Subject: Re: [PATCHv3 resend] uapi libc compat: add fallback for unsupported libcs Date: Sun, 3 Dec 2017 12:04:21 +0100 Message-ID: References: <20171112183017.GA8431@nyan> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1512299078 18067 195.159.176.226 (3 Dec 2017 11:04:38 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 3 Dec 2017 11:04:38 +0000 (UTC) To: linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, musl@lists.openwall.com, "David S. Miller" , Carlos O'Donell , Florian Fainelli Original-X-From: linux-kernel-owner@vger.kernel.org Sun Dec 03 12:04:32 2017 Return-path: Envelope-to: glk-linux-kernel-3@m.gmane.org Original-Received: from vger.kernel.org ([209.132.180.67]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eLS4U-00042K-HJ for glk-linux-kernel-3@m.gmane.org; Sun, 03 Dec 2017 12:04:30 +0100 Original-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751989AbdLCLEc (ORCPT ); Sun, 3 Dec 2017 06:04:32 -0500 Original-Received: from mx2.mailbox.org ([80.241.60.215]:60521 "EHLO mx2.mailbox.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751108AbdLCLEa (ORCPT ); Sun, 3 Dec 2017 06:04:30 -0500 Original-Received: from smtp1.mailbox.org (smtp1.mailbox.org [80.241.60.240]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx2.mailbox.org (Postfix) with ESMTPS id 8A6E44C30E; Sun, 3 Dec 2017 12:04:28 +0100 (CET) X-Virus-Scanned: amavisd-new at heinlein-support.de Original-Received: from smtp1.mailbox.org ([80.241.60.240]) by hefe.heinlein-support.de (hefe.heinlein-support.de [91.198.250.172]) (amavisd-new, port 10030) with ESMTP id P1sSrfeuxPGp; Sun, 3 Dec 2017 12:04:22 +0100 (CET) In-Reply-To: <20171112183017.GA8431@nyan> Content-Language: en-US Original-Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Xref: news.gmane.org gmane.linux.kernel:2632266 gmane.linux.kernel.api:26061 gmane.linux.lib.musl.general:12194 Archived-At: On 11/12/2017 07:30 PM, Felix Janda wrote: > 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 is > included after musl's : > > ./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 > Reviewed-by: Hauke Mehrtens > --- > 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. > --- > include/uapi/linux/libc-compat.h | 55 +++++++++++++++++++++++++++++++++++++++- > 1 file changed, 54 insertions(+), 1 deletion(-) > I would really like to see this in the mainline kernel as this is needed to use the kernel headers with the musl libc, so probably every user of the musl libc needs this. A similar patch is in OpenWrt / LEDE and is mandatory when building the musl toolchain used in OpenWrt / LEDE, which is the default. I would like to get closer to build OpenWrt / LEDE with an unmodified Linux kernel and getting this into mainline is one part of it. As this patch is on the mailling lists since multiple months without any reaction it looks like there is no maintainer for: include/uapi/linux/libc-compat.h Should we send this in the next merge window directly to Linus? If I am wrong please correct me. Post on the mailling list: patch v2: https://patchwork.kernel.org/patch/9831533/ patch v3: https://patchwork.kernel.org/patch/9869953/ Hauke