qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Claudio Fontana <cfontana@suse.de>
To: Peter Maydell <peter.maydell@linaro.org>,
	David Gibson <david@gibson.dropbear.id.au>,
	Philippe Mathieu-Daude <philmd@redhat.com>,
	Markus Armbruster <armbru@redhat.com>
Cc: Alex Bennee <alex.bennee@linaro.org>,
	Laurent Vivier <laurent@vivier.eu>,
	qemu-devel@nongnu.org
Subject: Re: [PATCH RESEND v3 1/2] Makefile: libfdt: build only the strict necessary
Date: Wed, 29 Apr 2020 13:47:47 +0200	[thread overview]
Message-ID: <06e9c2cc-9fc9-693b-a342-22622cb1ff2e@suse.de> (raw)
In-Reply-To: <20200411093150.4741-2-cfontana@suse.de>

just a gentle ping on this one, now that 5.0 is out, is proceeding with this ok?

Ciao,

Claudio


On 4/11/20 11:31 AM, Claudio Fontana wrote:
> when building dtc/libfdt, we were previously using dtc/Makefile,
> which tries to build some artifacts that are not needed,
> and can complain on stderr about the absence of tools that
> are not required to build just libfdt.
> 
> Instead, build only the strict necessary to get libfdt.a .
> 
> Signed-off-by: Claudio Fontana <cfontana@suse.de>
> ---
>  Makefile  | 21 +++++++++++++--------
>  configure |  4 ----
>  rules.mak |  2 ++
>  3 files changed, 15 insertions(+), 12 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 84ef881600..7be15eeb7c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -4,6 +4,10 @@ ifneq ($(words $(subst :, ,$(CURDIR))), 1)
>    $(error main directory cannot contain spaces nor colons)
>  endif
>  
> +# some pattern rules in rules.mak are confused by an empty DSOSUF,
> +# and UNCHECKED_GOALS for testing (docker-) can run without prior configure.
> +DSOSUF ?= ".so"
> +
>  # Always point to the root of the build tree (needs GNU make).
>  BUILD_DIR=$(CURDIR)
>  
> @@ -526,15 +530,17 @@ $(SOFTMMU_FUZZ_RULES): $(edk2-decompressed)
>  $(TARGET_DIRS_RULES):
>  	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $(dir $@) V="$(V)" TARGET_DIR="$(dir $@)" $(notdir $@),)
>  
> -DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)" LIBFDT_srcdir=$(SRC_PATH)/dtc/libfdt
> -DTC_CFLAGS=$(CFLAGS) $(QEMU_CFLAGS)
> -DTC_CPPFLAGS=-I$(BUILD_DIR)/dtc -I$(SRC_PATH)/dtc -I$(SRC_PATH)/dtc/libfdt
> -
> +LIBFDT_objdir = dtc/libfdt
> +-include $(SRC_PATH)/dtc/libfdt/Makefile.libfdt
> +LIBFDT_objects = $(addprefix $(LIBFDT_objdir)/, $(LIBFDT_OBJS))
> +# the name dtc/all is for backward compatibility
>  .PHONY: dtc/all
> -dtc/all: .git-submodule-status dtc/libfdt dtc/tests
> -	$(call quiet-command,$(MAKE) $(DTC_MAKE_ARGS) CPPFLAGS="$(DTC_CPPFLAGS)" CFLAGS="$(DTC_CFLAGS)" LDFLAGS="$(QEMU_LDFLAGS)" ARFLAGS="$(ARFLAGS)" CC="$(CC)" AR="$(AR)" LD="$(LD)" $(SUBDIR_MAKEFLAGS) libfdt/libfdt.a,)
> +dtc/all: .git-submodule-status $(LIBFDT_objdir)/libfdt.a
> +$(LIBFDT_objdir)/libfdt.a: $(LIBFDT_objects)
> +	$(if $(LIBFDT_objects),$(call quiet-command,rm -f $@ && $(AR) rcs $@ $^,"AR","$(TARGET_DIR)$@"),)
>  
> -dtc/%: .git-submodule-status
> +$(LIBFDT_objects): | $(LIBFDT_objdir)
> +$(LIBFDT_objdir): .git-submodule-status
>  	@mkdir -p $@
>  
>  # Overriding CFLAGS causes us to lose defines added in the sub-makefile.
> @@ -821,7 +827,6 @@ distclean: clean
>  	rm -rf $$d || exit 1 ; \
>          done
>  	rm -Rf .sdk
> -	if test -f dtc/version_gen.h; then $(MAKE) $(DTC_MAKE_ARGS) clean; fi
>  
>  KEYMAPS=da     en-gb  et  fr     fr-ch  is  lt  no  pt-br  sv \
>  ar      de     en-us  fi  fr-be  hr     it  lv  nl         pl  ru     th \
> diff --git a/configure b/configure
> index 233c671aaa..cf32bfb75b 100755
> --- a/configure
> +++ b/configure
> @@ -4278,10 +4278,6 @@ EOF
>        if test -d "${source_path}/dtc/libfdt" || test -e "${source_path}/.git" ; then
>            fdt=git
>            mkdir -p dtc
> -          if [ "$pwd_is_source_path" != "y" ] ; then
> -              symlink "$source_path/dtc/Makefile" "dtc/Makefile"
> -              symlink "$source_path/dtc/scripts" "dtc/scripts"
> -          fi
>            fdt_cflags="-I\$(SRC_PATH)/dtc/libfdt"
>            fdt_ldflags="-L\$(BUILD_DIR)/dtc/libfdt"
>            fdt_libs="$fdt_libs"
> diff --git a/rules.mak b/rules.mak
> index 694865b63e..61eb474ba4 100644
> --- a/rules.mak
> +++ b/rules.mak
> @@ -105,6 +105,8 @@ LINK = $(call quiet-command, $(LINKPROG) $(CFLAGS) $(QEMU_LDFLAGS) -o $@ \
>  
>  DSO_OBJ_CFLAGS := -fPIC -DBUILD_DSO
>  module-common.o: CFLAGS += $(DSO_OBJ_CFLAGS)
> +
> +# Note: DSOSUF must not be empty, or these rules will try to match too much
>  %$(DSOSUF): QEMU_LDFLAGS += $(LDFLAGS_SHARED)
>  %$(DSOSUF): %.mo
>  	$(call LINK,$^)
> 



  reply	other threads:[~2020-04-29 11:48 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-11  9:31 [PATCH RESEND v3 0/2] Makefile: libfdt: build only the strict necessary Claudio Fontana
2020-04-11  9:31 ` [PATCH RESEND v3 1/2] " Claudio Fontana
2020-04-29 11:47   ` Claudio Fontana [this message]
2020-05-04  8:24     ` David Gibson
2020-04-11  9:31 ` [PATCH RESEND v3 2/2] Makefile: remove old compatibility gunks Claudio Fontana
2020-04-14  9:40   ` Philippe Mathieu-Daudé
2020-04-14  2:03 ` [PATCH RESEND v3 0/2] Makefile: libfdt: build only the strict necessary David Gibson
2020-04-15  8:16   ` Claudio Fontana
2020-05-11  6:33     ` David Gibson
2020-05-12 10:27       ` Claudio Fontana

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=06e9c2cc-9fc9-693b-a342-22622cb1ff2e@suse.de \
    --to=cfontana@suse.de \
    --cc=alex.bennee@linaro.org \
    --cc=armbru@redhat.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=laurent@vivier.eu \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).