Thread: problem while compiling user c functions in 7.1beta4

problem while compiling user c functions in 7.1beta4

From
hubert depesz lubaczewski
Date:
hi,
i have functin which did compile on 7.0.3 and 7.1beta1, and now it doesn't.
it includes were:

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <postgres.h>

since in 7.1beta4 there is no postgres.h i changed this to:

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <c.h>

all i need this for is to have type declarations, and postgresql versions of
malloc, realloc and free - i.e. i dont use spi.

when compiling i get this errors:
gcc -O2 -Wall -ansi -I "/home/users/pgdba/work/include/postgresql/" -c dfti.c
-fpic
In file included from dfti.c:4:
/home/users/pgdba/work/include/postgresql/c.h:312: parse error before `regproc'
/home/users/pgdba/work/include/postgresql/c.h:312: warning: type defaults to `int' in declaration of `regproc'
/home/users/pgdba/work/include/postgresql/c.h:312: warning: data definition has no type or storage class
/home/users/pgdba/work/include/postgresql/c.h:313: parse error before `RegProcedure'
/home/users/pgdba/work/include/postgresql/c.h:313: warning: type defaults to `int' in declaration of `RegProcedure'
/home/users/pgdba/work/include/postgresql/c.h:313: warning: data definition has no type or storage class
/home/users/pgdba/work/include/postgresql/c.h:364: parse error before `oidvector'
/home/users/pgdba/work/include/postgresql/c.h:364: warning: type defaults to `int' in declaration of `oidvector'
/home/users/pgdba/work/include/postgresql/c.h:364: warning: data definition has no type or storage class
/home/users/pgdba/work/include/postgresql/c.h:373: `NAMEDATALEN' undeclared here (not in a function)
dfti.c: In function `empty_text':
dfti.c:16: warning: implicit declaration of function `palloc'
dfti.c: In function `dfti_prepare':
dfti.c:37: warning: implicit declaration of function `elog'
dfti.c:37: `ERROR' undeclared (first use in this function)
dfti.c:37: (Each undeclared identifier is reported only once
dfti.c:37: for each function it appears in.)
dfti.c:84: warning: implicit declaration of function `repalloc'
dfti.c:86: warning: implicit declaration of function `pfree'

my knowledge of c is extremly limited, so i can't work on those errors.
my postgresql is build from cvs snapshot taken 21th of february 11:23.

can anyone help me with this?

depesz

p.s. i'm not posting the whole function code since it's ugly, long and it *did*
work (without warnings) with previous persions.

--
hubert depesz lubaczewski                          http://www.depesz.pl/
------------------------------------------------------------------------
     najwspanialszą rzeczą jaką dało nam nowoczesne społeczeństwo,
      jest niesamowita wręcz łatwość unikania kontaktów z nim ...

Re: problem while compiling user c functions in 7.1beta4

From
Christopher Sawtell
Date:
On Thu, 22 Feb 2001 20:28, hubert depesz lubaczewski wrote:

> since in 7.1beta4 there is no postgres.h i changed this to:

I did a cvsup update about 12 hours ago and look:-

22:05:23 chris@berty:/usr/src/cvs/pgsql $ find . -name postgres.h
./src/include/postgres.h
22:16:22 chris@berty:/usr/src/cvs/pgsql $

--
Sincerely etc.,

 NAME       Christopher Sawtell
 CELL PHONE 021 257 4451
 ICQ UIN    45863470
 EMAIL      csawtell @ xtra . co . nz
 CNOTES     ftp://ftp.funet.fi/pub/languages/C/tutorials/sawtell_C.tar.gz

 -->> Please refrain from using HTML or WORD attachments in e-mails to me
<<--


Re: problem while compiling user c functions in 7.1beta4

From
hubert depesz lubaczewski
Date:
On Thu, Feb 22, 2001 at 10:21:12PM +1300, Christopher Sawtell wrote:
> I did a cvsup update about 12 hours ago and look:-
> 22:05:23 chris@berty:/usr/src/cvs/pgsql $ find . -name postgres.h
> ./src/include/postgres.h
> 22:16:22 chris@berty:/usr/src/cvs/pgsql $

sorry. my fault. i was wrong because the files were not installed in working
directory. strange. error in makefile's?

depesz

--
hubert depesz lubaczewski                          http://www.depesz.pl/
------------------------------------------------------------------------
     najwspanialszą rzeczą jaką dało nam nowoczesne społeczeństwo,
      jest niesamowita wręcz łatwość unikania kontaktów z nim ...

Re: problem while compiling user c functions in 7.1beta4

From
Christopher Sawtell
Date:
On Thu, 22 Feb 2001 22:39, hubert depesz lubaczewski wrote:
> On Thu, Feb 22, 2001 at 10:21:12PM +1300, Christopher Sawtell wrote:
> > I did a cvsup update about 12 hours ago and look:-
> > 22:05:23 chris@berty:/usr/src/cvs/pgsql $ find . -name postgres.h
> > ./src/include/postgres.h
> > 22:16:22 chris@berty:/usr/src/cvs/pgsql $
>
> sorry. my fault. i was wrong because the files were not installed in
> working directory. strange. error in makefile's?

Very strange indeed.

I have found that using cvsup is a very reliable way to keep the code
in order. In my experience postgresql is of ultra-superior quality and
everything just makes "out of the box".

--
Sincerely etc.,

 NAME       Christopher Sawtell
 CELL PHONE 021 257 4451
 ICQ UIN    45863470
 EMAIL      csawtell @ xtra . co . nz
 CNOTES     ftp://ftp.funet.fi/pub/languages/C/tutorials/sawtell_C.tar.gz

 -->> Please refrain from using HTML or WORD attachments in e-mails to me
<<--


Re: problem while compiling user c functions in 7.1beta4

From
hubert depesz lubaczewski
Date:
On Thu, Feb 22, 2001 at 11:24:48PM +1300, Christopher Sawtell wrote:
> Very strange indeed.
> I have found that using cvsup is a very reliable way to keep the code
> in order. In my experience postgresql is of ultra-superior quality and
> everything just makes "out of the box".

i had the same problems in past too. i'm usings cvs -z9 update, and ...
everything builds great. works out of the box, just some files in include
directory are missing.

depesz

--
hubert depesz lubaczewski                          http://www.depesz.pl/
------------------------------------------------------------------------
     najwspanialszą rzeczą jaką dało nam nowoczesne społeczeństwo,
      jest niesamowita wręcz łatwość unikania kontaktów z nim ...

Re: problem while compiling user c functions in 7.1beta4

From
Tom Lane
Date:
hubert depesz lubaczewski <depesz@depesz.pl> writes:
> sorry. my fault. i was wrong because the files were not installed in working
> directory. strange. error in makefile's?

No, an extremely deliberate change, which was discussed at length in the
mailing lists.  The default install now installs only client-side header
files, no server-side files.  If you want to compile server-side code,
either point your -I path at pgsql/src/include or do "make
install-all-headers".

            regards, tom lane