Re: Autoconf, libpq and replacement function

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Peter Eisentraut <peter_e(at)gmx(dot)net>, PG Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Autoconf, libpq and replacement function
Date: 2008-11-20 21:20:11
Message-ID: 4925D48B.3000806@hagander.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Tom Lane wrote:
> Magnus Hagander <magnus(at)hagander(dot)net> writes:
>> Tom Lane wrote:
>>> Not really. I'd suggest making the callers do something like
>>>
>>> #ifdef HAVE_FNMATCH
>>> #include <fnmatch.h>
>>> #else
>>> #include "port/pg_fnmatch.h"
>>> #endif
>
>> How's that actually different from the
>> #ifdef HAVE_FNMATCH
>> #include <fnmatch.h> <-- happens in fe-secure.c
>> #else
>> #define .... <-- happens in port.h
>> #endif
>
> What's bothering me is that port.h gets included *everywhere*, and
> might perhaps conflict with some indirect or accidental inclusion
> of <fnmatch.h>.
>
> It would also allow someone to forget the
> #ifdef HAVE_FNMATCH
> #include <fnmatch.h>
> #endif
> part and have it still work, if they were testing on a broken platform.
> It's better that both inclusions appear together instead of having the
> alternative code paths effectively appear in two unrelated files.

Ok, I see your argument now.

AFAICS, we're not doing this for any other functions though - or am I
too tired and just looking in the wrong place? Or is that because
they're just function definitions and not #defines?

(I want to be sure to stick whatever new file there is in the same place..)

//Magnus

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Magnus Hagander 2008-11-20 21:26:02 Re: Re: [COMMITTERS] pgsql: Silence compiler warning about ignored return value.
Previous Message Tom Lane 2008-11-20 21:15:59 Re: Autoconf, libpq and replacement function