* [PATCH v5 0/2] Makefile: libfdt: build only the strict necessary
@ 2020-05-18 16:02 Claudio Fontana
2020-05-18 16:02 ` [PATCH v5 1/2] Makefile: dtc: update, build the libfdt target Claudio Fontana
2020-05-18 16:02 ` [PATCH v5 2/2] Makefile: remove old compatibility gunks Claudio Fontana
0 siblings, 2 replies; 4+ messages in thread
From: Claudio Fontana @ 2020-05-18 16:02 UTC (permalink / raw)
To: David Gibson, Peter Maydell, Philippe Mathieu-Daude
Cc: Markus Armbruster, Claudio Fontana, Alex Bennee, qemu-devel,
Laurent Vivier
v4 -> v5:
* include the dtc submodule update commit in the 1/2 patch
v3 -> v4: NB! only useful when updating to latest dtc (not in QEMU yet)
* changed the approach to leverage new upstream dtc Makefile,
needs dtc submodule update to include upstream dtc commit
85e5d839847af54efab170f2b1331b2a6421e647.
* LIBFDT_srcdir does not exist anymore in upstream dtc: it is also
not used anymore.
* LIBFDT_lib: need to avoid building libfdt.so at least for now, so pass as
empty to avoid building the .so. This is to avoid breaking existing
trees with objects already compiled without -fPIC.
* clean: no need to make dtc clean target, every artifact is captured by
global clean rule
v2 -> v3:
* changed into a 2 patch series; in the second patch we remove the old
compatibility gunks that were meant for removal some time after 4.1.
* renamed the libfdt PHONY rule to dtc/all, with the intent to make
existing working trees forward and backward compatible across the change.
v1 -> v2:
* fix error generated when running UNCHECKED_GOALS without prior configure,
for example during make docker-image-fedora. Without configure, DSOSUF is
empty, and the module pattern rule in rules.mak that uses this variable
can match too much; provide a default in the Makefile to avoid it.
* only attempt to build the archive when there is a non-empty list of objects.
This could be done in general for the %.a: pattern in rules.mak, but maybe
there are valid reasons to build an empty .a?
* removed some intermediate variables that did not add much value
(LIBFDT_srcdir, LIBFDT_archive)
Tested locally with 3 VPATH configurations (no-, VPATH, VPATH in src subdir),
and with docker-image-fedora, docker-test-debug@fedora that failed before.
Claudio Fontana (2):
Makefile: libfdt: build only the strict necessary
Makefile: remove old compatibility gunks
Makefile | 32 ++++++++++++++++----------------
configure | 6 +-----
rules.mak | 2 ++
3 files changed, 19 insertions(+), 21 deletions(-)
--
2.16.4
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v5 1/2] Makefile: dtc: update, build the libfdt target
2020-05-18 16:02 [PATCH v5 0/2] Makefile: libfdt: build only the strict necessary Claudio Fontana
@ 2020-05-18 16:02 ` Claudio Fontana
2020-05-18 16:02 ` [PATCH v5 2/2] Makefile: remove old compatibility gunks Claudio Fontana
1 sibling, 0 replies; 4+ messages in thread
From: Claudio Fontana @ 2020-05-18 16:02 UTC (permalink / raw)
To: David Gibson, Peter Maydell, Philippe Mathieu-Daude
Cc: Markus Armbruster, Claudio Fontana, Alex Bennee, qemu-devel,
Laurent Vivier
dtc submodule update, now call the libfdt target from the new
dtc Makefile, which has been changed to not require bison, flex, etc.
This removes warnings during the build.
scripts/ symlink and tests directory creation are not necessary,
and neither is calling the clean rule explicitly.
Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
Makefile | 10 +++++-----
configure | 1 -
dtc | 2 +-
3 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index 34275f57c9..36a6454295 100644
--- a/Makefile
+++ b/Makefile
@@ -526,13 +526,14 @@ $(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
+# LIBFDT_lib="": avoid breaking existing trees with objects requiring -fPIC
+DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)" LIBFDT_lib=""
DTC_CFLAGS=$(CFLAGS) $(QEMU_CFLAGS)
-DTC_CPPFLAGS=-I$(BUILD_DIR)/dtc -I$(SRC_PATH)/dtc -I$(SRC_PATH)/dtc/libfdt
+DTC_CPPFLAGS=-I$(SRC_PATH)/dtc/libfdt
.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 dtc/libfdt
+ $(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,)
dtc/%: .git-submodule-status
@mkdir -p $@
@@ -820,7 +821,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 26084fc53a..069ce34611 100755
--- a/configure
+++ b/configure
@@ -4281,7 +4281,6 @@ EOF
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"
diff --git a/dtc b/dtc
index 88f18909db..85e5d83984 160000
--- a/dtc
+++ b/dtc
@@ -1 +1 @@
-Subproject commit 88f18909db731a627456f26d779445f84e449536
+Subproject commit 85e5d839847af54efab170f2b1331b2a6421e647
--
2.16.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v5 2/2] Makefile: remove old compatibility gunks
2020-05-18 16:02 [PATCH v5 0/2] Makefile: libfdt: build only the strict necessary Claudio Fontana
2020-05-18 16:02 ` [PATCH v5 1/2] Makefile: dtc: update, build the libfdt target Claudio Fontana
@ 2020-05-18 16:02 ` Claudio Fontana
1 sibling, 0 replies; 4+ messages in thread
From: Claudio Fontana @ 2020-05-18 16:02 UTC (permalink / raw)
To: David Gibson, Peter Maydell, Philippe Mathieu-Daude
Cc: Markus Armbruster, Claudio Fontana, Alex Bennee, qemu-devel,
Laurent Vivier
Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
Makefile | 6 ------
1 file changed, 6 deletions(-)
diff --git a/Makefile b/Makefile
index 36a6454295..2873d59ea2 100644
--- a/Makefile
+++ b/Makefile
@@ -562,12 +562,6 @@ slirp/all: .git-submodule-status
CC="$(CC)" AR="$(AR)" LD="$(LD)" RANLIB="$(RANLIB)" \
CFLAGS="$(QEMU_CFLAGS) $(CFLAGS)" LDFLAGS="$(QEMU_LDFLAGS)")
-# Compatibility gunk to keep make working across the rename of targets
-# for recursion, to be removed some time after 4.1.
-subdir-dtc: dtc/all
-subdir-capstone: capstone/all
-subdir-slirp: slirp/all
-
$(filter %/all, $(TARGET_DIRS_RULES)): libqemuutil.a $(common-obj-y) \
$(qom-obj-y)
--
2.16.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v5 1/2] Makefile: dtc: update, build the libfdt target
2020-05-18 16:03 [PATCH v5 0/2] Makefile: libfdt: build only the strict necessary Claudio Fontana
@ 2020-05-18 16:03 ` Claudio Fontana
0 siblings, 0 replies; 4+ messages in thread
From: Claudio Fontana @ 2020-05-18 16:03 UTC (permalink / raw)
To: David Gibson, Peter Maydell, Philippe Mathieu-Daude
Cc: Markus Armbruster, Claudio Fontana, Alex Bennee, qemu-devel,
Laurent Vivier
dtc submodule update, now call the libfdt target from the new
dtc Makefile, which has been changed to not require bison, flex, etc.
This removes warnings during the build.
scripts/ symlink and tests directory creation are not necessary,
and neither is calling the clean rule explicitly.
Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
Makefile | 10 +++++-----
configure | 1 -
dtc | 2 +-
3 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index 34275f57c9..36a6454295 100644
--- a/Makefile
+++ b/Makefile
@@ -526,13 +526,14 @@ $(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
+# LIBFDT_lib="": avoid breaking existing trees with objects requiring -fPIC
+DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)" LIBFDT_lib=""
DTC_CFLAGS=$(CFLAGS) $(QEMU_CFLAGS)
-DTC_CPPFLAGS=-I$(BUILD_DIR)/dtc -I$(SRC_PATH)/dtc -I$(SRC_PATH)/dtc/libfdt
+DTC_CPPFLAGS=-I$(SRC_PATH)/dtc/libfdt
.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 dtc/libfdt
+ $(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,)
dtc/%: .git-submodule-status
@mkdir -p $@
@@ -820,7 +821,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 26084fc53a..069ce34611 100755
--- a/configure
+++ b/configure
@@ -4281,7 +4281,6 @@ EOF
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"
diff --git a/dtc b/dtc
index 88f18909db..85e5d83984 160000
--- a/dtc
+++ b/dtc
@@ -1 +1 @@
-Subproject commit 88f18909db731a627456f26d779445f84e449536
+Subproject commit 85e5d839847af54efab170f2b1331b2a6421e647
--
2.16.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-05-18 16:10 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-18 16:02 [PATCH v5 0/2] Makefile: libfdt: build only the strict necessary Claudio Fontana
2020-05-18 16:02 ` [PATCH v5 1/2] Makefile: dtc: update, build the libfdt target Claudio Fontana
2020-05-18 16:02 ` [PATCH v5 2/2] Makefile: remove old compatibility gunks Claudio Fontana
-- strict thread matches above, loose matches on Subject: below --
2020-05-18 16:03 [PATCH v5 0/2] Makefile: libfdt: build only the strict necessary Claudio Fontana
2020-05-18 16:03 ` [PATCH v5 1/2] Makefile: dtc: update, build the libfdt target Claudio Fontana
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).