Re: Help needed to complile postgresql on Mac.

Started by Brian A. Sekleckiover 20 years ago4 messageshackers
Jump to latest
#1Brian A. Seklecki
lavalamp@spiritual-machines.org

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)
#2Bruce Momjian
bruce@momjian.us
In reply to: Brian A. Seklecki (#1)
Darwin compile fixes

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

Attachments:

/pgpatches/darwintext/plainDownload+10-2
#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#2)
Re: [HACKERS] Darwin compile fixes

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

#4Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#3)
Re: [HACKERS] Darwin compile fixes

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