Show a patch.

GET /api/1.1/patches/3044/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 3044,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/3044/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/3044/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20200307211326.26994-5-laurent.pinchart@ideasonboard.com>",
    "date": "2020-03-07T21:13:23",
    "name": "[libcamera-devel,v3,4/7] libcamera: Don't unnecessarily link against libatomic",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "87180c7ebe439faa26a5a4132eb96ddf534278d4",
    "submitter": {
        "id": 2,
        "url": "https://patchwork.libcamera.org/api/1.1/people/2/?format=api",
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/3044/mbox/",
    "series": [
        {
            "id": 710,
            "url": "https://patchwork.libcamera.org/api/1.1/series/710/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=710",
            "date": "2020-03-07T21:13:19",
            "name": "Fix race condition and other build issues",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/710/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/3044/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/3044/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "<laurent.pinchart@ideasonboard.com>",
        "Received": [
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3586062826\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  7 Mar 2020 22:13:39 +0100 (CET)",
            "from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C746D9CC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  7 Mar 2020 22:13:38 +0100 (CET)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1583615618;\n\tbh=8+VJnOTs3m7iwGkvU+Jz7ztgj7FTqf4VWAxBW5dNOLg=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=IBhbxYWedmPFBWT8gEi2nM5ZBiQawB9CghqkCLBxClygssGS5hHDUPjrTip4OtKJE\n\tQPwAY2WGbjV/2Wdyl488huLO/Fs1NZOSba6Ab9Pi43eFCY6jqUsx/biTyMlHeS6vVM\n\tZQ1+azVUrlhaqYi4PD0KzlwzLQfXXQWHhKyKih/c=",
        "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Sat,  7 Mar 2020 23:13:23 +0200",
        "Message-Id": "<20200307211326.26994-5-laurent.pinchart@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.24.1",
        "In-Reply-To": "<20200307211326.26994-1-laurent.pinchart@ideasonboard.com>",
        "References": "<20200307211326.26994-1-laurent.pinchart@ideasonboard.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v3 4/7] libcamera: Don't unnecessarily\n\tlink against libatomic",
        "X-BeenThere": "libcamera-devel@lists.libcamera.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "<libcamera-devel.lists.libcamera.org>",
        "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>",
        "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>",
        "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>",
        "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>",
        "X-List-Received-Date": "Sat, 07 Mar 2020 21:13:40 -0000"
    },
    "content": "libatomic provides atomic operations that are also available as compiler\nbuilt-ins on most platforms. On some platforms (such as Sparc) linking\nagainst libatomic is required to use any atomic operation. libcamera\nlinks against libatomic if available for that reason.\n\nThis however makes libcamera link against libatomic even when not\nrequired, if libatomic is available. Restrict this to only the cases\nwhere libatomic is required with a link test.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n meson.build               |  1 +\n src/libcamera/meson.build |  2 +-\n src/meson.build           | 17 +++++++++++++++++\n 3 files changed, 19 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/meson.build b/meson.build\nindex c6e6a934e54e..a1e455249b0d 100644\n--- a/meson.build\n+++ b/meson.build\n@@ -24,6 +24,7 @@ libcamera_version = libcamera_git_version.split('+')[0]\n \n # Configure the build environment.\n cc = meson.get_compiler('c')\n+cxx = meson.get_compiler('cpp')\n config_h = configuration_data()\n \n if cc.has_header_symbol('execinfo.h', 'backtrace')\ndiff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\nindex 1b69bc0dee54..ac6f597c6188 100644\n--- a/src/libcamera/meson.build\n+++ b/src/libcamera/meson.build\n@@ -93,7 +93,7 @@ version_cpp = vcs_tag(command : [gen_version, meson.build_root()],\n libcamera_sources += version_cpp\n \n libcamera_deps = [\n-    cc.find_library('atomic', required: false),\n+    libatomic_dep,\n     cc.find_library('dl'),\n     libudev,\n     dependency('threads'),\ndiff --git a/src/meson.build b/src/meson.build\nindex d818d8b86d93..abf755936f2b 100644\n--- a/src/meson.build\n+++ b/src/meson.build\n@@ -1,3 +1,20 @@\n+# On some platforms gcc doesn't provide built-ins for atomic operations,\n+# explicit linking against libatomic is required.\n+if cxx.links('''\n+    #include <atomic>\n+    #include <cstdint>\n+    int main(void)\n+    {\n+        std::atomic<std::uint32_t> u32(0);\n+        std::atomic<std::uint64_t> u64(0);\n+        return u32.load() + u64.load();\n+    }\n+''')\n+    libatomic_dep = dependency('', required : false)\n+else\n+    libatomic_dep = cc.find_library('atomic')\n+endif\n+\n if get_option('android')\n     subdir('android')\n endif\n",
    "prefixes": [
        "libcamera-devel",
        "v3",
        "4/7"
    ]
}