Re: [tip:x86/debug] x86, asm: Fix CFI macro invocations to deal withshortcomings in gas

From: Alexander van Heukelum
Date: Thu Oct 21 2010 - 17:30:55 EST


On Thu, 21 Oct 2010 12:16 +0200, "Ingo Molnar" <mingo@xxxxxxx> wrote:
>
> * tip-bot for Jan Beulich <JBeulich@xxxxxxxxxx> wrote:
>
> > Commit-ID: 3234282f33b29d349bcada40204fc7c8fda7fe72
> > Gitweb: http://git.kernel.org/tip/3234282f33b29d349bcada40204fc7c8fda7fe72
> > Author: Jan Beulich <JBeulich@xxxxxxxxxx>
> > AuthorDate: Tue, 19 Oct 2010 14:52:26 +0100
> > Committer: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
> > CommitDate: Tue, 19 Oct 2010 14:28:02 -0700
> >
> > x86, asm: Fix CFI macro invocations to deal with shortcomings in gas
>
> This commit broke the UML build (see the full error log below).
>
> Ingo
>
> /home/mingo/tip/arch/um/os-Linux/irq.c: In function
> âos_waiting_for_eventsâ:
> /home/mingo/tip/arch/um/os-Linux/irq.c:35: error: expected â)â before
> string constant
> /home/mingo/tip/arch/um/os-Linux/irq.c: In function âos_free_irq_by_cbâ:
> /home/mingo/tip/arch/um/os-Linux/irq.c:94: error: expected â)â before
> string constant

Hi all,

It turns out to generate something like this:
printk ( ("<3>") "something");
The extra parentheses here break the compile.

Change the sed-program to add the parentheses only for numbers.

Greetings,
Alexander
Fix for "x86, asm: Fix CFI macro invocations to deal with shortcomings in gas"

It turns out to generate something like this:
printk ( ("<3>") "something");
The extra parentheses here break the compile.

Change the sed-program to add the parentheses only for numbers.


Signed-off-by: Alexander van Heukelum <heukelum@xxxxxxxxxxx>

diff --git a/Kbuild b/Kbuild
index 3995939..431f7ca 100644
--- a/Kbuild
+++ b/Kbuild
@@ -53,7 +53,8 @@ targets += arch/$(SRCARCH)/kernel/asm-offsets.s
# Default sed regexp - multiline due to syntax constraints
define sed-y
"/^->/{s:->#\(.*\):/* \1 */:; \
- s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 (\2) /* \3 */:; \
+ s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 (\2) /* \3 */:; \
+ s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:->::; p;}"
endef