[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 43/54] plugin: add API symbols to qemu-plugin
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH v4 43/54] plugin: add API symbols to qemu-plugins.symbols |
Date: |
Thu, 1 Aug 2019 12:42:06 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 |
On 7/31/19 9:07 AM, Alex Bennée wrote:
> +#########################################
> +# See if --dynamic-list is supported by the linker
> +
> +cat > $TMPTXT <<EOF
> +{
> + foo;
> +};
> +EOF
> +
> +cat > $TMPC <<EOF
> +#include <stdio.h>
> +void foo(void);
> +
> +void foo(void)
> +{
> + printf("foo\n");
> +}
> +
> +int main(void)
> +{
> + foo();
> + return 0;
> +}
> +EOF
> +
> +ld_dynamic_list="no"
> +if compile_prog "" "-Wl,--dynamic-list=$TMPTXT" ; then
> + ld_dynamic_list="yes"
> +fi
> +
> +#########################################
> +# See if -exported_symbols_list is supported by the linker
> +
> +cat > $TMPTXT <<EOF
> + _foo
> +EOF
> +
> +ld_exported_symbols_list="no"
> +if compile_prog "" "-Wl,-exported_symbols_list,$TMPTXT" ; then
> + ld_exported_symbols_list="yes"
> +fi
> +
> +if test "$plugins" = "yes" &&
> + test "$ld_dynamic_list" = "no" &&
> + test "$ld_exported_symbols_list" = "no" ; then
> + error_exit \
> + "Plugin support requires specifying a set of symbols that " \
> + "are exported to plugins. Unfortunately your linker doesn't " \
> + "support the flag (--dynamic-list or -exported_symbols_list) used " \
> + "for this purpose."
> +fi
> +
> ########################################
> # See if 16-byte vector operations are supported.
> # Even without a vector unit the compiler may expand these.
> @@ -7318,6 +7371,22 @@ fi
> if test "$plugins" = "yes" ; then
> echo "CONFIG_PLUGIN=y" >> $config_host_mak
> LIBS="-ldl $LIBS"
> + # Copy the export object list to the build dir
> + if test "$ld_dynamic_list" = "yes" ; then
> + echo "CONFIG_HAS_LD_DYNAMIC_LIST=yes" >> $config_host_mak
> + ld_symbols=qemu-plugins-ld.symbols
> + cp "$source_path/plugins/qemu-plugins.symbols" $ld_symbols
> + elif test "$ld_exported_symbols_list" = "yes" ; then
> + echo "CONFIG_HAS_LD_EXPORTED_SYMBOLS_LIST=yes" >> $config_host_mak
> + ld64_symbols=qemu-plugins-ld64.symbols
> + echo "# Automatically generated by configure - do not modify" >
> $ld64_symbols
> + grep 'qemu_' "$source_path/plugins/qemu-plugins.symbols" | sed 's/;//g'
> | \
> + sed -E 's/^[[:space:]]*(.*)/_\1/' >> $ld64_symbols
> + else
> + error_exit \
> + "If \$plugins=yes, either \$ld_dynamic_list or " \
> + "\$ld_exported_symbols_list should have been set to 'yes'."
> + fi
> fi
>
How much of this should be skipped if --enable-static?
Or perhaps just dependent on --enable-plugins and let
that switch detect the conflict?
r~
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH v4 43/54] plugin: add API symbols to qemu-plugins.symbols,
Richard Henderson <=