On 16.08.2022 12:30, Anthony PERARD wrote: > We can't have a source file with the same name that exist in both the > common code and in the arch specific code for efi/. This can lead to > comfusion in make and it can pick up the wrong source file. This issue > lead to a failure to build a pv-shim for x86 out-of-tree, as this is > one example of an x86 build using the efi/stub.c. > > The issue is that in out-of-tree, make might find x86/efi/stub.c via > VPATH, but as the target needs to be rebuilt due to FORCE, make > actually avoid changing the source tree and rebuilt the target with > VPATH ignored, so $@ lead to the build tree where "stub.c" dosen't > exist yet so a link is made to "common/stub.c". > > Rework the new common/stub.c file to have a different name than the > already existing one. And build both *stub.c as two different objects. > This mean we have to move some efi_compat_* aliases which are probably > useless for Arm.
These useless aliases want avoiding there imo. Already when the original series was discussed, I requested to avoid introduction of a file named common-stub.c or alike. If names need to be different, can't we follow boot.c's model and introduce a per-arch efi/stub.h which stub.c would include at a suitable position (and which right now would be empty for Arm)? > Avoid using $(EFIOBJ-y) as an alias for $(clean-files), add > common_stub.c directly to $(clean-files). > > Fixes: 7f96859b0d00 ("xen: reuse x86 EFI stub functions for Arm") > Reported-by: Andrew Cooper <andrew.coop...@citrix.com> > Signed-off-by: Anthony PERARD <anthony.per...@citrix.com> > --- > > For the cflag addition in non-ARM_EFI, I was tempted to apply it to > the whole directory instead of just stub.o. (Even if there's only a > single object). I think that would be enough to overwrite the > -fshort-wchar from efi-common.mk, but I forgot what cflags come after > that. But adding it to just one object mean that it's added at the > last possible moment. > --- > xen/arch/arm/efi/Makefile | 8 ++------ > xen/arch/x86/efi/Makefile | 2 +- > xen/common/efi/efi-common.mk | 4 ++-- > xen/arch/x86/efi/stub.c | 7 ------- > xen/common/efi/{stub.c => common_stub.c} | 6 ++++++ At the very least I'd like to request to avoid the underscore in the file name. Jan