Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/810775/?format=api
{ "id": 810775, "url": "http://patchwork.ozlabs.org/api/patches/810775/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1504729728-23279-4-git-send-email-cota@braap.org/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1504729728-23279-4-git-send-email-cota@braap.org>", "list_archive_url": null, "date": "2017-09-06T20:28:45", "name": "[RFC,3/6] configure: add --enable-plugins", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "690814c3f1eea1d4545b5dd7f69cda7daaebd737", "submitter": { "id": 65690, "url": "http://patchwork.ozlabs.org/api/people/65690/?format=api", "name": "Emilio Cota", "email": "cota@braap.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1504729728-23279-4-git-send-email-cota@braap.org/mbox/", "series": [ { "id": 1871, "url": "http://patchwork.ozlabs.org/api/series/1871/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=1871", "date": "2017-09-06T20:28:45", "name": "initial plugin support", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/1871/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/810775/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/810775/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=braap.org header.i=@braap.org\n\theader.b=\"dNMMscph\"; \n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=messagingengine.com\n\theader.i=@messagingengine.com header.b=\"KSxkxq9Z\"; \n\tdkim-atps=neutral" ], "Received": [ "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xnZwZ6pf1z9t2c\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 7 Sep 2017 06:30:54 +1000 (AEST)", "from localhost ([::1]:37677 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dpgyL-0002eF-25\n\tfor incoming@patchwork.ozlabs.org; Wed, 06 Sep 2017 16:30:53 -0400", "from eggs.gnu.org ([2001:4830:134:3::10]:53488)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <cota@braap.org>) id 1dpgxU-0002Zm-AS\n\tfor qemu-devel@nongnu.org; Wed, 06 Sep 2017 16:30:01 -0400", "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <cota@braap.org>) id 1dpgxR-00013l-5n\n\tfor qemu-devel@nongnu.org; Wed, 06 Sep 2017 16:30:00 -0400", "from out1-smtp.messagingengine.com ([66.111.4.25]:50383)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <cota@braap.org>) id 1dpgxR-00012D-07\n\tfor qemu-devel@nongnu.org; Wed, 06 Sep 2017 16:29:57 -0400", "from compute4.internal (compute4.nyi.internal [10.202.2.44])\n\tby mailout.nyi.internal (Postfix) with ESMTP id 867F021333;\n\tWed, 6 Sep 2017 16:29:55 -0400 (EDT)", "from frontend2 ([10.202.2.161])\n\tby compute4.internal (MEProxy); Wed, 06 Sep 2017 16:29:55 -0400", "from localhost (flamenco.cs.columbia.edu [128.59.20.216])\n\tby mail.messagingengine.com (Postfix) with ESMTPA id 4A4D3240A4;\n\tWed, 6 Sep 2017 16:29:55 -0400 (EDT)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc\n\t:date:from:in-reply-to:message-id:references:subject:to\n\t:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=0Tg\n\tp9O/DXyYzJ0E8AdBm7s9h5NAXuRN+n2/EOxZa2Xo=; b=dNMMscphVxdEpKWvW60\n\tP/CTb9YBTanAe9hU98qSCN+BAH7BBcJqP71tNUaHpaCSAxfMKAhHgRwEIEyrUPvL\n\tallxCaD9R26KEBKKnShtDlAdRQoN/BAQQWwi0qjOYVPKTPTDfJ88+p7pF3GxuIZa\n\t3oCI2Fc6QGYh9rTfBRSJnI9A=", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n\tmessagingengine.com; h=cc:date:from:in-reply-to:message-id\n\t:references:subject:to:x-me-sender:x-me-sender:x-sasl-enc\n\t:x-sasl-enc; s=fm1; bh=0Tgp9O/DXyYzJ0E8AdBm7s9h5NAXuRN+n2/EOxZa2\n\tXo=; b=KSxkxq9ZnhN4zPCjfw1ZD6bz16PtZoAHBSNvlWy8+H2I9BWwArSxb9/l6\n\tth+eL8vKtOpzIvL9vklj903SDKEy9Jhxd++sVMjddfXtv68xLoigYvN7MB9z0all\n\tU0EWF3jvFtA/HK7eUMTli2FbA0zvtVpgoQDbvkiybWX3aTG5V2lTGUwz7UjVxTtK\n\tG7+802M+Yboxssehmhh1RXdPhyoxur9WazXn057/cnKBnlBqKcYYo2DAepEc9Yk9\n\teKLZNfsYA0BKdouK1t0sD+K8h96Z/M7eiLjbzbbv9T8/11L0mEih4fQpqQqeBt1V\n\tx1HMSwK4gODpLlTIUF7icBctLFbnQ==" ], "X-ME-Sender": "<xms:w1qwWaq5LnEkPnz3fZr3jokf3JdxXc_uslz-E2l12PmO5xL52II4pA>", "X-Sasl-enc": "jV0PJFLzLnfqwBIVV4BV6yCbq/jBHlqur6TLXMXi5kC/ 1504729795", "From": "\"Emilio G. Cota\" <cota@braap.org>", "To": "qemu-devel@nongnu.org", "Date": "Wed, 6 Sep 2017 16:28:45 -0400", "Message-Id": "<1504729728-23279-4-git-send-email-cota@braap.org>", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": "<1504729728-23279-1-git-send-email-cota@braap.org>", "References": "<1504729728-23279-1-git-send-email-cota@braap.org>", "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]", "X-Received-From": "66.111.4.25", "Subject": "[Qemu-devel] [RFC 3/6] configure: add --enable-plugins", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.21", "Precedence": "list", "List-Id": "<qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Cc": "=?utf-8?q?Llu=C3=ADs_Vilanova?= <vilanova@ac.upc.edu>,\n\tStefan Hajnoczi <stefanha@redhat.com>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>" }, "content": "For now only add it for ELF platforms, since we rely on the linker's\n--dynamic-list flag to pass a list of symbols to be exported to the\nexecutable. An alternative would be to use -rdynamic, but that would\nexpose all of QEMU's objects to plugins.\n\nI have no experience with non-ELF systems but I suspect adding support\nfor those should be pretty easy.\n\nSigned-off-by: Emilio G. Cota <cota@braap.org>\n---\n configure | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)", "diff": "diff --git a/configure b/configure\nindex 987f59b..45f7af5 100755\n--- a/configure\n+++ b/configure\n@@ -30,6 +30,7 @@ TMPO=\"${TMPDIR1}/${TMPB}.o\"\n TMPCXX=\"${TMPDIR1}/${TMPB}.cxx\"\n TMPE=\"${TMPDIR1}/${TMPB}.exe\"\n TMPMO=\"${TMPDIR1}/${TMPB}.mo\"\n+TMPTXT=\"${TMPDIR1}/${TMPB}.txt\"\n \n rm -f config.log\n \n@@ -404,6 +405,8 @@ tcmalloc=\"no\"\n jemalloc=\"no\"\n replication=\"yes\"\n vxhs=\"\"\n+plugins=\"no\"\n+ld_dynamic_list=\"no\"\n \n supported_cpu=\"no\"\n supported_os=\"no\"\n@@ -1282,6 +1285,10 @@ for opt do\n ;;\n --enable-vxhs) vxhs=\"yes\"\n ;;\n+ --enable-plugins) plugins=\"yes\"\n+ ;;\n+ --disable-plugins) plugins=\"no\"\n+ ;;\n *)\n echo \"ERROR: unknown option $opt\"\n echo \"Try '$0 --help' for more information\"\n@@ -1442,6 +1449,8 @@ Advanced options (experts only):\n xen pv domain builder\n --enable-debug-stack-usage\n track the maximum stack usage of stacks created by qemu_alloc_stack\n+ --enable-plugins\n+ enable plugins via shared library loading\n \n Optional features, enabled with --enable-FEATURE and\n disabled with --disable-FEATURE, default is enabled if available:\n@@ -4745,6 +4754,42 @@ if compile_prog \"\" \"\" ; then\n atomic64=yes\n fi\n \n+#########################################\n+# See if --dynamic-list is supported by the linker\n+\n+cat > $TMPTXT <<EOF\n+{\n+ foo;\n+};\n+EOF\n+\n+cat > $TMPC <<EOF\n+#include <stdio.h>\n+void foo(void);\n+\n+void foo(void)\n+{\n+ printf(\"foo\\n\");\n+}\n+\n+int main(void)\n+{\n+ foo();\n+ return 0;\n+}\n+EOF\n+\n+if compile_prog \"\" \"-Wl,--dynamic-list=$TMPTXT\" ; then\n+ ld_dynamic_list=\"yes\"\n+else\n+ if test \"$plugins\" = \"yes\" ; then\n+ error_exit \\\n+ \"Plugin support requires specifying a set of symbols that \" \\\n+ \"are exported to plugins. Unfortunately your linker doesn't \" \\\n+ \"support the flag (--dynamic-list) used for this purpose.\"\n+ fi\n+fi\n+\n ########################################\n # check if getauxval is available.\n \n@@ -5388,6 +5433,7 @@ echo \"jemalloc support $jemalloc\"\n echo \"avx2 optimization $avx2_opt\"\n echo \"replication support $replication\"\n echo \"VxHS block device $vxhs\"\n+echo \"plugin support $plugins\"\n \n if test \"$sdl_too_old\" = \"yes\"; then\n echo \"-> Your SDL version is too old - please upgrade to have SDL support\"\n@@ -6053,6 +6099,12 @@ if test \"$vxhs\" = \"yes\" ; then\n echo \"VXHS_LIBS=$vxhs_libs\" >> $config_host_mak\n fi\n \n+if test \"$plugins\" = \"yes\" ; then\n+ echo \"CONFIG_PLUGINS=y\" >> $config_host_mak\n+ LIBS=\"-ldl $LIBS\"\n+ LDFLAGS=\"-Wl,--dynamic-list=\\$(SRC_PATH)/qemu-plugins.symbols $LDFLAGS\"\n+fi\n+\n if test \"$tcg_interpreter\" = \"yes\"; then\n QEMU_INCLUDES=\"-I\\$(SRC_PATH)/tcg/tci $QEMU_INCLUDES\"\n elif test \"$ARCH\" = \"sparc64\" ; then\n", "prefixes": [ "RFC", "3/6" ] }