[libcamera-devel] [PATCH] meson: Define _FORTIFY_SOURCE for non-debug builds

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Aug 27 09:52:32 CEST 2019


Hi Kieran,

On Tue, Aug 27, 2019 at 08:47:41AM +0100, Kieran Bingham wrote:
> On 26/08/2019 22:51, Laurent Pinchart wrote:
> > On Mon, Aug 26, 2019 at 11:45:33PM +0200, Niklas Söderlund wrote:
> >> On 2019-08-19 16:02:45 +0300, Laurent Pinchart wrote:
> >>> _FORTIFY_SOURCE add useful checks during compilation. Enable it by
> >>> default, except for debug builds as it requires at least a -O1
> >>> optimisation level.
> >>
> >> I think this is a good idea, it's a shame we can't have it enabled for 
> >> debug builds. My normal workflow of "meson build; ninja -C build" 
> >> produces debug builds so if this catch a problem it will be at release 
> >> time.
> > 
> > We could change the default build type too.
> 
> I think we should keep our default build type as debug. During
> development we want debug symbols and any extra checks such as fail fast
> assertions. Yes it's annoying that we can't have /these/ extra checks at
> build time in debug too - but release builds will be built ...

debug builds for development makes sense, but a different default build
type might still make sense. What's the most common case, libcamera
development, or libcamera packaging ? For us it's clearly development
:-) I think we can postpone any change to the default build type, but at
some point we may want to reconsider, if only to avoid distribution
incorrectly packaging a debug build.

> Building as release should be done by automated build processes.
> (which Mauro has already started) so should be caught there.
> 
> So for this, we just need to make sure Mauro's build is configured as a
> release build. Or better yet, has multiple build configurations.
> 
> >>> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> >>
> >> Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> >>
> >>> ---
> >>>  meson.build | 6 ++++++
> >>>  1 file changed, 6 insertions(+)
> >>>
> >>> diff --git a/meson.build b/meson.build
> >>> index 13d0605f903c..53263d68791d 100644
> >>> --- a/meson.build
> >>> +++ b/meson.build
> >>> @@ -35,6 +35,12 @@ common_arguments = [
> >>>      '-include', 'config.h',
> >>>  ]
> >>>  
> >>> +if get_option('buildtype') != 'debug'
> >>> +    common_arguments += [
> >>> +        '-D_FORTIFY_SOURCE=1',
> >>> +    ]
> >>> +endif
> >>> +
> >>>  c_arguments = common_arguments
> >>>  cpp_arguments = common_arguments
> >>>  

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list