qemu-devel
[Top][All Lists]
Advanced

[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~




reply via email to

[Prev in Thread] Current Thread [Next in Thread]