[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: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH v4 43/54] plugin: add API symbols to qemu-plugins.symbols |
Date: |
Fri, 11 Oct 2019 17:46:45 +0100 |
User-agent: |
mu4e 1.3.5; emacs 27.0.50 |
Richard Henderson <address@hidden> writes:
> 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?
I've gated the ld_dynamic_list checks on if test "$static" = "no" so it
errors out quickly if you try and build with --static --enable-plugins.
>
>
> r~
--
Alex Bennée
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH v4 43/54] plugin: add API symbols to qemu-plugins.symbols,
Alex Bennée <=