--- gobject/Makefile.in.orig	2020-09-23 08:33:39 +0000
+++ gobject/Makefile.in	2020-09-23 08:34:34 +0000
@@ -912,7 +912,8 @@
 libgobject_2_0_la_LDFLAGS = $(GLIB_LINK_FLAGS) \
   $(gobject_win32_res_ldflag) \
   -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
-  -export-dynamic $(no_undefined)
+  -export-dynamic $(no_undefined)  \
+  $(AIX_LD_CONSTRUCTOR_FLAGS_GOBJECT)
 
 libgobject_2_0_la_CFLAGS = $(AM_CFLAGS) $(LIBFFI_CFLAGS) $(GLIB_HIDDEN_VISIBILITY_CFLAGS)
 libgobject_2_0_la_LIBADD = $(libglib) $(LIBFFI_LIBS) $(am__append_18)
--- glib/Makefile.in.orig	2020-09-23 08:30:42 +0000
+++ glib/Makefile.in	2020-09-23 08:31:55 +0000
@@ -1180,7 +1180,8 @@
 libglib_2_0_la_LDFLAGS = $(GLIB_LINK_FLAGS) \
 	 $(glib_win32_res_ldflag) \
 	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
-	-export-dynamic $(no_undefined)
+	-export-dynamic $(no_undefined) \
+        $(AIX_LD_CONSTRUCTOR_FLAGS_GLIB)
 
 INSTALL_PROGS = $(am__append_23) $(am__append_24) $(am__append_25)
 tapsetdir = @ABS_TAPSET_DIR@
--- glib/gconstructor.h.orig	2020-09-23 07:59:26 +0000
+++ glib/gconstructor.h	2020-09-23 08:06:00 +0000
@@ -111,6 +111,26 @@
 #define G_DEFINE_DESTRUCTOR(_func) \
   static void _func(void);
 
+#elif defined(__xlc__)
+
+#define G_HAS_CONSTRUCTORS 1
+
+#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1
+#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1
+
+#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \
+  init(_func)
+#define G_DEFINE_CONSTRUCTOR(_func) \
+  static void _func(void); \
+  void _func ## _wrapper(void) { _func(); }
+
+#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \
+  fini(_func)
+#define G_DEFINE_DESTRUCTOR(_func) \
+  static void _func(void); \
+  void _func ## _wrapper(void) { _func(); }
+
+
 #else
 
 /* constructors not supported for this compiler */
