[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH v4 12/18] xen/build: factorise generation of the linker scripts
On 31.03.2020 12:30, Anthony PERARD wrote: > In Arm and X86 makefile, generating the linker script is the same, so > we can simply have both call the same macro. > > We need to add *.lds files into extra-y so that Rules.mk can find the > .*.cmd dependency file and load it. > > Change made to the command line: > - Use of $(CPP) instead of $(CC) -E > - Remove -Ui386. > We don't compile Xen for i386 anymore, so that macro is never > defined. Also it doesn't make sense on Arm. > > Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> > --- > > Notes: > v4: > - fix rebuild by adding FORCE as dependency > - Use $(CPP) > - remove -Ui386 > - avoid using "define" for cmd_cc_lds_S, as adding '; \' on each line is > still mandatory for if_changed (or cmd) macro to work. I still don't believe in there being a need for "; \" there. This actually breaks things, after all: > --- a/xen/Rules.mk > +++ b/xen/Rules.mk > @@ -236,6 +236,12 @@ cmd_s_S = $(CPP) $(filter-out -Wa$(comma)%,$(a_flags)) > $< -o $@ > %.s: %.S FORCE > $(call if_changed,cpp_s_S) > > +# Linker scripts, .lds.S -> .lds > +quiet_cmd_cc_lds_S = LDS $@ > +cmd_cc_lds_S = $(CPP) -P $(filter-out -Wa$(comma)%,$(a_flags)) -o $@ $<; \ > + sed -e 's/.*\.lds\.o:/$(@F):/g' <$(dot-target).d >$(dot-target).d.new; \ > + mv -f $(dot-target).d.new $(dot-target).d if $(CPP) or sed fail, previously the whole rule would have failed, which no longer is the case with your use of semicolons. There ought to be a solution to this, ideally one better than adding "set -e" as the first command ("define" would at least deal with the multi-line make issue, but without it being clear to me why the semicolons would be needed I don't think I can suggest anything there at the moment). Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |