Received: by 10.223.185.116 with SMTP id b49csp4167561wrg; Mon, 26 Feb 2018 12:25:46 -0800 (PST) X-Google-Smtp-Source: AH8x227Iw5PBWAJ4w7eJZHle6ADc+A+1dcQNaBS4+ufO+PeJZbZ595EN3kTmoVb4ee8LfDU27yIG X-Received: by 10.98.70.198 with SMTP id o67mr11638019pfi.173.1519676746072; Mon, 26 Feb 2018 12:25:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519676746; cv=none; d=google.com; s=arc-20160816; b=P9Lt+lRbCQjng9RZ7dvp72h/MPiQnQI0+NUE1we+YmvvLRorAukEKAoW/12e77AuKb EbTNzVyEQMHa4pGGZnmKreINWrXQ6V4Kk+drZCunqANFfzDWw3fj7mzAHN3sXRJ73ed7 jmx6zd/I9vQs1HJCGAOiac/9dKzOTnrUYYv/+CA/OViUthnvQ0xJKrnTItqIH/GSORsN aE1lL3rhi8QQZDwYo7rcWi9mhpBV7gY0E6vH0JfKykHP44O3JM9s5HxYRyOVnny6G9bU LWV8q+TBujjB5zFDoqfTpnT/pB3qrN7RbR/DpUzjNgk9ybDK1HSpENtJ/07+/HJgBWJ5 Ei7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=FD4RgaXX9snmOKDHODnW+TF9hPuhYTT2zutMw54daxI=; b=HWy+ndclQMzMquDnu+sjTVDtTt0CvEeLPFG8hWtGlnVBTd6fKnGxPUooHgIS0zrivd AIYTtX9oxnJNf8oBXaPrnUHMn2ljHFi9itWG4nLsxkdvVALrsU7ysW7exLcWY3KyHSKN FZWQiHemSzGuZ/qns1y/9CmRMJMbv/cNfX8J2jLfaEK3+9XVtLXYfV9v01PapOkRavW8 DUkcNAwfZuMwy136G+OiPrXOj3QfgKm5P6O+qIdAuQ5pJD5qpUtbNc0EceXMRzq/sa7z YQpVFUxEVWUKdnRpzYn4fhbcudc7bahe2EelRIKXy1cCRX/ySPM20ULKoL4vJXfCzEBT yjfw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w12si5951763pgr.211.2018.02.26.12.25.29; Mon, 26 Feb 2018 12:25:46 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752844AbeBZUYP (ORCPT + 99 others); Mon, 26 Feb 2018 15:24:15 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:34994 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752806AbeBZUYH (ORCPT ); Mon, 26 Feb 2018 15:24:07 -0500 Received: from localhost (clnet-b04-243.ikbnet.co.at [83.175.124.243]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 36B71F4A; Mon, 26 Feb 2018 20:24:06 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Arnd Bergmann , Babu Moger , Andi Kleen , Masahiro Yamada , Nicolas Pitre , Peter Zijlstra , Thomas Gleixner , Will Deacon , Andrew Morton , Linus Torvalds Subject: [PATCH 4.14 25/54] Kbuild: always define endianess in kconfig.h Date: Mon, 26 Feb 2018 21:22:02 +0100 Message-Id: <20180226202145.645881375@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180226202144.375869933@linuxfoundation.org> References: <20180226202144.375869933@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Arnd Bergmann commit 101110f6271ce956a049250c907bc960030577f8 upstream. Build testing with LTO found a couple of files that get compiled differently depending on whether asm/byteorder.h gets included early enough or not. In particular, include/asm-generic/qrwlock_types.h is affected by this, but there are probably others as well. The symptom is a series of LTO link time warnings, including these: net/netlabel/netlabel_unlabeled.h:223: error: type of 'netlbl_unlhsh_add' does not match original declaration [-Werror=lto-type-mismatch] int netlbl_unlhsh_add(struct net *net, net/netlabel/netlabel_unlabeled.c:377: note: 'netlbl_unlhsh_add' was previously declared here include/net/ipv6.h:360: error: type of 'ipv6_renew_options_kern' does not match original declaration [-Werror=lto-type-mismatch] ipv6_renew_options_kern(struct sock *sk, net/ipv6/exthdrs.c:1162: note: 'ipv6_renew_options_kern' was previously declared here net/core/dev.c:761: note: 'dev_get_by_name_rcu' was previously declared here struct net_device *dev_get_by_name_rcu(struct net *net, const char *name) net/core/dev.c:761: note: code may be misoptimized unless -fno-strict-aliasing is used drivers/gpu/drm/i915/i915_drv.h:3377: error: type of 'i915_gem_object_set_to_wc_domain' does not match original declaration [-Werror=lto-type-mismatch] i915_gem_object_set_to_wc_domain(struct drm_i915_gem_object *obj, bool write); drivers/gpu/drm/i915/i915_gem.c:3639: note: 'i915_gem_object_set_to_wc_domain' was previously declared here include/linux/debugfs.h:92:9: error: type of 'debugfs_attr_read' does not match original declaration [-Werror=lto-type-mismatch] ssize_t debugfs_attr_read(struct file *file, char __user *buf, fs/debugfs/file.c:318: note: 'debugfs_attr_read' was previously declared here include/linux/rwlock_api_smp.h:30: error: type of '_raw_read_unlock' does not match original declaration [-Werror=lto-type-mismatch] void __lockfunc _raw_read_unlock(rwlock_t *lock) __releases(lock); kernel/locking/spinlock.c:246:26: note: '_raw_read_unlock' was previously declared here include/linux/fs.h:3308:5: error: type of 'simple_attr_open' does not match original declaration [-Werror=lto-type-mismatch] int simple_attr_open(struct inode *inode, struct file *file, fs/libfs.c:795: note: 'simple_attr_open' was previously declared here All of the above are caused by include/asm-generic/qrwlock_types.h failing to include asm/byteorder.h after commit e0d02285f16e ("locking/qrwlock: Use 'struct qrwlock' instead of 'struct __qrwlock'") in linux-4.15. Similar bugs may or may not exist in older kernels as well, but there is no easy way to test those with link-time optimizations, and kernels before 4.14 are harder to fix because they don't have Babu's patch series We had similar issues with CONFIG_ symbols in the past and ended up always including the configuration headers though linux/kconfig.h. This works around the issue through that same file, defining either __BIG_ENDIAN or __LITTLE_ENDIAN depending on CONFIG_CPU_BIG_ENDIAN, which is now always set on all architectures since commit 4c97a0c8fee3 ("arch: define CPU_BIG_ENDIAN for all fixed big endian archs"). Link: http://lkml.kernel.org/r/20180202154104.1522809-2-arnd@arndb.de Signed-off-by: Arnd Bergmann Cc: Babu Moger Cc: Andi Kleen Cc: Greg Kroah-Hartman Cc: Masahiro Yamada Cc: Nicolas Pitre Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- include/linux/kconfig.h | 6 ++++++ 1 file changed, 6 insertions(+) --- a/include/linux/kconfig.h +++ b/include/linux/kconfig.h @@ -4,6 +4,12 @@ #include +#ifdef CONFIG_CPU_BIG_ENDIAN +#define __BIG_ENDIAN 4321 +#else +#define __LITTLE_ENDIAN 1234 +#endif + #define __ARG_PLACEHOLDER_1 0, #define __take_second_arg(__ignored, val, ...) val