[pacman-dev] [PATCH] Enable additional debug flags/logging with debugoptimized builds

Allan McRae allan at archlinux.org
Mon Dec 10 01:19:45 UTC 2018


On 4/12/18 10:56 pm, Dave Reisner wrote:
> On Tue, Dec 04, 2018 at 05:14:50PM +1000, Allan McRae wrote:
>> On 4/12/18 12:36 am, Dave Reisner wrote:
>>> This lets developers run a local build with optimizations but also the
>>> added debug logging that comes with PACMAN_DEBUG being defined.
>>> ---
>>
>> So, we only test for "debug" to enable anything.  What options starting
>> with debug would be used here?
> 
> meson understands --buildtype=debug and --buildtype=debugoptimized when
> you configure the build. Before this patch, only the former buildtype is
> accepted in order to trigger these extra flags. After, both buildtypes
> are.
> 
>> Also, all those warning flags in this test are set with --enable-warning
>> flags in autotools based builds.  Strangely, all the options from
>> --enable-debug are not set here...
> 
> I chose not to add a -Ddebug=true flag to the meson build and instead
> key off of the buildtype. With this patch, I'm essentially suggesting
> that developers who want a suitable debugging build should just build as
> --buildtype=(debug|debugoptimized). That gives you the extra warning
> flags and extra timestamp logging just the same as --enable-debug and
> --enable-warning-flags gave you with autotools.
> 
> Do you feel there's reason to separate these concerns?
> 

I think we separated these due to compiler updates making lots of
warnings.  Then we could have debug builds without erroring on new
warning until they were fixed.  However...  meson debug does not add
-Werror, so separating them is not really needed.  Happy with the patch
as is.


As an aside, looking at the configure.ac:

if test "x$debug" = "xyes" ; then
	AC_MSG_RESULT(yes)
	AC_DEFINE([PACMAN_DEBUG], , [Enable debug code])
	# Check for -fstack-protector availability
	GCC_STACK_PROTECT_LIB
	GCC_STACK_PROTECT_CC
	GCC_FORTIFY_SOURCE_CC
	WARNING_CFLAGS="-g -Wall -Werror"
else
	AC_MSG_RESULT(no)
	WARNING_CFLAGS="-Wall"
fi

Is -Wall default in meson builds?  Should we enforce stack protection
stuff in our debug builds (for those of us not building with default
Arch makepkg flags)?


Allan


More information about the pacman-dev mailing list