2015-12-10 16:34:32

by Wang YanQing

[permalink] [raw]
Subject: [PATCH] kbuild: support make dir/file.i for *.S

This feature could reduce a little time to expand all
the macros in *.S for reading.

Signed-off-by: Wang YanQing <[email protected]>
---
Makefile | 2 ++
scripts/Makefile.build | 6 ++++++
2 files changed, 8 insertions(+)

diff --git a/Makefile b/Makefile
index 7558c9c..d7e2060 100644
--- a/Makefile
+++ b/Makefile
@@ -1552,6 +1552,8 @@ endif
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.s: %.S prepare scripts FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
+%.i: %.S prepare scripts FORCE
+ $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.o: %.S prepare scripts FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.symtypes: %.c prepare scripts FORCE
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 2c47f9c..2a51d49 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -287,6 +287,12 @@ cmd_as_s_S = $(CPP) $(a_flags) -o $@ $<
$(obj)/%.s: $(src)/%.S FORCE
$(call if_changed_dep,as_s_S)

+quiet_cmd_cc_i_S = CPP $(quiet_modtag) $@
+cmd_cc_i_S = $(CPP) $(a_flags) -o $@ $<
+
+$(obj)/%.i: $(src)/%.S FORCE
+ $(call if_changed_dep,cc_i_S)
+
quiet_cmd_as_o_S = AS $(quiet_modtag) $@
cmd_as_o_S = $(CC) $(a_flags) -c -o $@ $<

--
1.8.5.6.2.g3d8a54e.dirty


2015-12-11 16:29:22

by Michal Marek

[permalink] [raw]
Subject: Re: [PATCH] kbuild: support make dir/file.i for *.S

Dne 10.12.2015 v 17:33 Wang YanQing napsal(a):
> This feature could reduce a little time to expand all
> the macros in *.S for reading.
>
> Signed-off-by: Wang YanQing <[email protected]>

Makes sense. Applied to kbuild.git#kbuild.

Michal

2015-12-12 19:13:06

by Brian Gerst

[permalink] [raw]
Subject: Re: [PATCH] kbuild: support make dir/file.i for *.S

On Thu, Dec 10, 2015 at 11:33 AM, Wang YanQing <[email protected]> wrote:
> This feature could reduce a little time to expand all
> the macros in *.S for reading.
>
> Signed-off-by: Wang YanQing <[email protected]>
> ---
> Makefile | 2 ++
> scripts/Makefile.build | 6 ++++++
> 2 files changed, 8 insertions(+)
>
> diff --git a/Makefile b/Makefile
> index 7558c9c..d7e2060 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1552,6 +1552,8 @@ endif
> $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
> %.s: %.S prepare scripts FORCE
> $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
> +%.i: %.S prepare scripts FORCE
> + $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
> %.o: %.S prepare scripts FORCE
> $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
> %.symtypes: %.c prepare scripts FORCE
> diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> index 2c47f9c..2a51d49 100644
> --- a/scripts/Makefile.build
> +++ b/scripts/Makefile.build
> @@ -287,6 +287,12 @@ cmd_as_s_S = $(CPP) $(a_flags) -o $@ $<
> $(obj)/%.s: $(src)/%.S FORCE
> $(call if_changed_dep,as_s_S)
>
> +quiet_cmd_cc_i_S = CPP $(quiet_modtag) $@
> +cmd_cc_i_S = $(CPP) $(a_flags) -o $@ $<
> +
> +$(obj)/%.i: $(src)/%.S FORCE
> + $(call if_changed_dep,cc_i_S)
> +
> quiet_cmd_as_o_S = AS $(quiet_modtag) $@
> cmd_as_o_S = $(CC) $(a_flags) -c -o $@ $<

*.s (lower case) is the suffix used for preprocessed assembly files,
and there is already a rule for that. *.i is for preprocessed C
files.

--
Brian Gerst

2015-12-13 08:17:58

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] kbuild: support make dir/file.i for *.S

2015-12-13 4:13 GMT+09:00 Brian Gerst <[email protected]>:
> On Thu, Dec 10, 2015 at 11:33 AM, Wang YanQing <[email protected]> wrote:
>> This feature could reduce a little time to expand all
>> the macros in *.S for reading.
>>
>> Signed-off-by: Wang YanQing <[email protected]>
>> ---
>> Makefile | 2 ++
>> scripts/Makefile.build | 6 ++++++
>> 2 files changed, 8 insertions(+)
>>
>> diff --git a/Makefile b/Makefile
>> index 7558c9c..d7e2060 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -1552,6 +1552,8 @@ endif
>> $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
>> %.s: %.S prepare scripts FORCE
>> $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
>> +%.i: %.S prepare scripts FORCE
>> + $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
>> %.o: %.S prepare scripts FORCE
>> $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
>> %.symtypes: %.c prepare scripts FORCE
>> diff --git a/scripts/Makefile.build b/scripts/Makefile.build
>> index 2c47f9c..2a51d49 100644
>> --- a/scripts/Makefile.build
>> +++ b/scripts/Makefile.build
>> @@ -287,6 +287,12 @@ cmd_as_s_S = $(CPP) $(a_flags) -o $@ $<
>> $(obj)/%.s: $(src)/%.S FORCE
>> $(call if_changed_dep,as_s_S)
>>
>> +quiet_cmd_cc_i_S = CPP $(quiet_modtag) $@
>> +cmd_cc_i_S = $(CPP) $(a_flags) -o $@ $<
>> +
>> +$(obj)/%.i: $(src)/%.S FORCE
>> + $(call if_changed_dep,cc_i_S)
>> +
>> quiet_cmd_as_o_S = AS $(quiet_modtag) $@
>> cmd_as_o_S = $(CC) $(a_flags) -c -o $@ $<
>
> *.s (lower case) is the suffix used for preprocessed assembly files,
> and there is already a rule for that. *.i is for preprocessed C
> files.
>

Right. We already support *.s and it is completely the same as
what this patch adds (except that *.i is now an alias of *.s,
which is also wrong as Brian pointed out.)

quiet_cmd_as_s_S = CPP $(quiet_modtag) $@
cmd_as_s_S = $(CPP) $(a_flags) -o $@ $<

$(obj)/%.s: $(src)/%.S FORCE
$(call if_changed_dep,as_s_S)


--
Best Regards
Masahiro Yamada

2015-12-14 17:12:31

by Wang YanQing

[permalink] [raw]
Subject: Re: [PATCH] kbuild: support make dir/file.i for *.S

On Sat, Dec 12, 2015 at 02:13:03PM -0500, Brian Gerst wrote:
> On Thu, Dec 10, 2015 at 11:33 AM, Wang YanQing <[email protected]> wrote:
> > This feature could reduce a little time to expand all
> > the macros in *.S for reading.
> >
> > Signed-off-by: Wang YanQing <[email protected]>
> > ---
> > Makefile | 2 ++
> > scripts/Makefile.build | 6 ++++++
> > 2 files changed, 8 insertions(+)
> >
> > diff --git a/Makefile b/Makefile
> > index 7558c9c..d7e2060 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -1552,6 +1552,8 @@ endif
> > $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
> > %.s: %.S prepare scripts FORCE
> > $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
> > +%.i: %.S prepare scripts FORCE
> > + $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
> > %.o: %.S prepare scripts FORCE
> > $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
> > %.symtypes: %.c prepare scripts FORCE
> > diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> > index 2c47f9c..2a51d49 100644
> > --- a/scripts/Makefile.build
> > +++ b/scripts/Makefile.build
> > @@ -287,6 +287,12 @@ cmd_as_s_S = $(CPP) $(a_flags) -o $@ $<
> > $(obj)/%.s: $(src)/%.S FORCE
> > $(call if_changed_dep,as_s_S)
> >
> > +quiet_cmd_cc_i_S = CPP $(quiet_modtag) $@
> > +cmd_cc_i_S = $(CPP) $(a_flags) -o $@ $<
> > +
> > +$(obj)/%.i: $(src)/%.S FORCE
> > + $(call if_changed_dep,cc_i_S)
> > +
> > quiet_cmd_as_o_S = AS $(quiet_modtag) $@
> > cmd_as_o_S = $(CC) $(a_flags) -c -o $@ $<
>
> *.s (lower case) is the suffix used for preprocessed assembly files,
> and there is already a rule for that. *.i is for preprocessed C
> files.

Agreed, you are right!

Thanks.

2015-12-14 17:16:55

by Michal Marek

[permalink] [raw]
Subject: Re: [PATCH] kbuild: support make dir/file.i for *.S

Dne 14.12.2015 v 17:14 Wang YanQing napsal(a):
> On Sat, Dec 12, 2015 at 02:13:03PM -0500, Brian Gerst wrote:
>> On Thu, Dec 10, 2015 at 11:33 AM, Wang YanQing <[email protected]> wrote:
>>> This feature could reduce a little time to expand all
>>> the macros in *.S for reading.
>>>
>>> Signed-off-by: Wang YanQing <[email protected]>
>>> ---
>>> Makefile | 2 ++
>>> scripts/Makefile.build | 6 ++++++
>>> 2 files changed, 8 insertions(+)
>>>
>>> diff --git a/Makefile b/Makefile
>>> index 7558c9c..d7e2060 100644
>>> --- a/Makefile
>>> +++ b/Makefile
>>> @@ -1552,6 +1552,8 @@ endif
>>> $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
>>> %.s: %.S prepare scripts FORCE
>>> $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
>>> +%.i: %.S prepare scripts FORCE
>>> + $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
>>> %.o: %.S prepare scripts FORCE
>>> $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
>>> %.symtypes: %.c prepare scripts FORCE
>>> diff --git a/scripts/Makefile.build b/scripts/Makefile.build
>>> index 2c47f9c..2a51d49 100644
>>> --- a/scripts/Makefile.build
>>> +++ b/scripts/Makefile.build
>>> @@ -287,6 +287,12 @@ cmd_as_s_S = $(CPP) $(a_flags) -o $@ $<
>>> $(obj)/%.s: $(src)/%.S FORCE
>>> $(call if_changed_dep,as_s_S)
>>>
>>> +quiet_cmd_cc_i_S = CPP $(quiet_modtag) $@
>>> +cmd_cc_i_S = $(CPP) $(a_flags) -o $@ $<
>>> +
>>> +$(obj)/%.i: $(src)/%.S FORCE
>>> + $(call if_changed_dep,cc_i_S)
>>> +
>>> quiet_cmd_as_o_S = AS $(quiet_modtag) $@
>>> cmd_as_o_S = $(CC) $(a_flags) -c -o $@ $<
>>
>> *.s (lower case) is the suffix used for preprocessed assembly files,
>> and there is already a rule for that. *.i is for preprocessed C
>> files.
>
> Agreed, you are right!

Ah, I missed. I'll revert the patch in the kbuild tree.

Michal

2015-12-15 01:41:15

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] kbuild: support make dir/file.i for *.S

Hi Michal,

2015-12-15 2:16 GMT+09:00 Michal Marek <[email protected]>:

>
> Ah, I missed. I'll revert the patch in the kbuild tree.


Please drop the noise commit rather than reverting it.
It was just applied a few days ago, and there is only one commit on top of it.




--
Best Regards
Masahiro Yamada