GNOME Bugzilla – Bug 784864
Remove some #define constants from glibmmconfig.h.in
Last modified: 2018-05-22 12:14:18 UTC
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.
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/glibmm/issues/22.