[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [XEN PATCH v2 10/12] xen/build: use new $(c_flags) and $(a_flags) instead of $(CFLAGS)
On Thu, Jan 30, 2020 at 02:29:42PM +0100, Jan Beulich wrote: > On 17.01.2020 11:53, Anthony PERARD wrote: > > We would like to calculate CFLAGS once and before calling Rules.mk, > > so the variable CFLAGS needs to have the same value across the whole > > build. Thus we need a new variable where some flags can change > > depending on the target name. > > > > Both the dependency and __OBJECT_FILE__ are such flags that change > > depending on the target, so there are move out of $(CFLAGS). > > I'm afraid I don't understand: Being a delayed expansion (or > "recursively expanded") variable, what problem is there when CFLAGS > references $@? Is there a plan to change the variable's flavor? If > so, I'd like to ask for this to be mentioned here. "Calculate once", > at least to me, doesn't imply this. If I rewrite the first paragraph thus, would that be better? In a later patch, we want to calculate the CFLAGS in xen/Makefile, then export it. So have Rules.mk use a CFLAGS from the environment variables. This will mean that if Rules.mk or a Makefile modify CFLAGS for a target, the modification propagates to other targets. Thus we will need a different variable name than the one from the environment which can have a different value for each target. > > @@ -141,9 +137,16 @@ endif > > # Always build obj-bin files as binary even if they come from C source. > > $(obj-bin-y): CFLAGS := $(filter-out -flto,$(CFLAGS)) > > > > +c_flags = -MMD -MF $(@D)/.$(@F).d \ > > + $(CFLAGS) \ > > + '-D__OBJECT_FILE__="$@"' > > + > > +a_flags = -MMD -MF $(@D)/.$(@F).d \ > > + $(AFLAGS) > > Is there a reason both get extended over multiple lines? Beside that it looks cleaner to me, not really. > > --- a/xen/include/Makefile > > +++ b/xen/include/Makefile > > @@ -64,7 +64,7 @@ compat/%.h: compat/%.i Makefile > > $(BASEDIR)/tools/compat-build-header.py > > mv -f $@.new $@ > > > > compat/%.i: compat/%.c Makefile > > - $(CPP) $(filter-out -Wa$(comma)% -M% %.d -include > > %/include/xen/config.h,$(CFLAGS)) $(cppflags-y) -o $@ $< > > + $(CPP) $(filter-out -Wa$(comma)% -M% %.d -include > > %/include/xen/config.h,$(c_flags)) $(cppflags-y) -o $@ $< > > I think this wants to continue to reference $(CFLAGS) and instead have > the -M% and %.d patterns dropped. Similarly I guess as-insn in Config.mk > could then have these two patterns dropped. It's probably a good idea to keep using CFLAGS, I'll look into it. As to change as-insn, I can move it out of Config.mk and then change it. I'll look into that as well. Thanks, -- Anthony PERARD _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |