Thread: Re: Help needed to complile postgresql on Mac.

Re: Help needed to complile postgresql on Mac.

From
"Brian A. Seklecki"
Date:
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)


Darwin compile fixes

From
Bruce Momjian
Date:
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


Re: [HACKERS] Darwin compile fixes

From
Tom Lane
Date:
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

Re: [HACKERS] Darwin compile fixes

From
Bruce Momjian
Date:
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