From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 751 invoked from network); 1 Oct 2020 21:20:13 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 1 Oct 2020 21:20:13 -0000 Received: (qmail 15751 invoked by uid 550); 1 Oct 2020 21:20:11 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 15733 invoked from network); 1 Oct 2020 21:20:11 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=92mK7zBHisCWLSyJKdx4TrhYPHWohdb3930tufPI2eQ=; b=Fb3HmbV7xJzzE55ouXOFztkTWp0bKdRdgzVsp6GqE2lJqMrMp7xLRTFVhBgLBnGqAR k/XIcp5tNhCvReHQeIl0YIihMYd72fmXqIC5rD4HGYrCXGW8imJTH816gR0KauZGdE/N G4HCILSEZgX3W/ODY9Gr+zfmQjzcedJOGlfCdi1Gead/7PyfPo02AYI+5TqQjmLelOUk cVeFILE2TCSZ+A3bL0Fq+Sh2MC3hOHMp+1yaIWd7RbKpu4OwbT2LBPcv4QcmP/p1xT0G nhNMajuz75wAV6iThjbsGTirHOzhC1plmyD29GVH2GT/bNCyk6kwt9VMGiMAfcvvxwQo e5Qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=92mK7zBHisCWLSyJKdx4TrhYPHWohdb3930tufPI2eQ=; b=X3vRlC6cy8yFi7UvYH4F9lvWKRe0U2XDZq83ZFLPcyJc1Dipm9ntKOEOGj1SMX2H0z am3Dn+4u4lsoQX4a8nf35MK5hEAwOKCeqlXCzqgcamynqRc1LZUEAYmLUz7eYKu6t/2c 3OQCU4j6jz2mhU5hafr7p7PzzFVSsSyqQACi8P4eWsnjrT/CnkfXrFyLY0/XoUVSXouh cuWAt4lW/StTalSJnVz6iKyQZIkScVgu9zW/yrrNUDipRdQAbVHP2RRjizQCsUTsFwol EsB8ut3tyZPIpihqBO6GWJP5lytS+Ldn3qynevkp/xV6xBDOHYux7vVBnNKYyU3GDVGk EonA== X-Gm-Message-State: AOAM533gs2iuxFzY3sUqp5dmg1wEnt11SnQG8G1oF++U5hrwC/NTfe/E TJgEKS8I3C81Vqf8a/QivxQ= X-Google-Smtp-Source: ABdhPJx+5C2pl861hVRnpuxaeLSGcq52n+kjey8zmxUpkImCEOo8imG9vXHMS48cPyOtB3hf0HhJ3g== X-Received: by 2002:adf:9124:: with SMTP id j33mr11044813wrj.272.1601587199869; Thu, 01 Oct 2020 14:19:59 -0700 (PDT) From: Petr Vorel To: linux-kernel@vger.kernel.org Cc: Petr Vorel , Rich Felker , musl@lists.openwall.com, Peter Korsgaard , Baruch Siach , "David S . Miller" , Michal Kubecek , Stephen Hemminger , Florian Weimer , linux-api@vger.kernel.org, libc-alpha@sourceware.org Date: Thu, 1 Oct 2020 23:19:42 +0200 Message-Id: <20201001211942.13336-1-petr.vorel@gmail.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [musl] [RFC PATCH v2 1/1] uapi: Introduce move there code from , and include it in UAPI headers instead of . The reason is to avoid indirect include when using some network headers: or others -> -> . This indirect include causes on MUSL redefinition of struct sysinfo when included both and some of UAPI headers: In file included from x86_64-buildroot-linux-musl/sysroot/usr/include/linux/kernel.h:5, from x86_64-buildroot-linux-musl/sysroot/usr/include/linux/netlink.h:5, from ../include/tst_netlink.h:14, from tst_crypto.c:13: x86_64-buildroot-linux-musl/sysroot/usr/include/linux/sysinfo.h:8:8: error: redefinition of ‘struct sysinfo’ struct sysinfo { ^~~~~~~ In file included from ../include/tst_safe_macros.h:15, from ../include/tst_test.h:93, from tst_crypto.c:11: x86_64-buildroot-linux-musl/sysroot/usr/include/sys/sysinfo.h:10:8: note: originally defined here Suggested-by: Rich Felker Signed-off-by: Petr Vorel --- Changes v1->v2: * Move kernel.h content into new header in order not break the existing contract with glibc. Background: long standing problem: python-psutil [1], iproute2 [2], even for glibc in the past [3]. Kind regards, Petr [1] https://git.buildroot.net/buildroot/commit/?id=ab930190d7754b7f5fdda115b2069d00f1320861 [2] http://patchwork.ozlabs.org/project/netdev/patch/602128d22db86bd67e11dec8fe40a73832c222c9.1559230347.git.baruch@tkos.co.il/ [3] https://www.mail-archive.com/busybox@busybox.net/msg15363.html include/uapi/linux/align.h | 10 ++++++++++ include/uapi/linux/ethtool.h | 2 +- include/uapi/linux/kernel.h | 9 +-------- include/uapi/linux/lightnvm.h | 2 +- include/uapi/linux/mroute6.h | 2 +- include/uapi/linux/netfilter/x_tables.h | 2 +- include/uapi/linux/netlink.h | 2 +- include/uapi/linux/sysctl.h | 2 +- 8 files changed, 17 insertions(+), 14 deletions(-) create mode 100644 include/uapi/linux/align.h diff --git a/include/uapi/linux/align.h b/include/uapi/linux/align.h new file mode 100644 index 000000000000..6d2fef859d03 --- /dev/null +++ b/include/uapi/linux/align.h @@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +#ifndef _UAPI_LINUX_ALIGN_H +#define _UAPI_LINUX_ALIGN_H + +#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1) +#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask)) + +#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) + +#endif /* _UAPI_LINUX_ALIGN_H */ diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h index b4f2d134e713..73ca97a6ec86 100644 --- a/include/uapi/linux/ethtool.h +++ b/include/uapi/linux/ethtool.h @@ -14,7 +14,7 @@ #ifndef _UAPI_LINUX_ETHTOOL_H #define _UAPI_LINUX_ETHTOOL_H -#include +#include #include #include diff --git a/include/uapi/linux/kernel.h b/include/uapi/linux/kernel.h index 0ff8f7477847..15f70c510311 100644 --- a/include/uapi/linux/kernel.h +++ b/include/uapi/linux/kernel.h @@ -3,13 +3,6 @@ #define _UAPI_LINUX_KERNEL_H #include - -/* - * 'kernel.h' contains some often-used function prototypes etc - */ -#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1) -#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask)) - -#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) +#include #endif /* _UAPI_LINUX_KERNEL_H */ diff --git a/include/uapi/linux/lightnvm.h b/include/uapi/linux/lightnvm.h index f9a1be7fc696..d686cd576a24 100644 --- a/include/uapi/linux/lightnvm.h +++ b/include/uapi/linux/lightnvm.h @@ -21,7 +21,7 @@ #define _UAPI_LINUX_LIGHTNVM_H #ifdef __KERNEL__ -#include +#include #include #else /* __KERNEL__ */ #include diff --git a/include/uapi/linux/mroute6.h b/include/uapi/linux/mroute6.h index c36177a86516..e638aaefbe7f 100644 --- a/include/uapi/linux/mroute6.h +++ b/include/uapi/linux/mroute6.h @@ -2,7 +2,7 @@ #ifndef _UAPI__LINUX_MROUTE6_H #define _UAPI__LINUX_MROUTE6_H -#include +#include #include #include #include /* For struct sockaddr_in6. */ diff --git a/include/uapi/linux/netfilter/x_tables.h b/include/uapi/linux/netfilter/x_tables.h index a8283f7dbc51..c49d7a630d05 100644 --- a/include/uapi/linux/netfilter/x_tables.h +++ b/include/uapi/linux/netfilter/x_tables.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ #ifndef _UAPI_X_TABLES_H #define _UAPI_X_TABLES_H -#include +#include #include #define XT_FUNCTION_MAXNAMELEN 30 diff --git a/include/uapi/linux/netlink.h b/include/uapi/linux/netlink.h index eac8a6a648ea..2ff384e9bf00 100644 --- a/include/uapi/linux/netlink.h +++ b/include/uapi/linux/netlink.h @@ -2,7 +2,7 @@ #ifndef _UAPI__LINUX_NETLINK_H #define _UAPI__LINUX_NETLINK_H -#include +#include #include /* for __kernel_sa_family_t */ #include diff --git a/include/uapi/linux/sysctl.h b/include/uapi/linux/sysctl.h index 27c1ed2822e6..18360ea6dd4e 100644 --- a/include/uapi/linux/sysctl.h +++ b/include/uapi/linux/sysctl.h @@ -23,7 +23,7 @@ #ifndef _UAPI_LINUX_SYSCTL_H #define _UAPI_LINUX_SYSCTL_H -#include +#include #include #include -- 2.28.0