Return-path: Received: from wolverine01.qualcomm.com ([199.106.114.254]:51613 "EHLO wolverine01.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754011Ab2B0VSL (ORCPT ); Mon, 27 Feb 2012 16:18:11 -0500 Date: Mon, 27 Feb 2012 13:18:06 -0800 From: "Luis R. Rodriguez" To: Hauke Mehrtens CC: , , , "Luis R. Rodriguez" Subject: Re: [PATCH 0/5] compat / compat-wireless: merge autoconf generation Message-ID: <20120227211806.GB5646@tux> (sfid-20120227_221826_085002_7FE82C2B) References: <1330134726-1634-1-git-send-email-rodrigue@qca.qualcomm.com> <4F48C08A.5070501@hauke-m.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" In-Reply-To: <4F48C08A.5070501@hauke-m.de> Sender: linux-wireless-owner@vger.kernel.org List-ID: On Sat, Feb 25, 2012 at 12:05:46PM +0100, Hauke Mehrtens wrote: > On 02/25/2012 02:52 AM, Luis R. Rodriguez wrote: > > From: Luis R. Rodriguez > > > > While testing ckmake cross compiling compat through different kernels I > > realized that compat was failing to build on some kernels but compat-wireless > > was not. The reason for this turned out to be that compat did not have an > > autoconf for the CONFIG_COMPAT_KERNEL_* variables. In order to make use > > of a variable properly in code on kernel we need two things: a makefile > > equivalent and a header file that defines it. The compat project had > > only makefile variable generation while compat-wireless had makefile > > variable generation with a *few* variables propagated to actual code. > > > > To avoid issues with this any further I've decided to try merging the > > autoconf effort for both projects and taking leads on what compat does > > first. > > > > compat then does the CONFIG_COMPAT_KERNEL_* trickery and generates a > > clean .config for us. This in turn generates our compat's compat_autoconf.h. > > The compat-wireless project leverages this work by dropping its own > > Makefile hackery in favor of the same work and later also uses the same > > .config to expand its own compat_autoconf.h. > > > > John, I could use some extra help on reviewing the RHEL stuff. I'm going > > to push this stuff out now to help with testing. > > > > compat: > > > > Luis R. Rodriguez (2): > > compat: fix few compilations by adding compat_autoconf.h support > > compat: add some initial RHEL support > > > > .gitignore | 10 ++++ > > Makefile | 59 ++++++++++------------ > > include/linux/compat_autoconf.h | 37 -------------- > > scripts/gen-compat-autoconf.sh | 105 +++++++++++++++++++++++++++++++++++++++ > > scripts/gen-compat-config.sh | 60 ++++++++++++++++++++++ > > 5 files changed, 201 insertions(+), 70 deletions(-) > > delete mode 100644 include/linux/compat_autoconf.h > > create mode 100755 scripts/gen-compat-autoconf.sh > > create mode 100755 scripts/gen-compat-config.sh > > > > compat-wireless: > > > > Luis R. Rodriguez (3): > > compat-wireless: fix old checks on KERNEL_SUBLEVEL > > compat-wireless: start using CONFIG_COMPAT_KERNEL_ in code > > compat-wireless: use compat's CONFIG_COMPAT_KERNEL_* variables > > Makefile | 22 ++++++++++++++++------ > > config.mk | 24 ++++-------------------- > > scripts/check_config.sh | 9 +++++---- > > scripts/gen-compat-autoconf.sh | 13 +++++++------ > > 4 files changed, 32 insertions(+), 36 deletions(-) > > > > This patch series breaks parallel build. > Before these patches where applied parallel build was no problem I just > saw two error at the beginning, but after this patch series it does not > work any more. > > These are the current error messages at the beginning and then it > compiles sequential. > > Hauke > > hauke@hauke:~/compat-wireless/compat-wireless$ make -j5 > make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent > make rule. > make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent > make rule. > ./scripts/gen-compat-autoconf.sh .config config.mk > > include/linux/compat_autoconf.h > make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent > make rule. > make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent > make rule. > make -C /home/hauke/compat-wireless/compat-wireless modules > make[1]: Entering directory `/home/hauke/compat-wireless/compat-wireless' > make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent > make rule. > make -C /lib/modules/3.0.0-16-generic/build > M=/home/hauke/compat-wireless/compat-wireless modules > make[2]: Entering directory `/usr/src/linux-headers-3.0.0-16-generic' > LD /home/hauke/compat-wireless/compat-wireless/compat/built-in.o I had at first the below cheasy fix, but now I have an even better one that does not require recursion. I'll post and merge. Thanks for reporting this. diff --git a/Makefile b/Makefile index d96d098..d11da17 100644 --- a/Makefile +++ b/Makefile @@ -62,8 +62,8 @@ install: modules $(COMPAT_AUTOCONF): ; $(COMPAT_CONFIG): - @$(PWD)/scripts/gen-compat-config.sh > $(PWD)/$(COMPAT_CONFIG) - @$(PWD)/scripts/gen-compat-autoconf.sh $(COMPAT_CONFIG) > $(PWD)/$(COMPAT_AUTOCONF) + +@$(PWD)/scripts/gen-compat-config.sh > $(PWD)/$(COMPAT_CONFIG) + +@$(PWD)/scripts/gen-compat-autoconf.sh $(COMPAT_CONFIG) > $(PWD)/$(COMPAT_AUTOCONF) @$(MAKE) -C $(PWD) modules kkinstall: modules