All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: "Vinícius Tinti" <viniciustinti@gmail.com>
Cc: Michal Marek <mmarek@suse.cz>,
	linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
	Behan Webster <behanw@converseincode.com>
Subject: Re: [PATCH] kbuild: add support to generate LLVM bitcode files
Date: Sun, 20 Jul 2014 12:02:39 +0200	[thread overview]
Message-ID: <20140720100239.GA3496@ravnborg.org> (raw)
In-Reply-To: <1405733677-16650-1-git-send-email-viniciustinti@gmail.com>

On Fri, Jul 18, 2014 at 10:34:37PM -0300, Vinícius Tinti wrote:
> Allows kbuild to generate LLVM bitcode files with the .ll extension when
> building with Clang.
> 
>   # c code
>   CC=clang make kernel/pid.ll
> 
>   # asm code
>   CC=clang make arch/arm/kernel/calls.ll
> 
> Signed-off-by: Vinícius Tinti <viniciustinti@gmail.com>
> Signed-off-by: Behan Webster <behanw@converseincode.com>
> ---
>  Makefile               |  7 +++++++
>  scripts/Makefile.build | 18 ++++++++++++++++++
>  2 files changed, 25 insertions(+)
> 
> diff --git a/Makefile b/Makefile
> index f3c543d..4eb0d14 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1484,6 +1484,13 @@ endif
>  %.symtypes: %.c prepare scripts FORCE
>  	$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
>  
> +ifeq ($(COMPILER),clang)
> +%.ll: %.c prepare scripts FORCE
> +	$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
> +%.ll: %.S prepare scripts FORCE
> +	$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
> +endif
Can we drop the test for $(COMPILER) here?
If one try this with gcc then gcc will just fail if it do not support the clang flags supplied.

And help section should be updated to list .ll too.


> diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> index bf3e677..9ea19d6 100644
> --- a/scripts/Makefile.build
> +++ b/scripts/Makefile.build
> @@ -174,6 +174,14 @@ cmd_cc_symtypes_c =                                                         \
>  $(obj)/%.symtypes : $(src)/%.c FORCE
>  	$(call cmd,cc_symtypes_c)
>  
> +ifeq ($(COMPILER),clang)
> +quiet_cmd_cc_ll_c = CC $(quiet_modtag)  $@
> +cmd_cc_ll_c       = $(CC) $(c_flags) $(DISABLE_LTO) -fverbose-asm -emit-llvm -S -o $@ $<

Can we drop the test for COMPILER here too?
Do -fverbose-asm make sense when generating .ll files?
It looks like a leftover from what you copied.


> +# LLVM bitcode
> +# ---------------------------------------------------------------------------
> +ifeq ($(COMPILER),clang)
> +quiet_cmd_as_ll_S = CPP $(quiet_modtag) $@
> +cmd_as_ll_S       = $(CPP) $(a_flags)   -o $@ $<
> +
> +$(obj)/%.ll: $(src)/%.S FORCE
> +	$(call if_changed_dep,as_ll_S)
> +endif
This chunk belongs together with the other chunk.
There is no reason to separate .S => .ll and .c => .ll rules.

The current rules for .c => .lst etc is a mess and not something to be too
much inspired from.

	Sam

  reply	other threads:[~2014-07-20 10:02 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-19  1:34 [PATCH] kbuild: add support to generate LLVM bitcode files Vinícius Tinti
2014-07-20 10:02 ` Sam Ravnborg [this message]
2014-07-20 21:04   ` Sam Ravnborg
2014-07-20 21:30     ` Sam Ravnborg
2014-07-21 22:42       ` Tinti
2014-07-22  0:35         ` Sam Ravnborg
2014-07-23 11:56         ` [PATCH v2] " Vinícius Tinti
2014-07-23 12:00           ` Tinti
2014-09-11 23:13             ` [PATCH v3] " Vinícius Tinti

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=20140720100239.GA3496@ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=behanw@converseincode.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mmarek@suse.cz \
    --cc=viniciustinti@gmail.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.