Revert..

[PATCH] configure: simplify creation of plugin symbol list
37650689473c4cdb5838f90cbc1aefbcd9332fb0

Index: configure
--- configure.orig
+++ configure
@@ -79,6 +79,7 @@ TMPO="${TMPDIR1}/${TMPB}.o"
 TMPCXX="${TMPDIR1}/${TMPB}.cxx"
 TMPM="${TMPDIR1}/${TMPB}.m"
 TMPE="${TMPDIR1}/${TMPB}.exe"
+TMPTXT="${TMPDIR1}/${TMPB}.txt"
 
 rm -f config.log
 
@@ -1354,7 +1355,6 @@ if test "$static" = "yes" ; then
     plugins="no"
   fi
 fi
-test "$plugins" = "" && plugins=yes
 
 cat > $TMPC << EOF
 
@@ -1511,6 +1511,56 @@ if ! has "$pkg_config_exe"; then
 fi
 
 ##########################################
+# plugin linker support probe
+
+if test "$plugins" != "no"; then
+
+    #########################################
+    # See if --dynamic-list is supported by the linker
+
+    ld_dynamic_list="no"
+    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
+
+    if compile_prog "" "-Wl,--dynamic-list=$TMPTXT" ; then
+        ld_dynamic_list="yes"
+    fi
+
+    if test "$ld_dynamic_list" = "no" ; then
+        if test "$plugins" = "yes"; then
+            error_exit \
+                "Plugin support requires dynamic linking and specifying a set of symbols " \
+                "that are exported to plugins. Unfortunately your linker doesn't " \
+                "support the flag (--dynamic-list) used " \
+                "for this purpose."
+        else
+            plugins="no"
+        fi
+    else
+        plugins="yes"
+    fi
+fi
+
+##########################################
 # glib support probe
 
 # When bumping glib_req_ver, please check also whether we should increase
@@ -2481,6 +2531,15 @@ fi
 
 if test "$plugins" = "yes" ; then
     echo "CONFIG_PLUGIN=y" >> $config_host_mak
+    # 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
+    else
+	error_exit \
+	    "If \$plugins=yes, \$ld_dynamic_list should have been set to 'yes'."
+    fi
 fi
 
 if test -n "$gdb_bin"; then
