Message ID | 20160725195227.21112-2-draeman@bbn.com |
---|---|
State | Accepted |
Headers | show |
Hello, On Mon, 25 Jul 2016 15:52:27 -0400, David Raeman wrote: > The dtc package currently does not install libfdt for the host install. > It can be useful to have libfdt on the host, such as for building QEMU > with the --enable-fdt configure switch. > > Signed-off-by: David Raeman <draeman@bbn.com> We already have the support for --enable-fdt for the host qemu: ifeq ($(BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE),y) HOST_QEMU_TARGETS += $(HOST_QEMU_ARCH)-softmmu HOST_QEMU_OPTS += --enable-system --enable-fdt HOST_QEMU_DEPENDENCIES += host-dtc else HOST_QEMU_OPTS += --disable-system endif Do you mean that it doesn't work? Thanks, Thomas
Hello, Sorry for the confusion. I did not mean to imply any problem with the qemu package provided by buildroot. I am emulating a Xilinx Zynq target, so I use a custom package in my br2-external tree that fetches the version of QEMU that is patched by Xilinx. It is fetched from https://github.com/Xilinx/qemu using the new github hook for the SITE macro: XLNX_QEMU_SITE = $(call github,Xilinx,qemu,$(XLNX_QEMU_VERSION)) The canonical QEMU repository embeds a ref to dtc's upstream repo in its source tree using a git submodule. The QEMU source tree fetched by buildroot from http://wiki.qemu.org/download/ has that submodule content populated as a part of the downloaded tarball. So the qemu package is able to build using its internal tree of dtc/libfdt, and thus it does not require finding libfdt within HOST_DIR. In my case, the Xilinx-patched version downloaded using $(call github ...) is fetching a tarball from GitHub which does not have the embedded Git submodule populated. So the build is instead looking for libfdt within HOST_DIR and fails if it does not find it. If there is an aversion to allowing libfdt to be installed as a part of the host package, I could instead change my br2-external package to download the Xilinx-patched QEMU using the git:// scheme instead of grabbing the tarball via $(call github ...). Then it would grab the Git submodule reference and I could fetch it by customizing EXTRACT_CMDS. Either approach is equally fine with me. Cheers, David -----Original Message----- From: Thomas Petazzoni [mailto:thomas.petazzoni@free-electrons.com] Sent: Monday, July 25, 2016 4:02 PM To: David Raeman <draeman@bbn.com> Cc: buildroot@buildroot.org Subject: Re: [Buildroot] [PATCH 2/2] host-dtc: Install libftd and associated header files. Hello, On Mon, 25 Jul 2016 15:52:27 -0400, David Raeman wrote: > The dtc package currently does not install libfdt for the host install. > It can be useful to have libfdt on the host, such as for building QEMU > with the --enable-fdt configure switch. > > Signed-off-by: David Raeman <draeman@bbn.com> We already have the support for --enable-fdt for the host qemu: ifeq ($(BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE),y) HOST_QEMU_TARGETS += $(HOST_QEMU_ARCH)-softmmu HOST_QEMU_OPTS += --enable-system --enable-fdt HOST_QEMU_DEPENDENCIES += host-dtc else HOST_QEMU_OPTS += --disable-system endif Do you mean that it doesn't work? Thanks, Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
David, All, On 2016-07-25 16:26 -0400, David Raeman spake thusly: > Sorry for the confusion. I did not mean to imply any problem with the qemu > package provided by buildroot. I am emulating a Xilinx Zynq target, so I > use a custom package in my br2-external tree that fetches the version of > QEMU that is patched by Xilinx. It is fetched from > https://github.com/Xilinx/qemu using the new github hook for the SITE macro: > > XLNX_QEMU_SITE = $(call github,Xilinx,qemu,$(XLNX_QEMU_VERSION)) > > The canonical QEMU repository embeds a ref to dtc's upstream repo in its > source tree using a git submodule. The QEMU source tree fetched by > buildroot from http://wiki.qemu.org/download/ has that submodule content > populated as a part of the downloaded tarball. So the qemu package is able > to build using its internal tree of dtc/libfdt, and thus it does not require > finding libfdt within HOST_DIR. That's a shame they have a bundled version... Is it possible to tell qemu to use the system-installed one (i.e. in our host-dir) instead of its own bundled one? > In my case, the Xilinx-patched version downloaded using $(call github ...) > is fetching a tarball from GitHub which does not have the embedded Git > submodule populated. So the build is instead looking for libfdt within > HOST_DIR and fails if it does not find it. > > If there is an aversion to allowing libfdt to be installed as a part of the > host package, I think those explanations are enough to warant installation of libfdt for the host-package. However, it (or a striped-down version of it) should have been part of the commit log for your patch. > I could instead change my br2-external package to download the > Xilinx-patched QEMU using the git:// scheme instead of grabbing the tarball > via $(call github ...). Then it would grab the Git submodule reference and > I could fetch it by customizing EXTRACT_CMDS. Either approach is equally > fine with me. Note that we now have support for git-submodules since f109e7e (support/download/git: add support for submodules) and documented in the manual (nightly version): http://nightly.buildroot.org/ LIBFOO_GIT_SUBMODULES, when LIBFOO_SITE_METHOD=git, will create an archive with the git submodules in the repository. Note that we try not to use such git submodules when they contain bundled libraries, in which case we prefer to use those libraries from their own package. Regards, Yann E. MORIN. > Cheers, > David > > > -----Original Message----- > From: Thomas Petazzoni [mailto:thomas.petazzoni@free-electrons.com] > Sent: Monday, July 25, 2016 4:02 PM > To: David Raeman <draeman@bbn.com> > Cc: buildroot@buildroot.org > Subject: Re: [Buildroot] [PATCH 2/2] host-dtc: Install libftd and associated > header files. > > Hello, > > On Mon, 25 Jul 2016 15:52:27 -0400, David Raeman wrote: > > The dtc package currently does not install libfdt for the host install. > > It can be useful to have libfdt on the host, such as for building QEMU > > with the --enable-fdt configure switch. > > > > Signed-off-by: David Raeman <draeman@bbn.com> > > We already have the support for --enable-fdt for the host qemu: > > ifeq ($(BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE),y) > HOST_QEMU_TARGETS += $(HOST_QEMU_ARCH)-softmmu HOST_QEMU_OPTS += > --enable-system --enable-fdt HOST_QEMU_DEPENDENCIES += host-dtc else > HOST_QEMU_OPTS += --disable-system endif > > Do you mean that it doesn't work? > > Thanks, > > Thomas > -- > Thomas Petazzoni, CTO, Free Electrons > Embedded Linux, Kernel and Android engineering http://free-electrons.com > > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot
diff --git a/package/dtc/dtc.mk b/package/dtc/dtc.mk index 8fdcdbe..febd592 100644 --- a/package/dtc/dtc.mk +++ b/package/dtc/dtc.mk @@ -51,7 +51,9 @@ define HOST_DTC_BUILD_CMDS endef define HOST_DTC_INSTALL_CMDS - $(MAKE) -C $(@D) PREFIX=$(HOST_DIR)/usr install-bin + $(MAKE) -C $(@D) PREFIX=$(HOST_DIR)/usr install-bin install-lib \ + install-includes + endef $(eval $(generic-package))
The dtc package currently does not install libfdt for the host install. It can be useful to have libfdt on the host, such as for building QEMU with the --enable-fdt configure switch. Signed-off-by: David Raeman <draeman@bbn.com> --- package/dtc/dtc.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)