[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v9 24/27] xsplice: Stacking build-id dependency checking.



>>> On 27.04.16 at 18:36, <konrad@xxxxxxxxxx> wrote:
> On Wed, Apr 27, 2016 at 03:27:27AM -0600, Jan Beulich wrote:
>> >>> On 25.04.16 at 17:35, <konrad.wilk@xxxxxxxxxx> wrote:
>> > @@ -33,9 +36,43 @@ config.h: xen_hello_world_func.o
>> >  xen_hello_world.o: xen_hello_world_func.o
>> >  
>> >  .PHONY: $(XSPLICE)
>> > -$(XSPLICE): config.h xen_hello_world_func.o xen_hello_world.o
>> > -  $(LD) $(LDFLAGS) -r -o $(XSPLICE) xen_hello_world_func.o \
>> > -          xen_hello_world.o
>> > +$(XSPLICE): config.h xen_hello_world_func.o xen_hello_world.o note.o
>> > +  $(LD) $(LDFLAGS) $(build_id_linker) -r -o $(XSPLICE) \
>> > +          xen_hello_world_func.o xen_hello_world.o note.o
>> 
>> Probably easier to read and maintain if you used $(filter %.o,$^)
>> here?
>> 
>> > +xen_bye_world.o: xen_bye_world_func.o
>> 
>> Again - why?
> 
> B/c xen_bye_world.o depends on xen_bye_world_func.o ? Oh wait, they
> only depend during linking!
> 
> It should be:
> 
> xen_bye_world.o: config.h
> 
> (and also for xen_hello_world.o case)
>> 
>> > +.PHONY: $(XSPLICE_BYE)
>> > +$(XSPLICE_BYE): $(XSPLICE) config.h xen_bye_world_func.o xen_bye_world.o 
> hello_world_note.o
>> 
>> The object files depend on config.h, but the binary does only
>> indirectly via the object files I would guess. (This, just like the
>> question right above, would then apply to the $(XSPLICE) related
>> rules too, in an earlier patch.)
> 
> xen_bye_world.c won't compile if config.h is not present.
> 
> I need to make sure that config.h gets created before xen_bye_world.o
> gets built. And since config.h generation depends on the existence
> of xen_hello_world_func.o
> 
> Is there a better way of making this dependency?

You have it above (in your reply):

xen_bye_world.o: config.h

>> > +  $(LD) $(LDFLAGS) $(build_id_linker) -r -o $(XSPLICE_BYE) \
>> > +          xen_bye_world_func.o xen_bye_world.o hello_world_note.o
>> 
>> Same as above - better use $^ (and if config.h goes away as a
>> direct dependency, it looks like you don't even need $(filter ...)).
> 
> I have to have config.h as dependency. If I do 'make -j1232131 tests'
> if I don't have config.h as dependency things eventually break.

But as said - it's the object files which depend on the header, not the
final binary. At least that's how things would be normally.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.