Обсуждение: 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