Thread: postgresql HEAD build failure

postgresql HEAD build failure

From
John Summerfield
Date:
I have, for some months, been running this daily, but not taking notice
of the results:
[pgtest@numbat ~]$ cat bin/pg_build
#!/bin/bash
set -xe
cd /home/pgtest/pgsql/pgsql-2007-04-23/
ping -c4 2>/dev/null anoncvs.postgresql.org | grep -q 'bytes from'\
&& {
make distclean || :
cvs -q update
./configure --prefix=${HOME}//postgres --with-pgport=5433 --with
-pam --with-openssl \
--enable-depend \
--with-gnu-ld --with-python --with-perl
}
time make -j3 -s && time make -j3 -s install
[pgtest@numbat ~]$

It fails thus:
config.status: linking ./src/makefiles/Makefile.linux to src/Makefile.port
+ make -j3 -s
tsearchcmds.c:38:30: error: tsearch/ts_cache.h: No such file or directory
tsearchcmds.c:39:31: error: tsearch/ts_public.h: No such file or directory
tsearchcmds.c:40:30: error: tsearch/ts_utils.h: No such file or directory
tsearchcmds.c: In function ‘getTokenTypes’:
tsearchcmds.c:1676: error: ‘TSParserCacheEntry’ undeclared (first use in
this function)
tsearchcmds.c:1676: error: (Each undeclared identifier is reported only once
tsearchcmds.c:1676: error: for each function it appears in.)
tsearchcmds.c:1676: error: ‘prs’ undeclared (first use in this function)
tsearchcmds.c:1676: warning: implicit declaration of function
‘lookup_ts_parser_cache’
tsearchcmds.c:1677: error: ‘LexDescr’ undeclared (first use in this
function)
tsearchcmds.c:1677: error: ‘list’ undeclared (first use in this function)
tsearchcmds.c:1678: warning: ISO C90 forbids mixed declarations and code
tsearchcmds.c:1693: error: expected expression before ‘)’ token
tsearchcmds.c: In function ‘serialize_deflist’:
tsearchcmds.c:2002: warning: implicit declaration of function
‘CStringGetTextP’
tsearchcmds.c:2002: warning: assignment makes pointer from integer
without a cast
tsearchcmds.c: In function ‘deserialize_deflist’:
tsearchcmds.c:2098: warning: implicit declaration of function
‘TextPGetCString’
tsearchcmds.c:2098: warning: format ‘%s’ expects type ‘char *’, but
argument 2 has type ‘int’
tsearchcmds.c:2209: warning: format ‘%s’ expects type ‘char *’, but
argument 2 has type ‘int’
make[3]: *** [tsearchcmds.o] Error 1
make[2]: *** [commands-recursive] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [all] Error 2
make: *** [all] Error 2

My most recent successful build:
-rwxr-xr-x 1 pgtest 1008 39322 Jun 18 07:52 postgres/bin/createdb
-rwxr-xr-x 1 pgtest 1008 39233 Jun 18 07:52 postgres/bin/clusterdb


This would be about when I switched my desktop to:
[pgtest@numbat ~]$ rpm -qif /etc/redhat-release
Name : sl-release Relocations: (not relocatable)
Version : 5.0 Vendor: Scientific Linux
Release : 4 Build Date: Sat 21 Apr 2007 12:37:20 AM WST
Install Date: Fri 15 Jun 2007 10:37:03 AM WST Build Host: norob.fnal.gov
Group : System Environment/Base Source RPM: sl-release-5.0-4.src.rpm
Size : 57652 License: GPL
Signature : DSA/SHA1, Sat 21 Apr 2007 12:37:32 AM WST, Key ID
da6ad00882fd17b2
Summary : Scientific Linux release file
Description :
Scientific Linux release files
[pgtest@numbat ~]$

SL5 is a clone (like CentOS) of RHEL5.

My guess is that this version of gcc implements new rules:
[pgtest@numbat ~]$ gcc --version
gcc (GCC) 4.1.1 20070105 (Red Hat 4.1.1-52)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[pgtest@numbat ~]$

Please don't reply off-list.

Should I report this as a bug?
-- 

Cheers
John Summerfield





Re: postgresql HEAD build failure

From
Alvaro Herrera
Date:
John Summerfield wrote:
> I have, for some months, been running this daily, but not taking notice
> of the results:
> [pgtest@numbat ~]$ cat bin/pg_build
> #!/bin/bash
> set -xe
> cd /home/pgtest/pgsql/pgsql-2007-04-23/
> ping -c4 2>/dev/null anoncvs.postgresql.org | grep -q 'bytes from'\
> && {
> make distclean || :
> cvs -q update
> ./configure --prefix=${HOME}//postgres --with-pgport=5433 --with
> -pam --with-openssl \
> --enable-depend \
> --with-gnu-ld --with-python --with-perl
> }
> time make -j3 -s && time make -j3 -s install
> [pgtest@numbat ~]$
>
> It fails thus:
> config.status: linking ./src/makefiles/Makefile.linux to src/Makefile.port
> + make -j3 -s
> tsearchcmds.c:38:30: error: tsearch/ts_cache.h: No such file or directory
> tsearchcmds.c:39:31: error: tsearch/ts_public.h: No such file or directory
> tsearchcmds.c:40:30: error: tsearch/ts_utils.h: No such file or directory

Hmm, try deleting the build tree and start again.  Sometimes, what
happens to me is that somebody adds a new directory, and my build tree
does not contain it.  It's easy to fix: when I had a slower computer
what I did was create the offending directory and symlink the makefile.
Nowadays I just wipe the whole thing and let the build directory be
constructed again by configure.  That gets things in sync.

Now that I look closer, however, this was always with source dirs, not
include dirs.  I think the problem here is that you're not passing -d to
"cvs update".

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.


Re: postgresql HEAD build failure

From
John Summerfield
Date:
Alvaro Herrera wrote:
> John Summerfield wrote:
>> I have, for some months, been running this daily, but not taking notice
>> of the results:
>> [pgtest@numbat ~]$ cat bin/pg_build
>> #!/bin/bash
>> set -xe
>> cd /home/pgtest/pgsql/pgsql-2007-04-23/
>> ping -c4 2>/dev/null anoncvs.postgresql.org | grep -q 'bytes from'\
>> && {
>> make distclean || :
>> cvs -q update
>> ./configure --prefix=${HOME}//postgres --with-pgport=5433 --with
>> -pam --with-openssl \
>> --enable-depend \
>> --with-gnu-ld --with-python --with-perl
>> }
>> time make -j3 -s && time make -j3 -s install
>> [pgtest@numbat ~]$
>>
>> It fails thus:
>> config.status: linking ./src/makefiles/Makefile.linux to src/Makefile.port
>> + make -j3 -s
>> tsearchcmds.c:38:30: error: tsearch/ts_cache.h: No such file or directory
>> tsearchcmds.c:39:31: error: tsearch/ts_public.h: No such file or directory
>> tsearchcmds.c:40:30: error: tsearch/ts_utils.h: No such file or directory
> 
> Hmm, try deleting the build tree and start again.  Sometimes, what
> happens to me is that somebody adds a new directory, and my build tree
> does not contain it.  It's easy to fix: when I had a slower computer
> what I did was create the offending directory and symlink the makefile.
> Nowadays I just wipe the whole thing and let the build directory be
> constructed again by configure.  That gets things in sync.

that, I think, subverts the purpose of cvs and other SCMTs, but...
> 
> Now that I look closer, however, this was always with source dirs, not
> include dirs.  I think the problem here is that you're not passing -d to
> "cvs update".
> 
-d fixed the missing directories
and -P prunes obsolete ones.

Obviously I needed to read the instructions more closely:-(


And the timing of my upgrade was just a coincidence. It happens.

Thanks for your help.





Re: postgresql HEAD build failure

From
Alvaro Herrera
Date:
John Summerfield wrote:
> Alvaro Herrera wrote:

>> Hmm, try deleting the build tree and start again.  Sometimes, what
>> happens to me is that somebody adds a new directory, and my build tree
>> does not contain it.  It's easy to fix: when I had a slower computer
>> what I did was create the offending directory and symlink the makefile.
>> Nowadays I just wipe the whole thing and let the build directory be
>> constructed again by configure.  That gets things in sync.
>
> that, I think, subverts the purpose of cvs and other SCMTs, but...

No, it doesn't.  Note that I suggested only deleting the *build* dir,
not the source dir.  I use VPATH builds -- I never delete my source
dirs.

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.


Re: postgresql HEAD build failure

From
Tom Lane
Date:
John Summerfield <postgres@herakles.homelinux.org> writes:
> -d fixed the missing directories
> and -P prunes obsolete ones.

> Obviously I needed to read the instructions more closely:-(

FWIW, I've used the following ~/.cvsrc for many years:

cvs -z3
update -d -P
checkout -P

The usefulness of -z3 depends on the speed of your connection, but
the other two lines fix obviously stupid defaults ...
        regards, tom lane


Re: postgresql HEAD build failure

From
Erik Jones
Date:
On Sep 9, 2007, at 9:51 PM, Tom Lane wrote:

> John Summerfield <postgres@herakles.homelinux.org> writes:
>> -d fixed the missing directories
>> and -P prunes obsolete ones.
>
>> Obviously I needed to read the instructions more closely:-(
>
> FWIW, I've used the following ~/.cvsrc for many years:
>
> cvs -z3
> update -d -P
> checkout -P
>
> The usefulness of -z3 depends on the speed of your connection, but
> the other two lines fix obviously stupid defaults ...
>
>             regards, tom lane

Heh, most of the people I know who use Subversion made the switch
just because of the need for those two lines.  (Of course, repository-
wide versioning another common reason.)

Erik Jones

Software Developer | Emma®
erik@myemma.com
800.595.4401 or 615.292.5888
615.292.0777 (fax)

Emma helps organizations everywhere communicate & market in style.
Visit us online at http://www.myemma.com