Message ID | 20240604134933.220112-8-berrange@redhat.com |
---|---|
State | New |
Headers | show |
Series | qga: clean up command source locations and conditionals | expand |
Hi On Tue, Jun 4, 2024 at 5:50 PM Daniel P. Berrangé <berrange@redhat.com> wrote: > Defining these at the meson level allows them to be used a conditional > tests in the QAPI schemas. > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > --- > meson.build | 18 ++++++++++++++++++ > qga/commands-common.h | 9 --------- > 2 files changed, 18 insertions(+), 9 deletions(-) > > diff --git a/meson.build b/meson.build > index 6386607144..356b2a4817 100644 > --- a/meson.build > +++ b/meson.build > @@ -2141,6 +2141,22 @@ have_virtfs_proxy_helper = > get_option('virtfs_proxy_helper') \ > .require(libcap_ng.found(), error_message: 'the virtfs proxy helper > requires libcap-ng') \ > .allowed() > > +qga_fsfreeze = false > +qga_fstrim = false > +if host_os == 'windows' > + qga_fsfreeze = true > + qga_fstrim = true > The hook code in qga/main.c compiles for win32, but it is not used. Did you intentionally enabled that? +elif host_os == 'linux' > + if cc.has_header_symbol('linux/fs.h', 'FIFREEZE') > + qga_fsfreeze = true > + endif > + if cc.has_header_symbol('linux/fs.h', 'FITRIM') > + qga_fstrim = true > + endif > +elif host_os == 'freebsd' and cc.has_header_symbol('ufs/ffs/fs.h', > 'UFSSUSPEND') > + qga_fsfreeze = true > +endif > + > if get_option('block_drv_ro_whitelist') == '' > config_host_data.set('CONFIG_BDRV_RO_WHITELIST', '') > else > @@ -2375,6 +2391,8 @@ config_host_data.set('CONFIG_DEBUG_TCG', > get_option('debug_tcg')) > config_host_data.set('CONFIG_DEBUG_REMAP', get_option('debug_remap')) > config_host_data.set('CONFIG_QOM_CAST_DEBUG', > get_option('qom_cast_debug')) > config_host_data.set('CONFIG_REPLICATION', > get_option('replication').allowed()) > +config_host_data.set('CONFIG_FSFREEZE', qga_fsfreeze) > +config_host_data.set('CONFIG_FSTRIM', qga_fstrim) > > # has_header > config_host_data.set('CONFIG_EPOLL', cc.has_header('sys/epoll.h')) > diff --git a/qga/commands-common.h b/qga/commands-common.h > index 8c1c56aac9..263e7c0525 100644 > --- a/qga/commands-common.h > +++ b/qga/commands-common.h > @@ -15,19 +15,10 @@ > > #if defined(__linux__) > #include <linux/fs.h> > -#ifdef FIFREEZE > -#define CONFIG_FSFREEZE > -#endif > -#ifdef FITRIM > -#define CONFIG_FSTRIM > -#endif > #endif /* __linux__ */ > > #ifdef __FreeBSD__ > #include <ufs/ffs/fs.h> > -#ifdef UFSSUSPEND > -#define CONFIG_FSFREEZE > -#endif > #endif /* __FreeBSD__ */ > > #if defined(CONFIG_FSFREEZE) || defined(CONFIG_FSTRIM) > -- > 2.45.1 > > >
On Wed, Jun 05, 2024 at 12:47:39PM +0400, Marc-André Lureau wrote: > Hi > > On Tue, Jun 4, 2024 at 5:50 PM Daniel P. Berrangé <berrange@redhat.com> > wrote: > > > Defining these at the meson level allows them to be used a conditional > > tests in the QAPI schemas. > > > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > > --- > > meson.build | 18 ++++++++++++++++++ > > qga/commands-common.h | 9 --------- > > 2 files changed, 18 insertions(+), 9 deletions(-) > > > > diff --git a/meson.build b/meson.build > > index 6386607144..356b2a4817 100644 > > --- a/meson.build > > +++ b/meson.build > > @@ -2141,6 +2141,22 @@ have_virtfs_proxy_helper = > > get_option('virtfs_proxy_helper') \ > > .require(libcap_ng.found(), error_message: 'the virtfs proxy helper > > requires libcap-ng') \ > > .allowed() > > > > +qga_fsfreeze = false > > +qga_fstrim = false > > +if host_os == 'windows' > > + qga_fsfreeze = true > > + qga_fstrim = true > > > > The hook code in qga/main.c compiles for win32, but it is not used. Did you > intentionally enabled that? Oh whoops, yes, that is an oversight. I was initially thinking that CONFIG_FSFREEZE was used in commands-win32.c, since it has a freeze impl, but I forgot I later learnt it was unconditional. So we don't need to set these for meson vars for windows. > > +elif host_os == 'linux' > > + if cc.has_header_symbol('linux/fs.h', 'FIFREEZE') > > + qga_fsfreeze = true > > + endif > > + if cc.has_header_symbol('linux/fs.h', 'FITRIM') > > + qga_fstrim = true > > + endif > > +elif host_os == 'freebsd' and cc.has_header_symbol('ufs/ffs/fs.h', > > 'UFSSUSPEND') > > + qga_fsfreeze = true > > +endif > > + > > if get_option('block_drv_ro_whitelist') == '' > > config_host_data.set('CONFIG_BDRV_RO_WHITELIST', '') > > else > > @@ -2375,6 +2391,8 @@ config_host_data.set('CONFIG_DEBUG_TCG', > > get_option('debug_tcg')) > > config_host_data.set('CONFIG_DEBUG_REMAP', get_option('debug_remap')) > > config_host_data.set('CONFIG_QOM_CAST_DEBUG', > > get_option('qom_cast_debug')) > > config_host_data.set('CONFIG_REPLICATION', > > get_option('replication').allowed()) > > +config_host_data.set('CONFIG_FSFREEZE', qga_fsfreeze) > > +config_host_data.set('CONFIG_FSTRIM', qga_fstrim) > > > > # has_header > > config_host_data.set('CONFIG_EPOLL', cc.has_header('sys/epoll.h')) > > diff --git a/qga/commands-common.h b/qga/commands-common.h > > index 8c1c56aac9..263e7c0525 100644 > > --- a/qga/commands-common.h > > +++ b/qga/commands-common.h > > @@ -15,19 +15,10 @@ > > > > #if defined(__linux__) > > #include <linux/fs.h> > > -#ifdef FIFREEZE > > -#define CONFIG_FSFREEZE > > -#endif > > -#ifdef FITRIM > > -#define CONFIG_FSTRIM > > -#endif > > #endif /* __linux__ */ > > > > #ifdef __FreeBSD__ > > #include <ufs/ffs/fs.h> > > -#ifdef UFSSUSPEND > > -#define CONFIG_FSFREEZE > > -#endif > > #endif /* __FreeBSD__ */ > > > > #if defined(CONFIG_FSFREEZE) || defined(CONFIG_FSTRIM) > > -- > > 2.45.1 > > > > > > > > -- > Marc-André Lureau With regards, Daniel
diff --git a/meson.build b/meson.build index 6386607144..356b2a4817 100644 --- a/meson.build +++ b/meson.build @@ -2141,6 +2141,22 @@ have_virtfs_proxy_helper = get_option('virtfs_proxy_helper') \ .require(libcap_ng.found(), error_message: 'the virtfs proxy helper requires libcap-ng') \ .allowed() +qga_fsfreeze = false +qga_fstrim = false +if host_os == 'windows' + qga_fsfreeze = true + qga_fstrim = true +elif host_os == 'linux' + if cc.has_header_symbol('linux/fs.h', 'FIFREEZE') + qga_fsfreeze = true + endif + if cc.has_header_symbol('linux/fs.h', 'FITRIM') + qga_fstrim = true + endif +elif host_os == 'freebsd' and cc.has_header_symbol('ufs/ffs/fs.h', 'UFSSUSPEND') + qga_fsfreeze = true +endif + if get_option('block_drv_ro_whitelist') == '' config_host_data.set('CONFIG_BDRV_RO_WHITELIST', '') else @@ -2375,6 +2391,8 @@ config_host_data.set('CONFIG_DEBUG_TCG', get_option('debug_tcg')) config_host_data.set('CONFIG_DEBUG_REMAP', get_option('debug_remap')) config_host_data.set('CONFIG_QOM_CAST_DEBUG', get_option('qom_cast_debug')) config_host_data.set('CONFIG_REPLICATION', get_option('replication').allowed()) +config_host_data.set('CONFIG_FSFREEZE', qga_fsfreeze) +config_host_data.set('CONFIG_FSTRIM', qga_fstrim) # has_header config_host_data.set('CONFIG_EPOLL', cc.has_header('sys/epoll.h')) diff --git a/qga/commands-common.h b/qga/commands-common.h index 8c1c56aac9..263e7c0525 100644 --- a/qga/commands-common.h +++ b/qga/commands-common.h @@ -15,19 +15,10 @@ #if defined(__linux__) #include <linux/fs.h> -#ifdef FIFREEZE -#define CONFIG_FSFREEZE -#endif -#ifdef FITRIM -#define CONFIG_FSTRIM -#endif #endif /* __linux__ */ #ifdef __FreeBSD__ #include <ufs/ffs/fs.h> -#ifdef UFSSUSPEND -#define CONFIG_FSFREEZE -#endif #endif /* __FreeBSD__ */ #if defined(CONFIG_FSFREEZE) || defined(CONFIG_FSTRIM)
Defining these at the meson level allows them to be used a conditional tests in the QAPI schemas. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- meson.build | 18 ++++++++++++++++++ qga/commands-common.h | 9 --------- 2 files changed, 18 insertions(+), 9 deletions(-)