From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
To: marcandre.lureau@redhat.com, qemu-devel@nongnu.org
Cc: david@gibson.dropbear.id.au
Subject: Re: [PATCH] RFC: build-sys: drop dtc submodule
Date: Wed, 25 Aug 2021 14:03:44 +0100 [thread overview]
Message-ID: <9293a19c-0787-eaed-d84b-f0c73a7e7c8e@ilande.co.uk> (raw)
In-Reply-To: <20210825124309.223622-1-marcandre.lureau@redhat.com>
On 25/08/2021 13:43, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> DTC is widely available, we could consider to stop bundling it.
>
> curl -s 'https://repology.org/api/v1/project/dtc' | \
> jq -r 'group_by(.repo) | .[] | "\(.[0].repo): \(map(.version))"' | \
> egrep -i 'ubuntu_18|debian_old|rhel|centos|bsd|suse_leap_15_2|sles|homebrew|pkgsrc'
>
> centos_8: ["1.6.0","1.6.0"]
> debian_oldstable: ["1.4.7"]
> freebsd: ["1.6.0"]
> homebrew: ["1.6.1"]
> openbsd: ["1.6.0"]
> opensuse_leap_15_2: ["1.5.1","1.5.1"]
> pkgsrc_current: ["1.4.7"]
> ubuntu_18_04: ["1.4.5"]
>
> MinGW package on Fedora pending review.
> (https://bugzilla.redhat.com/show_bug.cgi?id=1997511)
>
> Debian is lacking the MinGW package.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> configure | 22 +-------------------
> meson.build | 53 ++++++++---------------------------------------
> .gitmodules | 3 ---
> dtc | 1 -
> meson_options.txt | 3 ---
> 5 files changed, 10 insertions(+), 72 deletions(-)
> delete mode 160000 dtc
>
> diff --git a/configure b/configure
> index 9a79a004d7..04050c0426 100755
> --- a/configure
> +++ b/configure
> @@ -296,7 +296,6 @@ curl="auto"
> iconv="auto"
> curses="auto"
> docs="auto"
> -fdt="auto"
> netmap="no"
> sdl="auto"
> sdl_image="auto"
> @@ -1212,14 +1211,6 @@ for opt do
> ;;
> --enable-curl) curl="enabled"
> ;;
> - --disable-fdt) fdt="disabled"
> - ;;
> - --enable-fdt) fdt="enabled"
> - ;;
> - --enable-fdt=git) fdt="internal"
> - ;;
> - --enable-fdt=system) fdt="system"
> - ;;
> --disable-linux-aio) linux_aio="no"
> ;;
> --enable-linux-aio) linux_aio="yes"
> @@ -1890,7 +1881,6 @@ disabled with --disable-FEATURE, default is enabled if available
> brlapi BrlAPI (Braile)
> curl curl connectivity
> membarrier membarrier system call (for Linux 4.14+ or Windows)
> - fdt fdt device tree
> kvm KVM acceleration support
> hax HAX acceleration support
> hvf Hypervisor.framework acceleration support
> @@ -3439,16 +3429,6 @@ if compile_prog "" "" ; then
> iovec=yes
> fi
>
> -##########################################
> -# fdt probe
> -
> -case "$fdt" in
> - auto | enabled | internal)
> - # Simpler to always update submodule, even if not needed.
> - git_submodules="${git_submodules} dtc"
> - ;;
> -esac
> -
> ##########################################
> # opengl probe (for sdl2, gtk)
>
> @@ -5199,7 +5179,7 @@ if test "$skip_meson" = no; then
> -Dlibusb=$libusb -Dsmartcard=$smartcard -Dusb_redir=$usb_redir -Dvte=$vte \
> -Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg -Dvnc_png=$vnc_png \
> -Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f -Dvirtiofsd=$virtiofsd \
> - -Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt -Dbrlapi=$brlapi \
> + -Dcapstone=$capstone -Dslirp=$slirp -Dbrlapi=$brlapi \
> -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 -Dlibiscsi=$libiscsi \
> -Dlibnfs=$libnfs -Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\
> -Drbd=$rbd -Dlzo=$lzo -Dsnappy=$snappy -Dlzfse=$lzfse -Dlibxml2=$libxml2 \
> diff --git a/meson.build b/meson.build
> index b3e7ec0e92..1b30dd7bdc 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1897,50 +1897,15 @@ if get_option('cfi') and slirp_opt == 'system'
> endif
>
> fdt = not_found
> -fdt_opt = get_option('fdt')
> -if have_system
> - if fdt_opt in ['enabled', 'auto', 'system']
> - have_internal = fs.exists(meson.current_source_dir() / 'dtc/libfdt/Makefile.libfdt')
> - fdt = cc.find_library('fdt', kwargs: static_kwargs,
> - required: fdt_opt == 'system' or
> - fdt_opt == 'enabled' and not have_internal)
> - if fdt.found() and cc.links('''
> - #include <libfdt.h>
> - #include <libfdt_env.h>
> - int main(void) { fdt_check_full(NULL, 0); return 0; }''',
> - dependencies: fdt)
> - fdt_opt = 'system'
> - elif have_internal
> - fdt_opt = 'internal'
> - else
> - fdt_opt = 'disabled'
> +if fdt_required.length() > 0
> + fdt = cc.find_library('fdt', kwargs: static_kwargs)
> + if not fdt.found() or not cc.links('''
> +#include <libfdt.h>
> +#include <libfdt_env.h>
> +int main(void) { fdt_first_subnode(NULL, 0); return 0; }''',
> + dependencies: fdt)
> + error('fdt >= 1.4.2 required by targets ' + ', '.join(fdt_required))
> endif
> - endif
> - if fdt_opt == 'internal'
> - fdt_files = files(
> - 'dtc/libfdt/fdt.c',
> - 'dtc/libfdt/fdt_ro.c',
> - 'dtc/libfdt/fdt_wip.c',
> - 'dtc/libfdt/fdt_sw.c',
> - 'dtc/libfdt/fdt_rw.c',
> - 'dtc/libfdt/fdt_strerror.c',
> - 'dtc/libfdt/fdt_empty_tree.c',
> - 'dtc/libfdt/fdt_addresses.c',
> - 'dtc/libfdt/fdt_overlay.c',
> - 'dtc/libfdt/fdt_check.c',
> - )
> -
> - fdt_inc = include_directories('dtc/libfdt')
> - libfdt = static_library('fdt',
> - build_by_default: false,
> - sources: fdt_files,
> - include_directories: fdt_inc)
> - fdt = declare_dependency(link_with: libfdt,
> - include_directories: fdt_inc)
> - endif
> -endif
> -if not fdt.found() and fdt_required.length() > 0
> - error('fdt not available but required by targets ' + ', '.join(fdt_required))
> endif
>
> config_host_data.set('CONFIG_CAPSTONE', capstone.found())
> @@ -3069,7 +3034,7 @@ summary_info += {'Linux io_uring support': linux_io_uring.found()}
> summary_info += {'ATTR/XATTR support': libattr.found()}
> summary_info += {'RDMA support': config_host.has_key('CONFIG_RDMA')}
> summary_info += {'PVRDMA support': config_host.has_key('CONFIG_PVRDMA')}
> -summary_info += {'fdt support': fdt_opt == 'disabled' ? false : fdt_opt}
> +summary_info += {'fdt support': fdt.found()}
> summary_info += {'libcap-ng support': libcap_ng.found()}
> summary_info += {'bpf support': libbpf.found()}
> # TODO: add back protocol and server version
> diff --git a/.gitmodules b/.gitmodules
> index 08b1b48a09..582303698b 100644
> --- a/.gitmodules
> +++ b/.gitmodules
> @@ -16,9 +16,6 @@
> [submodule "roms/sgabios"]
> path = roms/sgabios
> url = https://gitlab.com/qemu-project/sgabios.git
> -[submodule "dtc"]
> - path = dtc
> - url = https://gitlab.com/qemu-project/dtc.git
> [submodule "roms/u-boot"]
> path = roms/u-boot
> url = https://gitlab.com/qemu-project/u-boot.git
> diff --git a/dtc b/dtc
> deleted file mode 160000
> index 85e5d83984..0000000000
> --- a/dtc
> +++ /dev/null
> @@ -1 +0,0 @@
> -Subproject commit 85e5d839847af54efab170f2b1331b2a6421e647
> diff --git a/meson_options.txt b/meson_options.txt
> index a9a9b8f4c6..8ba5433356 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -152,6 +152,3 @@ option('capstone', type: 'combo', value: 'auto',
> option('slirp', type: 'combo', value: 'auto',
> choices: ['disabled', 'enabled', 'auto', 'system', 'internal'],
> description: 'Whether and how to find the slirp library')
> -option('fdt', type: 'combo', value: 'auto',
> - choices: ['disabled', 'enabled', 'auto', 'system', 'internal'],
> - description: 'Whether and how to find the libfdt library')
My initial concern here was whether dtc packages are available for native Windows
builds, although it seems that MSYS2 does carry a dtc package:
https://packages.msys2.org/search?q=dtc.
Presumably this would be the last part of a larger patchset to include the dtc
package in the docker images used by the Gitlab CI builds?
ATB,
Mark.
next prev parent reply other threads:[~2021-08-25 13:27 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-25 12:43 [PATCH] RFC: build-sys: drop dtc submodule marcandre.lureau
2021-08-25 13:03 ` Mark Cave-Ayland [this message]
2021-08-25 13:23 ` Philippe Mathieu-Daudé
2021-08-25 18:12 ` Peter Maydell
2021-08-25 19:55 ` Marc-André Lureau
2021-08-25 19:59 ` Peter Maydell
2021-08-25 20:11 ` Marc-André Lureau
2021-08-26 3:10 ` David Gibson
2021-08-26 7:34 ` Marc-André Lureau
2021-08-26 7:38 ` Philippe Mathieu-Daudé
2021-08-27 2:39 ` David Gibson
2021-08-27 9:01 ` Daniel P. Berrangé
2021-08-27 9:10 ` Marc-André Lureau
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=9293a19c-0787-eaed-d84b-f0c73a7e7c8e@ilande.co.uk \
--to=mark.cave-ayland@ilande.co.uk \
--cc=david@gibson.dropbear.id.au \
--cc=marcandre.lureau@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.