From: Jeroen Hofstee <jeroen@myspectrum.nl>
To: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: u-boot@lists.denx.de, linux-kernel@vger.kernel.org
Subject: Re: [U-Boot] [RFC] kbuild.h: workaround for llvm IAS
Date: Tue, 24 Jun 2014 21:36:06 +0200 [thread overview]
Message-ID: <53A9D326.9060409@myspectrum.nl> (raw)
In-Reply-To: <20140624215349.3E89.AA925319@jp.panasonic.com>
Hi Masahiro,
On 24-06-14 14:53, Masahiro Yamada wrote:
> On Thu, 12 Jun 2014 23:40:54 +0200
> Jeroen Hofstee <jeroen@myspectrum.nl> wrote:
>
>> KBuild (ab)uses the asm statement to write to a file and
>> llvm integrated as chokes about these invalid asm statements.
>> Workaround it by making it look like valid asm code.
>>
>> Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
> I think Linux has the same problem.
>
> Are you willing to this patch to linux-kbuild ML?
> Or fixing U-Boot only?
I don't mind in general, but it is just noise for them (cc-ing them to
create some). For u-boot (ARM) you actually get a valid binary with
this patch after clang support has landed, for linux you just get other
errors as far as I tried (native only), patch below.
However in linux there seem more spots relying on the format, e.g.
arch/ia64/kvm/Makefile
arch/ia64/kernel/Makefile
arch/um/Makefile
So if anything, I think this should be made a general rules first
in the makefiles. It seems stupid to potentially break something
while it gains nothing.
So yes, u-boot only afaic, or does that make your syncing more difficult?
Regards,
Jeroen
--- a/Kbuild
+++ b/Kbuild
@@ -52,7 +52,8 @@ targets += arch/$(SRCARCH)/kernel/asm-offsets.s
# Default sed regexp - multiline due to syntax constraints
define sed-y
- "/^->/{s:->#\(.*\):/* \1 */:; \
+ "s:[[:space:]]*\.ascii[[:space:]]*\"\(.*\)\":\1:; \
+ /^->/{s:->#\(.*\):/* \1 */:; \
s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:->::; p;}"
diff --git a/include/linux/kbuild.h b/include/linux/kbuild.h
index 22a7219..4e80f3a 100644
--- a/include/linux/kbuild.h
+++ b/include/linux/kbuild.h
@@ -2,14 +2,14 @@
#define __LINUX_KBUILD_H
#define DEFINE(sym, val) \
- asm volatile("\n->" #sym " %0 " #val : : "i" (val))
+ asm volatile("\n.ascii \"->" #sym " %0 " #val "\"" : : "i" (val))
-#define BLANK() asm volatile("\n->" : : )
+#define BLANK() asm volatile("\n.ascii \"->\"" : : )
#define OFFSET(sym, str, mem) \
DEFINE(sym, offsetof(struct str, mem))
#define COMMENT(x) \
- asm volatile("\n->#" x)
+ asm volatile("\n.ascii \"->#" x "\"")
#endif
diff --git a/scripts/mod/Makefile b/scripts/mod/Makefile
index c11212f..0698af3 100644
--- a/scripts/mod/Makefile
+++ b/scripts/mod/Makefile
@@ -6,7 +6,8 @@ modpost-objs := modpost.o file2alias.o sumversion.o
devicetable-offsets-file := devicetable-offsets.h
define sed-y
- "/^->/{s:->#\(.*\):/* \1 */:; \
+ "s:[[:space:]]*\.ascii[[:space:]]*\"\(.*\)\":\1:; \
+ /^->/{s:->#\(.*\):/* \1 */:; \
s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:->::; p;}"
WARNING: multiple messages have this Message-ID (diff)
From: Jeroen Hofstee <jeroen@myspectrum.nl>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC] kbuild.h: workaround for llvm IAS
Date: Tue, 24 Jun 2014 21:36:06 +0200 [thread overview]
Message-ID: <53A9D326.9060409@myspectrum.nl> (raw)
In-Reply-To: <20140624215349.3E89.AA925319@jp.panasonic.com>
Hi Masahiro,
On 24-06-14 14:53, Masahiro Yamada wrote:
> On Thu, 12 Jun 2014 23:40:54 +0200
> Jeroen Hofstee <jeroen@myspectrum.nl> wrote:
>
>> KBuild (ab)uses the asm statement to write to a file and
>> llvm integrated as chokes about these invalid asm statements.
>> Workaround it by making it look like valid asm code.
>>
>> Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
> I think Linux has the same problem.
>
> Are you willing to this patch to linux-kbuild ML?
> Or fixing U-Boot only?
I don't mind in general, but it is just noise for them (cc-ing them to
create some). For u-boot (ARM) you actually get a valid binary with
this patch after clang support has landed, for linux you just get other
errors as far as I tried (native only), patch below.
However in linux there seem more spots relying on the format, e.g.
arch/ia64/kvm/Makefile
arch/ia64/kernel/Makefile
arch/um/Makefile
So if anything, I think this should be made a general rules first
in the makefiles. It seems stupid to potentially break something
while it gains nothing.
So yes, u-boot only afaic, or does that make your syncing more difficult?
Regards,
Jeroen
--- a/Kbuild
+++ b/Kbuild
@@ -52,7 +52,8 @@ targets += arch/$(SRCARCH)/kernel/asm-offsets.s
# Default sed regexp - multiline due to syntax constraints
define sed-y
- "/^->/{s:->#\(.*\):/* \1 */:; \
+ "s:[[:space:]]*\.ascii[[:space:]]*\"\(.*\)\":\1:; \
+ /^->/{s:->#\(.*\):/* \1 */:; \
s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:->::; p;}"
diff --git a/include/linux/kbuild.h b/include/linux/kbuild.h
index 22a7219..4e80f3a 100644
--- a/include/linux/kbuild.h
+++ b/include/linux/kbuild.h
@@ -2,14 +2,14 @@
#define __LINUX_KBUILD_H
#define DEFINE(sym, val) \
- asm volatile("\n->" #sym " %0 " #val : : "i" (val))
+ asm volatile("\n.ascii \"->" #sym " %0 " #val "\"" : : "i" (val))
-#define BLANK() asm volatile("\n->" : : )
+#define BLANK() asm volatile("\n.ascii \"->\"" : : )
#define OFFSET(sym, str, mem) \
DEFINE(sym, offsetof(struct str, mem))
#define COMMENT(x) \
- asm volatile("\n->#" x)
+ asm volatile("\n.ascii \"->#" x "\"")
#endif
diff --git a/scripts/mod/Makefile b/scripts/mod/Makefile
index c11212f..0698af3 100644
--- a/scripts/mod/Makefile
+++ b/scripts/mod/Makefile
@@ -6,7 +6,8 @@ modpost-objs := modpost.o file2alias.o sumversion.o
devicetable-offsets-file := devicetable-offsets.h
define sed-y
- "/^->/{s:->#\(.*\):/* \1 */:; \
+ "s:[[:space:]]*\.ascii[[:space:]]*\"\(.*\)\":\1:; \
+ /^->/{s:->#\(.*\):/* \1 */:; \
s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:->::; p;}"
next prev parent reply other threads:[~2014-06-24 19:43 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-12 21:40 [U-Boot] [RFC] kbuild.h: workaround for llvm IAS Jeroen Hofstee
2014-06-24 12:53 ` Masahiro Yamada
2014-06-24 19:36 ` Jeroen Hofstee [this message]
2014-06-24 19:36 ` Jeroen Hofstee
2014-06-27 6:38 ` Masahiro Yamada
2014-06-27 6:38 ` Masahiro Yamada
2014-06-28 12:53 ` Jeroen Hofstee
2014-06-28 12:53 ` Jeroen Hofstee
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=53A9D326.9060409@myspectrum.nl \
--to=jeroen@myspectrum.nl \
--cc=linux-kernel@vger.kernel.org \
--cc=u-boot@lists.denx.de \
--cc=yamada.m@jp.panasonic.com \
/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.