[libcamera-devel] [PATCH] meson: Simplify check for _FORTIFY_SOURCE

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Sep 19 15:39:43 CEST 2023


Use the compiler.get_define() function to get the value of
_FORTIFY_SOURCE instead of iterating over the cpp_args. This simplies
the code, but also guarantees to return the actual value of
_FORTIFY_SOURCE, even if defined through other means than through the
meson cpp_args.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 meson.build | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/meson.build b/meson.build
index 2e8342630332..e9a1c7e360ce 100644
--- a/meson.build
+++ b/meson.build
@@ -104,17 +104,9 @@ if cc.get_id() == 'clang'
     # result in macro redefinition errors if the user already has a setting for
     # `-D_FORTIFY_SOURCE`. Do not enable FORTIFY in either of those cases.
     if get_option('optimization') != '0'
-        has_fortify_define = false
-        # Assume that if the user requests a FORTIFY level in cpp_args, they
-        # do the same for c_args.
-        foreach flag : get_option('cpp_args')
-            if flag == '-U_FORTIFY_SOURCE'
-                has_fortify_define = false
-            elif flag.startswith('-D_FORTIFY_SOURCE=')
-                has_fortify_define = true
-            endif
-        endforeach
-        if not has_fortify_define
+        fortify = cc.get_define('_FORTIFY_SOURCE')
+        if fortify == ''
+            message('Adding _FORTIFY_SOURCE')
             common_arguments += [
                 '-D_FORTIFY_SOURCE=2',
             ]

base-commit: 9c5eb9237cf6ae170086f0d4d87a025aa052cc9f
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list