I've back ported some build features from Thunar to the dev-tools. I haven't actually tested it (no Linux here), but I think you'll get the point ^_^.
Created attachment 920 Debug and build improvements - Improved debug support (-O0 flag, better checking). - Support for a default debug mode: m4_define([xbs_debug_default], [ifelse(package_version_tag(), [svn], [yes], [minimum])]) - as-needed support. Maybe not very smart, but I think we've fixed most of the linker problems. - Move automake options
Created attachment 921 Remove the panel Panel helper can be removed, since we use XDT_CHECK_PACKAGE for detecting libxfce4panel.
Maybe the linker improvement is a bit tricky for 4.4.0. But I think better debug flags are not a bad idea. Btw. Why don't we 'unset' the LDFLAGS when building with debug? Because adding --strip in the LDFLAGS removes the debug info from the library/binary, isn't it?
I think it's also better to move the --enable-final (and if committed, the --as-needed) code from BM_FEATURE_DEBUG to XDT_FEATURE_DEBUG, because atm, none of the Xfce modules benefits from this linker improvement (except xfce4-session). Or create a new macro? XDT_LINKER_OPTIMIZATIONS?
Created attachment 1066 New and improved xdt-features I've create a new patch, so we can get rid of all the 'custom' macros in xfce-mcs-manager/plugins, thunar, exo etc. Small description of them below: There is an 'internal' macro for debug support (_XDT_FEATURE_DEBUG), this macro only returns the additional CFLAGS and CPPFLAGS. It check for compiler support, including the Solaris patch that is now in trunk here and there. You can set the debug mode to no, minimum, yes and full. The XDT_FEATURE_DEBUG() marco uses the internal debug macro and sets the CFLAGS and CXXFLAGS like the old version did. Its behavior has not been changed, so it's save for the Xfce components that already use it. XDT_FEATURE_DEBUG_PLATFORM platform is the same as XDT_FEATURE_DEBUG, but it sets the PLATFORM_CPPFLAGS and PLATFORM_CFLAGS, like used in Thunar and Exo. Both macros also accept a default debug mode like this (in configure.in.in): m4_define([sample_debug_default], [ifelse(sample_version_tag(), [svn], [yes], [minimum])]) XDT_FEATURE_DEBUG_PLATFORM([sample_debug_default()]) When no default debug mode is set, it will be set to minimum. Then there are 2 new macros: XDT_FEATURE_LINKER for -Wl,-O1 and -Wl,--as-needed checks and set the LDFLAGS. Those can be disabled by --disable-final. Of course this one can break packages, but it's up to the developers if he adds this macro or not. XDT_FEATURE_VISIBILITY for visibility support. This is used in a couple of Xfce libs/apps, so probably better off in the dev tools. The macros sets HAVE_GNUC_VISIBILITY to 1 and adds -DHAVE_GNUC_VISIBILITY to PLATFORM_CPPFLAGS.