From: "Alex Bennée" <alex.bennee@linaro.org>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: peter.maydell@linaro.org, qemu-devel@nongnu.org
Subject: Re: [PATCH for 6.1] plugins: do not limit exported symbols if modules are active
Date: Thu, 12 Aug 2021 10:36:20 +0100 [thread overview]
Message-ID: <875ywb6lxu.fsf@linaro.org> (raw)
In-Reply-To: <20210811100550.54714-1-pbonzini@redhat.com>
Paolo Bonzini <pbonzini@redhat.com> writes:
> On Mac --enable-modules and --enable-plugins are currently incompatible, because the
> Apple -Wl,-exported_symbols_list command line options prevents the export of any
> symbols needed by the modules. On x86 -Wl,--dynamic-list does not have this effect,
> but only because the -Wl,--export-dynamic option provided by gmodule-2.0.pc overrides
> it. On Apple there is no -Wl,--export-dynamic, because it is the default, and thus
> no override.
>
> Either way, when modules are active there is no reason to include the plugin_ldflags.
> While at it, avoid the useless -Wl,--export-dynamic when --enable-plugins is
> specified but --enable-modules is not; this way, the GNU and Apple configurations
> are more similar.
>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/516
> Cc: Alex Bennée <alex.bennee@linaro.org>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> configure | 5 ++---
> plugins/meson.build | 14 ++++++++------
> 2 files changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/configure b/configure
> index 9a79a004d7..a8721601ea 100755
> --- a/configure
> +++ b/configure
> @@ -3187,9 +3187,8 @@ glib_req_ver=2.56
> glib_modules=gthread-2.0
> if test "$modules" = yes; then
> glib_modules="$glib_modules gmodule-export-2.0"
> -fi
> -if test "$plugins" = "yes"; then
> - glib_modules="$glib_modules gmodule-2.0"
> +elif test "$plugins" = "yes"; then
> + glib_modules="$glib_modules gmodule-noexport-2.0"
This brings in a new dependency because I can't configure now:
➜ ../../configure
ERROR: glib-2.56 gmodule-noexport-2.0 is required to compile QEMU
Should it be gmodule-no-export? Hopefully the different distros aren't
packaging different .pc files.
> fi
>
> for i in $glib_modules; do
> diff --git a/plugins/meson.build b/plugins/meson.build
> index e77723010e..bfd5c9822a 100644
> --- a/plugins/meson.build
> +++ b/plugins/meson.build
> @@ -1,9 +1,11 @@
> -if 'CONFIG_HAS_LD_DYNAMIC_LIST' in config_host
> - plugin_ldflags = ['-Wl,--dynamic-list=' + (meson.build_root() / 'qemu-plugins-ld.symbols')]
> -elif 'CONFIG_HAS_LD_EXPORTED_SYMBOLS_LIST' in config_host
> - plugin_ldflags = ['-Wl,-exported_symbols_list,' + (meson.build_root() / 'qemu-plugins-ld64.symbols')]
> -else
> - plugin_ldflags = []
> +plugin_ldflags = []
> +# Modules need more symbols than just those in plugins/qemu-plugins.symbols
> +if not enable_modules
> + if 'CONFIG_HAS_LD_DYNAMIC_LIST' in config_host
> + plugin_ldflags = ['-Wl,--dynamic-list=' + (meson.build_root() / 'qemu-plugins-ld.symbols')]
> + elif 'CONFIG_HAS_LD_EXPORTED_SYMBOLS_LIST' in config_host
> + plugin_ldflags = ['-Wl,-exported_symbols_list,' + (meson.build_root() / 'qemu-plugins-ld64.symbols')]
> + endif
> endif
Does this mean --enable-modules would allow plugins to access more of
the API space than we intended in the first place?
--
Alex Bennée
next prev parent reply other threads:[~2021-08-12 9:49 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-11 10:05 [PATCH for 6.1] plugins: do not limit exported symbols if modules are active Paolo Bonzini
2021-08-12 9:36 ` Alex Bennée [this message]
2021-08-12 10:45 ` Paolo Bonzini
2021-08-12 15:19 ` Alex Bennée
-- strict thread matches above, loose matches on Subject: below --
2021-08-11 10:05 Paolo Bonzini
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=875ywb6lxu.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--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.