Thread: Re: Help needed to complile postgresql on Mac.
On Sun, 2005-10-09 at 10:36, Brian A. Seklecki wrote: > Is libpq.dylib getting built? Is it there and just not being found? If > so, you may need the LDFLAGS/CFLAGS settings from: > > http://darwinports.opendarwin.org/darwinports/dports/databases/postgresql8/Portfile > > If it's not being built, capture a log with 'script' and submit a > send-pr(1) > Also some interesting things at: http://cvs.sourceforge.net/viewcvs.py/fink/dists/10.4-transitional/unstable/main/finkinfo/database/postgresql80-unified.patch?rev=1.1&view=auto Whatever happens, make sure the fix gets fed back upstream to the PostgreSQL source tree. Effectively, pkgsrc, fink, and darwinports are overlapping in efforts here.. ~BAS --- postgresql-8.0.2/src/Makefile.shlib Sat Nov 20 16:13:04 2004+++ postgresql-8.0.2-new/src/Makefile.shlib Mon Apr 11 21:18:41 2005@@ -101,11 +101,11 @@ ifeq ($(DLTYPE), library) # linkable library DLSUFFIX := .dylib - LINK.shared = $(COMPILER) -dynamiclib -install_name $(libdir)/lib$(NAME).$(SO_MAJOR_VERSION)$(DLSUFFIX) $(version_link)-multiply_defined suppress+ LINK.shared = $(CXX) $(CFLAGS) -dynamiclib -install_name $(libdir)/lib$(NAME).$(SO_MAJOR_VERSION)$(DLSUFFIX)$(version_link) -multiply_defined suppress else # loadable module (default case) DLSUFFIX := .so - LINK.shared = $(COMPILER) -bundle+ LINK.shared = $(CXX) $(CFLAGS) -bundle endif shlib = lib$(NAME).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)$(DLSUFFIX) shlib_major = lib$(NAME).$(SO_MAJOR_VERSION)$(DLSUFFIX)
Brian A. Seklecki wrote: > On Sun, 2005-10-09 at 10:36, Brian A. Seklecki wrote: > > Is libpq.dylib getting built? Is it there and just not being found? If > > so, you may need the LDFLAGS/CFLAGS settings from: > > > > http://darwinports.opendarwin.org/darwinports/dports/databases/postgresql8/Portfile > > > > If it's not being built, capture a log with 'script' and submit a > > send-pr(1) > > > > > Also some interesting things at: Attached is a cleaned up version of the patch (without wrapping). The change is to use "$(CXX) $(CFLAGS)" instead of $(COMPILER). Does this change break OS/X? Also, we use some weird code in main.c: /* * Now dispatch to one of PostmasterMain, PostgresMain, GucInfoMain, * SubPostmasterMain, or BootstrapMain depending on the program name * (and possibly first argument) we were called with. The lack of * consistency here is historical. */ len = strlen(argv[0]); if ((len >= 10 && strcmp(argv[0] + len - 10, "postmaster") == 0) #ifdef WIN32 || (len >= 14 && strcmp(argv[0] + len - 14, "postmaster.exe") == 0) #endif I think we should be using get_progname() here. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 On Sun, 2005-10-09 at 10:36, Brian A. Seklecki wrote: > Is libpq.dylib getting built? Is it there and just not being found? If > so, you may need the LDFLAGS/CFLAGS settings from: > > http://darwinports.opendarwin.org/darwinports/dports/databases/postgresql8/Portfile > > If it's not being built, capture a log with 'script' and submit a > send-pr(1) > Also some interesting things at: http://cvs.sourceforge.net/viewcvs.py/fink/dists/10.4-transitional/unstable/main/finkinfo/database/postgresql80-unified.patch?rev=1.1&view=auto Whatever happens, make sure the fix gets fed back upstream to the PostgreSQL source tree. Effectively, pkgsrc, fink, and darwinports are overlapping in efforts here.. ~BAS --- postgresql-8.0.2/src/Makefile.shlib Sat Nov 20 16:13:04 2004 +++ postgresql-8.0.2-new/src/Makefile.shlib Mon Apr 11 21:18:41 2005 @@-101,11 +101,11 @@ ifeq ($(DLTYPE), library) # linkable library DLSUFFIX := .dylib - LINK.shared = $(COMPILER) -dynamiclib -install_name $(libdir)/lib$(NAME).$(SO_MAJOR_VERSION)$(DLSUFFIX) $(version_link)-multiply_defined suppress + LINK.shared = $(CXX) $(CFLAGS) -dynamiclib -install_name $(libdir)/lib$(NAME).$(SO_MAJOR_VERSION)$(DLSUFFIX)$(version_link) -multiply_defined suppress else # loadable module (default case) DLSUFFIX := .so - LINK.shared = $(COMPILER) -bundle + LINK.shared = $(CXX) $(CFLAGS) -bundle endif shlib = lib$(NAME).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)$(DLSUFFIX) shlib_major = lib$(NAME).$(SO_MAJOR_VERSION)$(DLSUFFIX) ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq
Bruce Momjian <pgman@candle.pha.pa.us> writes: > Attached is a cleaned up version of the patch (without wrapping). The > change is to use "$(CXX) $(CFLAGS)" instead of $(COMPILER). Does this > change break OS/X? Since our configure doesn't define CXX, I'm having a hard time imagining how it could fail to break it. If we *did* define CXX, it would presumably point to g++, which would also break things since our source code is not C++ clean. Even more to the point, Darwin isn't broken now --- at least it works fine on the powerbook I'm typing this on, and on the several OSX machines in the buildfarm. I would like to know what this patch is alleged to fix before even considering applying it. regards, tom lane
Tom Lane wrote: > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > Attached is a cleaned up version of the patch (without wrapping). The > > change is to use "$(CXX) $(CFLAGS)" instead of $(COMPILER). Does this > > change break OS/X? > > Since our configure doesn't define CXX, I'm having a hard time imagining > how it could fail to break it. > > If we *did* define CXX, it would presumably point to g++, which would > also break things since our source code is not C++ clean. > > Even more to the point, Darwin isn't broken now --- at least it works > fine on the powerbook I'm typing this on, and on the several OSX > machines in the buildfarm. > > I would like to know what this patch is alleged to fix before even > considering applying it. Yea, I see in Makefile.shlib: COMPILER = $(CC) $(CFLAGS) so the code is really changing $CC to $CXX. The big question is why that change is required. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073