Problem to configure pg8.3b2 w/ ossp-uuid-support on OS X

From: J=?ISO-8859-1?B?9g==?=rg Beyer <Beyerj(at)students(dot)uni-marburg(dot)de>
To: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Problem to configure pg8.3b2 w/ ossp-uuid-support on OS X
Date: 2007-11-11 11:29:19
Message-ID: C35CA61F.495E%Beyerj@students.uni-marburg.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello.

Compiling PostgreSQL 8.3 beta 2 on OS X 10.4 leads to some configuration
problems, at least for an ordinary user like me -- so please bare with me if
the following is due to user error and not PostgreSQL's fault.

Some necessary notes on my environment:
-- OS X 10.4.10 /w Xcode 2.5.0 (latest dev tools from Apple, incl. gcc
4.0.1)
-- My PostgreSQL installations go to a nonstandard directory, /Library, for
instance /Library/PostgreSQL-8.2 or /Library/PostgreSQL-8.3
-- I compile PostgreSQL from source, no pre-built binaries, Fink,
DarwinPorts and the like involved
-- Binaries and libraries installed _by the OS itself_ reside in /usr (e.g.
uuid, libxml2, libxslt)
-- I have _updated or alternative versions_ of these three libraries
installed in /usr/local, all are tested and working AFAICS

So to sum up, I have alternative versions of some prerequisites in different
locations. This leads to two problems building PostgreSQL 8.3, one with XSLT
support, one with ossp-uuid. Both problems have a common denominator, I'll
concentrate on ossp-uuid here.

I installed ossp-uuid 1.6.0 and put it in /usr/local.
Configuring the 8.3beta2-build --with-ossp-uuid leads to a warning (snip
from the log, complete compilation steps below):
...
checking ossp/uuid.h usability... no
checking ossp/uuid.h presence... no
checking for ossp/uuid.h... no
checking uuid.h usability... no
checking uuid.h presence... yes
configure: WARNING: uuid.h: present but cannot be compiled
configure: WARNING: uuid.h: check for missing prerequisite headers?
configure: WARNING: uuid.h: see the Autoconf documentation
configure: WARNING: uuid.h: section "Present But Cannot Be Compiled"
configure: WARNING: uuid.h: proceeding with the preprocessor's result
configure: WARNING: uuid.h: in the future, the compiler will take precedence
configure: WARNING: ## ---------------------------------------- ##
configure: WARNING: ## Report this to pgsql-bugs(at)postgresql(dot)org ##
configure: WARNING: ## ---------------------------------------- ##
checking for uuid.h... yes
checking whether byte ordering is bigendian... yes
...
(end snip)

The reason seems to be that ossp-uuid (in /usr/local) and OS X's built-in
uuid (in /usr) get in each others way: ossp-uuid doesn't use the
'/ossp'-directory layout on OS X (perhaps unless you decide to configure a
quite nonstandard ossp-uuid installation), so there is no 'ossp/uuid', hence
ossp-uuid is present, but it is ignored. Using
--with-libraries=/usr/lib/:/usr/local/lib/ (and --with-includes=...
respectively) _or_ --with-libraries=/usr/local/lib/:/usr/lib/: makes no
difference. There may be some tricks to tell PostgreSQL's configure script
to recognize the correct uuid, but that's beyond my skills.

The preferred solution, at least from my limited perspective, would be to
add either/or
-- an environment variable, e.g. UUID_CONFIG (we already have XML2_CONFIG,
for example, and that works pretty well in my case)
-- an option like --with-uuidconfig=DIR or --with-uuid-config=DIR,
comparable to --with-tclconfig=DIR

and let it point to the particular uuid's config-program one wants.
I know that problems like this have been discussed during the last months,
but I suspect that either no solution has materialized so far, or I
represent a 'border case'.

Any comments are appreciated
and thanks for your interest.

Regards

Joerg Beyer

P.S.:
Steps used to compile PostgreSQL 8.3 beta 2:

export XML2_CONFIG=/usr/local/bin/xml2-config
export XSLT_CONFIG=/usr/local/bin/xslt-config ## currently ignored by
configure

./configure --prefix=/Library/PostgreSQL-8.3
--exec-prefix=/Library/PostgreSQL-8.3 --with-pgport=5483
--with-libraries=/usr/local/lib/:/usr/lib/
--with-includes=/usr/local/include/:/usr/include/
--with-system-tzdata=/usr/share/zoneinfo --with-openssl --with-ldap
--with-krb5 --with-pam --with-ldap --with-bonjour --with-readline
--with-libedit-preferred --with-zlib --with-ossp-uuid --with-perl
--with-python --with-tcl --with-tclconfig=/usr/lib --with-libxml
--with-libxslt --disable-nls --disable-integer-datetimes --enable-shared
--enable-rpath --enable-thread-safety --enable-debug --enable-depend
--disable-cassert --disable-dtrace

make
make check
make install ## as superuser

============================================================

Jörg Beyer
PHILIPPS-University Marburg
Dept. of Psychology
Germany

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message James Mansion 2007-11-11 11:55:28 Re: Win32 shared memory speed
Previous Message Dave Page 2007-11-11 09:05:37 Re: 8.2.3: Server crashes on Windows using Eclipse/Junit