ports/emulators/qemu/patches/patch-configure

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
@@ -1329,7 +1330,6 @@ if test "$static" = "yes" ; then
plugins="no"
fi
fi
-test "$plugins" = "" && plugins=yes
cat > $TMPC << EOF
@@ -1474,6 +1474,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
@@ -2403,6 +2453,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