All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.