{"id":1854,"url":"https://patchwork.libcamera.org/api/patches/1854/?format=json","web_url":"https://patchwork.libcamera.org/patch/1854/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20190819170249.11177-2-laurent.pinchart@ideasonboard.com>","date":"2019-08-19T17:02:49","name":"[libcamera-devel,v2,2/2] meson: Define _FORTIFY_SOURCE for optimised builds","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"62ecd1e25e1906c33c6e7f919ed6ed4144845a6b","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/1854/mbox/","series":[{"id":466,"url":"https://patchwork.libcamera.org/api/series/466/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=466","date":"2019-08-19T17:02:48","name":"[libcamera-devel,v2,1/2] libcamera: process: Properly ignore unused result with gcc","version":2,"mbox":"https://patchwork.libcamera.org/series/466/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/1854/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/1854/checks/","tags":{},"headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E9D6C60C1E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 19 Aug 2019 19:02:58 +0200 (CEST)","from pendragon.bb.dnainternet.fi\n\t(dfj612yhrgyx302h3jwwy-3.rev.dnainternet.fi\n\t[IPv6:2001:14ba:21f5:5b00:ce28:277f:58d7:3ca4])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8602DD45\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 19 Aug 2019 19:02:58 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1566234178;\n\tbh=f+TvTBf/xc7IhuURUSZsdh9zaNardu56Oqy+QP+vHE4=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=JXSQKM7tOB2ZwWGKrOssGuRvXXQZhI8XZILjwI21DOBScrcP5jwDW9CQvtSoLI82p\n\t1Te0aedZyMqnDv5BrrfIh4+psiT1kWuV2d7HadSxRzmifQI5PcJW1+qXRkI2dPOBBi\n\tHkJpRRmMk15r8yepi2cROiI1+6Vik2OirRnCh6rA=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Mon, 19 Aug 2019 20:02:49 +0300","Message-Id":"<20190819170249.11177-2-laurent.pinchart@ideasonboard.com>","X-Mailer":"git-send-email 2.21.0","In-Reply-To":"<20190819170249.11177-1-laurent.pinchart@ideasonboard.com>","References":"<20190819170249.11177-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v2 2/2] meson: Define _FORTIFY_SOURCE for\n\toptimised builds","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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":"Mon, 19 Aug 2019 17:02:59 -0000"},"content":"_FORTIFY_SOURCE adds useful checks during compilation. The option is\nenabled by default by gcc on all non-optimised builds (as it requires\n-O1 or higher). Enable it explicitly for clang.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\nChanges since v1:\n\n- Condition _FORTIFY_SOURCE on the optimisation level, not the build\n  type\n- Enable _FORTIFY_SOURCE on clang only as gcc does it by default\n\nThis patch has been tested with gcc5, gcc6, gcc7, gcc8, gcc9, clang7 and\nclang8, with all the meson built types (plain, debug, debugoptimized,\nrelease and minsize).\n\n---\n meson.build | 22 ++++++++++++++++------\n 1 file changed, 16 insertions(+), 6 deletions(-)","diff":"diff --git a/meson.build b/meson.build\nindex 13d0605f903c..c30287e262a5 100644\n--- a/meson.build\n+++ b/meson.build\n@@ -38,12 +38,22 @@ common_arguments = [\n c_arguments = common_arguments\n cpp_arguments = common_arguments\n \n-# Use libc++ by default if available instead of libstdc++ when compiling with\n-# clang.\n-if cc.get_id() == 'clang' and cc.find_library('libc++', required: false).found()\n-    cpp_arguments += [\n-        '-stdlib=libc++',\n-    ]\n+if cc.get_id() == 'clang'\n+    # Turn _FORTIFY_SOURCE by default on optimised builds (as it requires -O1\n+    # or higher). This is needed on clang only as gcc enables it by default.\n+    if get_option('optimization') != '0'\n+        common_arguments += [\n+            '-D_FORTIFY_SOURCE=1',\n+        ]\n+    endif\n+\n+    # Use libc++ by default if available instead of libstdc++ when compiling\n+    # with clang.\n+    if cc.find_library('libc++', required: false).found()\n+        cpp_arguments += [\n+            '-stdlib=libc++',\n+        ]\n+    endif\n endif\n \n add_project_arguments(c_arguments, language : 'c')\n","prefixes":["libcamera-devel","v2","2/2"]}