From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752136AbcFNK0D (ORCPT ); Tue, 14 Jun 2016 06:26:03 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:36839 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751501AbcFNK0A (ORCPT ); Tue, 14 Jun 2016 06:26:00 -0400 Date: Tue, 14 Jun 2016 12:26:00 +0200 From: Vishal Thanki To: Sasha Levin Cc: linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/2] liblockdep: Fix compile errors Message-ID: <20160614102557.GA14577@c50.bag.software> References: <1465479275-32468-1-git-send-email-vishalthanki@gmail.com> <1465479275-32468-2-git-send-email-vishalthanki@gmail.com> <575B8B20.3060301@oracle.com> <575F19A9.4070304@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <575F19A9.4070304@oracle.com> User-Agent: Mutt/1.6.1 (2016-04-27) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jun 13, 2016 at 04:38:01PM -0400, Sasha Levin wrote: > On 06/11/2016 04:36 AM, Vishal Thanki wrote: > > On Sat, Jun 11, 2016 at 5:53 AM, Sasha Levin wrote: > >> On 06/09/2016 09:34 AM, Vishal Thanki wrote: > >>> dfaaf3fa0: (Use __jhash_mix() for iterate_chain_key()) > >>> Fixed by adding jhash.h with minimal stuff required > >> > >> Can we, instead of copying it over, include jhash.h directly > >> (just like we do for hash.h)? > >> > >> > > That was the first thing I tried, but then it caused more compilation > > errors due to nested header dependencies and I ended up taking the > > only required stuff. Better ideas are welcome. > > I just gave it a quick go and didn't see anything beyond needing to take > in linux/unaligned/packed_struct.h as well. What sort of errors did you > hit? > Yes, you are right about just adding the linux/unaligned/packed_struct.h should work. However I hit the following errors when I did that: CC lockdep.o In file included from ./uinclude/linux/jhash.h:27:0, from ../../../kernel/locking/lockdep.c:49, from lockdep.c:8: ./uinclude/linux/unaligned/packed_struct.h:7:29: error: conflicting types for ‘__packed’ struct __una_u32 { u32 x; } __packed; ^ ./uinclude/linux/unaligned/packed_struct.h:6:29: note: previous declaration of ‘__packed’ was here struct __una_u16 { u16 x; } __packed; ^ ./uinclude/linux/unaligned/packed_struct.h:8:29: error: conflicting types for ‘__packed’ struct __una_u64 { u64 x; } __packed; ^ ./uinclude/linux/unaligned/packed_struct.h:6:29: note: previous declaration of ‘__packed’ was here struct __una_u16 { u16 x; } __packed; ^ which I overlooked and had nothing to do with header dependencies, pardon my ignorance. I think gcc on my machine (version 5.3.1 on Fedora 22) throws the above error which I think can be fixed by adding a define in uinclude/linux/compile.h like following: #define __packed __attribute__((__packed__)) After fixing, I hit following warning: In file included from ../../../kernel/locking/lockdep.c:49:0, from lockdep.c:8: ./uinclude/linux/jhash.h: In function ‘jhash’: ./uinclude/linux/jhash.h:37:16: warning: implicit declaration of function ‘rol32’ [-Wimplicit-function-declaration] a -= c; a ^= rol32(c, 4); c += b; \ which can be fixed by adding the inline definition of rol32 from kernel's biopts.h file to uinclude/linux/bitops.h file (which is empty as of now). I will rework the patch with the fixes and send again. Thanks, Vishal