Remove some #define constants from glibmmconfig.h.in
@kjellahl
Submitted by Kjell Ahlstedt Link to original bug (#784864)
Description
Configuration of glibmm defines many preprocessor constants in glibmmconfig.h. Some of these are obsolete, and IMO should be removed. Similar constants have been removed from libsigc++3.
I have examined the use in glibmm, atkmm, pangomm, gtkmm, gtkmm-documentation and libxml++, git master branches.
M4 macros called from glibmm/configure.ac:
File M4 macro, #define constant
c_std.m4 GLIBMM_C_STD_TIME_T_IS_NOT_INT32 #define GLIBMM_HAVE_C_STD_TIME_T_IS_NOT_INT32 Not used in glibmm, gtkmm
cxx.m4 GLIBMM_CXX_MEMBER_FUNCTIONS_MEMBER_TEMPLATES #define GLIBMM_MEMBER_FUNCTIONS_MEMBER_TEMPLATES Not used in glibmm, gtkmm
GLIBMM_CXX_CAN_DISAMBIGUATE_CONST_TEMPLATE_SPECIALIZATIONS
#define GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
Not used in gtkmm
*** Used in glibmm
GLIBMM_CXX_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
#define
GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
Not used in gtkmm
*** Used in glibmm
GLIBMM_CXX_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS
#define
GLIBMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS
Not used in glibmm, gtkmm
GLIBMM_CXX_CAN_USE_NAMESPACES_INSIDE_EXTERNC
#define GLIBMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC
Not used in glibmm, gtkmm
GLIBMM_CXX_CAN_USE_THREAD_LOCAL
#define GLIBMM_CAN_USE_THREAD_LOCAL
Not used in glibmm, gtkmm
cxx_std.m4 GLIBMM_CXX_HAS_STD_ITERATOR_TRAITS #define GLIBMM_HAVE_STD_ITERATOR_TRAITS Not used in gtkmm *** Used in glibmm
GLIBMM_CXX_HAS_SUN_REVERSE_ITERATOR
#define GLIBMM_HAVE_SUN_REVERSE_ITERATOR
*** Used in glibmm, gtkmm
GLIBMM_CXX_HAS_TEMPLATE_SEQUENCE_CTORS
#define GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
Not used in gtkmm
*** Used in glibmm
GLIBMM_CXX_ALLOWS_STATIC_INLINE_NPOS
#define GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS
Not used in gtkmm
*** Used in glibmm
GLIBMM_CXX_HAS_NAMESPACE_STD
#define GLIBMM_HAVE_NAMESPACE_STD
Called indirectly, via other m4 macros in cxx_std.m4.
Not used in glibmm, gtkmm
debug.m4 GLIBMM_ARG_ENABLE_DEBUG_REFCOUNTING #define GLIBMM_DEBUG_REFCOUNTING *** Used in glibmm, gtkmm
sun.m4 GLIBMM_PROG_CXX_SUN #define GLIBMM_COMPILER_SUN_FORTE Not used in glibmm, gtkmm
None of these #define constants are used in atkmm, pangomm, libxml++ or gtkmm-documentation.
7 out of these 14 #define constants are not used in glibmm or gtkmm.
GLIBMM_EXCEPTIONS_ENABLED, GLIBMM_PROPERTIES_ENABLED, GLIBMM_VFUNCS_ENABLED and GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED are always defined. Can they be removed? Only GLIBMM_EXCEPTIONS_ENABLED is used in any of the examined modules. It's only used in pangomm/pango/src/fontset.ccg, and it should be removed from there.
glibmm/glib/glibmmconfig.h.in contains /* Dummy macro definition for compatibility with old code that expects
- it to be defined. Remove after grace period. */ #define GLIBMM_USING_STD(Symbol) Has the grace period ended? GLIBMM_USING_STD is not used in any of the examined modules.
Version: 2.53.x