97 lines
2.2 KiB
Text
97 lines
2.2 KiB
Text
Revert..
|
|
|
|
[PATCH] configure: simplify creation of plugin symbol list
|
|
37650689473c4cdb5838f90cbc1aefbcd9332fb0
|
|
|
|
Index: configure
|
|
--- configure.orig
|
|
+++ configure
|
|
@@ -81,6 +81,7 @@ TMPC="${TMPDIR1}/${TMPB}.c"
|
|
TMPO="${TMPDIR1}/${TMPB}.o"
|
|
TMPM="${TMPDIR1}/${TMPB}.m"
|
|
TMPE="${TMPDIR1}/${TMPB}.exe"
|
|
+TMPTXT="${TMPDIR1}/${TMPB}.txt"
|
|
|
|
rm -f config.log
|
|
|
|
@@ -1330,7 +1331,6 @@ if test "$static" = "yes" ; then
|
|
plugins="no"
|
|
fi
|
|
fi
|
|
-test "$plugins" = "" && plugins=yes
|
|
|
|
cat > $TMPC << EOF
|
|
|
|
@@ -1475,6 +1475,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
|
|
@@ -2404,6 +2454,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
|