[EMAIL PROTECTED] (Alvaro Herrera) writes:

> Chris Browne wrote:
>
>> If I use:
>>   AC_CHECK_HEADER(utils/snapmgr.h, HAVE_SNAPMGR=1)
>> 
>> this turns out to fail.  Apparently autoconf wants to compile the
>> #include file to validate that it's an OK #include file.
>> 
>> GCC barfs on it, thus:
>> 
>> [EMAIL PROTECTED]:~/Slony-I/CMD/slony1-HEAD> gcc 
>> -I/opt/OXRS/dbs/pgsql84-beta/include/server 
>> /opt/OXRS/dbs/pgsql84-beta/include/server/utils/snapmgr.h
>> In file included from 
>> /opt/OXRS/dbs/pgsql84-beta/include/server/storage/itemptr.h:17,
>>                  from 
>> /opt/OXRS/dbs/pgsql84-beta/include/server/access/htup.h:17,
>>                  from 
>> /opt/OXRS/dbs/pgsql84-beta/include/server/utils/snapshot.h:16,
>>                  from 
>> /opt/OXRS/dbs/pgsql84-beta/include/server/utils/tqual.h:18,
>>                  from 
>> /opt/OXRS/dbs/pgsql84-beta/include/server/utils/snapmgr.h:16:
>
>
> Hmm.  It works for me if I forcefully include postgres.h:
>
> gcc -I/pgsql/install/00head/include/server -include postgres.h 
> /pgsql/install/00head/include/server/utils/snapmgr.h 
>
> Our header file rule says that a header must include any header it needs
> to compile, but never include postgres.h, which must be the first
> include in all the .c files.
>
> So I'm not sure the fix for this.
>
> What does Slony-I need snapmgr.h for, anyway?  This code is in a state
> of a flux right now -- there are pending patches which are likely to
> change the horizon a bit.  Perhaps it does not make sense for Slony to
> adjust to a state that's expected to be short-lived.

Well, one of the Sun guys observed this...
http://www.slony.info/bugzilla/show_bug.cgi?id=46

And I was trying to build against CVS HEAD (for both projects ;-)) and
observed it:

[EMAIL PROTECTED]:CMD/slony1-HEAD/src/backend> make
gcc -g -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -I../.. -fpic 
-I/opt/OXRS/dbs/pgsql84-beta/include/ 
-I/opt/OXRS/dbs/pgsql84-beta/include/server/  -c -o slony1_funcs.o 
slony1_funcs.c
slony1_funcs.c: In function '_Slony_I_createEvent':
slony1_funcs.c:142: error: 'SerializableSnapshot' undeclared (first use in this 
function)
slony1_funcs.c:142: error: (Each undeclared identifier is reported only once
slony1_funcs.c:142: error: for each function it appears in.)

The definition for SerializableSnapshot has moved from
server/utils/tqual.h to server/utils/snapmgr.h

I agree that the code seems in flux; it seems quite likely that there
will be further changes between now and release of 8.4.  That being
said, it's useful to observe these problems *early*, and have
workarounds, so that we can validate that Slony-I is generally
compatible with 8.4 throughout its development cycle.

As a workaround, for now, I'll see if Tom's counsel on this works out
well; I expect so.

The point of the exercise wasn't so much to ask "How do I work around
this?" as it was to point out that there's *something* up with the
header file, in that the autoconf AC_CHECK_HEADER function barfs on
it.

*THAT* (the fact that AC_CHECK_HEADER breaks) appears to be a bad
thing, irrespective of any Slony-I issues.
-- 
let name="cbbrowne" and tld="linuxdatabases.info" in name ^ "@" ^ tld;;
http://linuxdatabases.info/info/x.html
Signs of   a Klingon Programmer -   1.  "Defensive  programming? Never!
Klingon programs are always on the offense. Yes, offensive programming
is what we do best."

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to