From: David Miller <davem@davemloft.net>
To: olecom@flower.upol.cz
Cc: torvalds@linux-foundation.org, paulus@samba.org,
linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org
Subject: Re: Kbuild change breaks the ppc64 build
Date: Thu, 08 Feb 2007 05:17:06 -0800 (PST) [thread overview]
Message-ID: <20070208.051706.112290704.davem@davemloft.net> (raw)
In-Reply-To: <20070208124756.GU22699@flower.upol.cz>
From: Oleg Verych <olecom@flower.upol.cz>
Date: Thu, 8 Feb 2007 13:47:56 +0100
> On Thu, Feb 08, 2007 at 10:10:54PM +1100, Paul Mackerras wrote:
> > Commit 5de043f4bd11a9e0a3e8daec7d1905da575a76b7 breaks the build on
> > 64-bit powerpc because we no longer get the -m64 flag passed to gcc.
> > There is code in arch/powerpc/Makefile which adds (or used to add)
> > -m64 to AS, LD and CC if we are running on a 64-bit machine (which I
> > am) and have a biarch toolchain (which I do). Without -m64, the
> > toolchain assumes 32-bit and all sorts of things break spectacularly.
> >
> > I haven't yet tracked down exactly why this commit has this effect,
> > since I find it takes considerable time and effort to understand
> > Kbuild.
>
> As i have refactored some CC checking code in Kbuild.include, it
> turned, that some versions of `make' after calling nested functions,
> add (or leave) prefix whitespace to result, thus ifeq[0] fails:
That's not it, did you see my fix for this problem posted
already? The issue is the leading spaces on the first
line of the define for checker-shell. Those propagate
into the callers, although they are reduced down to a
single space.
This will give you spaces in the result on any version of
make.
Here is my fix again for your reference.
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index 8d7eabf..a1880e8 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -60,16 +60,15 @@ endef
# Usage: option = $(call checker-shell,$(CC)...-o $$OUT,option-ok,otherwise)
# Exit code chooses option. $$OUT is safe location for needless output.
define checker-shell
- $(strip
- $(shell set -e; \
- DIR=$(KBUILD_EXTMOD); \
- cd $${DIR:-$(objtree)}; \
- OUT=$$PWD/.$$$$.null; \
- if $(1) >/dev/null 2>&1; \
- then echo "$(2)"; \
- else echo "$(3)"; \
- fi; \
- rm -f $$OUT))
+$(shell set -e; \
+ DIR=$(KBUILD_EXTMOD); \
+ cd $${DIR:-$(objtree)}; \
+ OUT=$$PWD/.$$$$.null; \
+ if $(1) >/dev/null 2>&1; \
+ then echo "$(2)"; \
+ else echo "$(3)"; \
+ fi; \
+ rm -f $$OUT)
endef
# as-option
WARNING: multiple messages have this Message-ID (diff)
From: David Miller <davem@davemloft.net>
To: olecom@flower.upol.cz
Cc: paulus@samba.org, torvalds@linux-foundation.org,
linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org
Subject: Re: Kbuild change breaks the ppc64 build
Date: Thu, 08 Feb 2007 05:17:06 -0800 (PST) [thread overview]
Message-ID: <20070208.051706.112290704.davem@davemloft.net> (raw)
In-Reply-To: <20070208124756.GU22699@flower.upol.cz>
From: Oleg Verych <olecom@flower.upol.cz>
Date: Thu, 8 Feb 2007 13:47:56 +0100
> On Thu, Feb 08, 2007 at 10:10:54PM +1100, Paul Mackerras wrote:
> > Commit 5de043f4bd11a9e0a3e8daec7d1905da575a76b7 breaks the build on
> > 64-bit powerpc because we no longer get the -m64 flag passed to gcc.
> > There is code in arch/powerpc/Makefile which adds (or used to add)
> > -m64 to AS, LD and CC if we are running on a 64-bit machine (which I
> > am) and have a biarch toolchain (which I do). Without -m64, the
> > toolchain assumes 32-bit and all sorts of things break spectacularly.
> >
> > I haven't yet tracked down exactly why this commit has this effect,
> > since I find it takes considerable time and effort to understand
> > Kbuild.
>
> As i have refactored some CC checking code in Kbuild.include, it
> turned, that some versions of `make' after calling nested functions,
> add (or leave) prefix whitespace to result, thus ifeq[0] fails:
That's not it, did you see my fix for this problem posted
already? The issue is the leading spaces on the first
line of the define for checker-shell. Those propagate
into the callers, although they are reduced down to a
single space.
This will give you spaces in the result on any version of
make.
Here is my fix again for your reference.
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index 8d7eabf..a1880e8 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -60,16 +60,15 @@ endef
# Usage: option = $(call checker-shell,$(CC)...-o $$OUT,option-ok,otherwise)
# Exit code chooses option. $$OUT is safe location for needless output.
define checker-shell
- $(strip
- $(shell set -e; \
- DIR=$(KBUILD_EXTMOD); \
- cd $${DIR:-$(objtree)}; \
- OUT=$$PWD/.$$$$.null; \
- if $(1) >/dev/null 2>&1; \
- then echo "$(2)"; \
- else echo "$(3)"; \
- fi; \
- rm -f $$OUT))
+$(shell set -e; \
+ DIR=$(KBUILD_EXTMOD); \
+ cd $${DIR:-$(objtree)}; \
+ OUT=$$PWD/.$$$$.null; \
+ if $(1) >/dev/null 2>&1; \
+ then echo "$(2)"; \
+ else echo "$(3)"; \
+ fi; \
+ rm -f $$OUT)
endef
# as-option
next prev parent reply other threads:[~2007-02-08 13:17 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-08 11:10 Kbuild change breaks the ppc64 build Paul Mackerras
2007-02-08 11:10 ` Paul Mackerras
2007-02-08 12:00 ` David Miller
2007-02-08 12:00 ` David Miller
2007-02-08 12:35 ` Oleg Verych
2007-02-08 12:35 ` Oleg Verych
2007-02-08 14:12 ` Michal Ostrowski
2007-02-08 14:12 ` Michal Ostrowski
2007-02-08 12:47 ` Oleg Verych
2007-02-08 12:47 ` Oleg Verych
2007-02-08 13:17 ` David Miller [this message]
2007-02-08 13:17 ` David Miller
2007-02-08 13:45 ` final (Re: Kbuild change breaks the ppc64 build) Oleg Verych
2007-02-08 13:45 ` Oleg Verych
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070208.051706.112290704.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=olecom@flower.upol.cz \
--cc=paulus@samba.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.