On 16/10/2025 18:28, AIX PG user wrote:
diff --git a/src/template/aix b/src/template/aix new file mode 100644 index 00000000000..bfc193348f4 --- /dev/null +++ b/src/template/aix @@ -0,0 +1,7 @@ +# This file is referred for specific flags wrt to AIX build process like +# cflags. +# src/template/aix + +# Extra CFLAGS for code that will go into a shared library +# With optimization, the MemSet() and MemSetAlign() perform better. +CFLAGS_SL=" -O2 " --

This looks weird. Sure, "-O2" makes things faster, but we shouldn't force that here. If you want optimizations, you should use pass CFLAGS="-O2" or CFLAGS="-O3" to configure. And why the special mention of MemSet() and MemSetAlign()?

@@ -95,6 +97,24 @@ libpostgres.a: postgres
endif # win32 +ifeq ($(PORTNAME), aix)
+
+postgres: $(POSTGRES_IMP)
+       $(CC) $(CFLAGS) $(call expand_subsys,$(OBJS)) $(LDFLAGS) 
-Wl,-bE:$(top_builddir)/src/backend/$(POSTGRES_IMP) $(LIBS) -Wl,-brtllib -o $@
+
+# Linking to a single .o with -r is a lot faster than building a .a or passing
+# all objects to MKLDEXPORT.
+#
+# It looks alluring to use $(CC) -r instead of ld -r, but that doesn't
+# trivially work with gcc, due to gcc specific static libraries linked in with
+# -r.
+$(POSTGRES_IMP): $(OBJS)
+       ld -r -o SUBSYS.o $(call expand_subsys,$^)
+       $(MKLDEXPORT) SUBSYS.o . > $@
+       @rm -f SUBSYS.o
+
+endif # aix
+
 $(top_builddir)/src/port/libpgport_srv.a: | submake-libpgport

I see there's some references to MAKE_EXPORTS in src/backend/Makefile. They seem related to MKLDEXPORT, but we never set MAKE_EXPORTS. Are they still needed?

- Heikki



Reply via email to