Re: [kvm-unit-tests PATCH] Makefiles: Remove the executable bit from the .elf and .flat files

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

 



On Thu, Jul 26, 2018 at 03:58:45PM +0200, Thomas Huth wrote:
> On 07/26/2018 12:11 PM, Andrew Jones wrote:
> > On Thu, Jul 26, 2018 at 10:21:52AM +0200, Thomas Huth wrote:
> >> The .elf and .flat files are not runnable on the host operating system,
> >> so they should not be marked as executable. As we discovered recently,
> >> the executable flag can also cause trouble when the files are packaged
> >> in an .rpm file, since rpm "colors" the package differently if there
> >> are 32-bit or 64-bit executables in the package (for multilib support).
> >>
> >> Suggested-by: Laszlo Ersek <lersek@xxxxxxxxxx>
> >> Signed-off-by: Thomas Huth <thuth@xxxxxxxxxx>
> >> ---
> >>  arm/Makefile.common     | 2 ++
> >>  powerpc/Makefile.common | 2 ++
> >>  s390x/Makefile          | 1 +
> >>  x86/Makefile.common     | 2 ++
> >>  4 files changed, 7 insertions(+)
> >>
> >> diff --git a/arm/Makefile.common b/arm/Makefile.common
> >> index 1cf9cdc..e62a978 100644
> >> --- a/arm/Makefile.common
> >> +++ b/arm/Makefile.common
> >> @@ -73,9 +73,11 @@ FLATLIBS = $(libcflat) $(LIBFDT_archive) $(libgcc) $(libeabi)
> >>  		-Wl,-T,$(SRCDIR)/arm/flat.lds,--build-id=none,-Ttext=$(start_addr) \
> >>  		$(filter %.o, $^) $(FLATLIBS) \
> >>  		$(SRCDIR)/lib/auxinfo.c -DPROGNAME=\"$(@:.elf=.flat)\" -DAUXFLAGS=$(AUXFLAGS)
> >> +	chmod a-x $@
> >>  
> >>  %.flat: %.elf
> >>  	$(OBJCOPY) -O binary $^ $@
> >> +	chmod a-x $@
> >>  
> >>  $(libeabi): $(eabiobjs)
> >>  	$(AR) rcs $@ $^
> >> diff --git a/powerpc/Makefile.common b/powerpc/Makefile.common
> >> index 81c5074..af6b9d8 100644
> >> --- a/powerpc/Makefile.common
> >> +++ b/powerpc/Makefile.common
> >> @@ -54,6 +54,7 @@ FLATLIBS = $(libcflat) $(LIBFDT_archive)
> >>  		-T $(SRCDIR)/powerpc/flat.lds --build-id=none \
> >>  		$(filter %.o, $^) $(FLATLIBS) $(@:.elf=.aux.o)
> >>  	$(RM) $(@:.elf=.aux.o)
> >> +	chmod a-x $@
> >>  	@echo -n Checking $@ for unsupported reloc types...
> >>  	@if $(OBJDUMP) -R $@ | grep R_ | grep -v R_PPC64_RELATIVE; then	\
> >>  		false;							\
> >> @@ -70,6 +71,7 @@ $(TEST_DIR)/boot_rom.bin: $(TEST_DIR)/boot_rom.elf
> >>  $(TEST_DIR)/boot_rom.elf: CFLAGS = -mbig-endian
> >>  $(TEST_DIR)/boot_rom.elf: $(TEST_DIR)/boot_rom.o
> >>  	$(LD) -EB -nostdlib -Ttext=0x100 --entry=start --build-id=none -o $@ $<
> >> +	chmod a-x $@
> >>  
> >>  powerpc_clean: libfdt_clean asm_offsets_clean
> >>  	$(RM) $(TEST_DIR)/*.{o,elf} $(TEST_DIR)/boot_rom.bin \
> >> diff --git a/s390x/Makefile b/s390x/Makefile
> >> index 6546a02..6b32f2c 100644
> >> --- a/s390x/Makefile
> >> +++ b/s390x/Makefile
> >> @@ -53,6 +53,7 @@ FLATLIBS = $(libcflat)
> >>  	$(CC) $(LDFLAGS) -o $@ -T $(SRCDIR)/s390x/flat.lds -Ttext=0x10000 \
> >>  		$(filter %.o, $^) $(FLATLIBS) $(@:.elf=.aux.o)
> >>  	$(RM) $(@:.elf=.aux.o)
> >> +	chmod a-x $@
> >>  
> >>  arch_clean: asm_offsets_clean
> >>  	$(RM) $(TEST_DIR)/*.{o,elf} $(TEST_DIR)/.*.d lib/s390x/.*.d
> >> diff --git a/x86/Makefile.common b/x86/Makefile.common
> >> index 7dcf8c2..0d64284 100644
> >> --- a/x86/Makefile.common
> >> +++ b/x86/Makefile.common
> >> @@ -42,9 +42,11 @@ FLATLIBS = lib/libcflat.a $(libgcc)
> >>  %.elf: %.o $(FLATLIBS) $(SRCDIR)/x86/flat.lds $(cstart.o)
> >>  	$(CC) $(CFLAGS) -nostdlib -o $@ -Wl,-T,$(SRCDIR)/x86/flat.lds \
> >>  		$(filter %.o, $^) $(FLATLIBS)
> >> +	chmod a-x $@
> >>  
> >>  %.flat: %.elf
> >>  	$(OBJCOPY) -O elf32-i386 $^ $@
> >> +	chmod a-x $@
> >>  
> >>  tests-common = $(TEST_DIR)/vmexit.flat $(TEST_DIR)/tsc.flat \
> >>                 $(TEST_DIR)/smptest.flat  $(TEST_DIR)/port80.flat \
> >> -- 
> >> 1.8.3.1
> >>
> > 
> > Can you please add '@' to the front of all these chmod lines? Otherwise 
> > each unit test compilation gets two more lines of uninteresting output
> > when compiling.
> 
> I don't think that we should arbitrarily add a '@' to lines which might
> be uninteresting at a first glance. What might be uninteresting for you,
> might be helpful for others to see what is going on. If you're not
> interested in the full output of make, simply compile with the "-s" option.
>

It's not arbitrary. Currently when I build I see lines I want to see. I
don't want to use -s to turn them off. With this patch I'll see the lines
I want and another 2 lines per unit test that I don't. How can hiding
these lines be harmful to a developer? They don't affect the build or
run in any way, and, as the commit message says, it's only being done
for packaging in the first place.

Thanks,
drew



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux