Thread: CVS HEAD compile failure on Freebsd 4.9

CVS HEAD compile failure on Freebsd 4.9

From
Mark Kirkwood
Date:
Fresh checkout of CVS HEAD yesterday, updated today :

$ ./configure --prefix=/usr/local/pgsql/7.5
$ make
gmake[4]: Entering directory 
`/usr/home/postgres/develop/c/pgsql/src/backend/access/nbtree'
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes 
-Wmissing-declarations -I../../../../src/include   -c -o nbtree.o nbtree.c
nbtree.c: In function `btbulkdelete':
nbtree.c:600: storage size of `_delay' isn't known
nbtree.c:600: warning: implicit declaration of function `select'
nbtree.c:600: warning: unused variable `_delay'
nbtree.c:602: storage size of `_delay' isn't known
nbtree.c:602: warning: unused variable `_delay'
gmake[4]: *** [nbtree.o] Error 1
gmake[4]: Leaving directory 
`/usr/home/postgres/develop/c/pgsql/src/backend/access/nbtree'
gmake[3]: *** [nbtree-recursive] Error 2
gmake[3]: Leaving directory 
`/usr/home/postgres/develop/c/pgsql/src/backend/access'
gmake[2]: *** [access-recursive] Error 2
gmake[2]: Leaving directory `/usr/home/postgres/develop/c/pgsql/src/backend'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/usr/home/postgres/develop/c/pgsql/src'
gmake: *** [all] Error 2
*** Error code 2

$ uname -a
FreeBSD spiney 4.9-RELEASE FreeBSD 4.9-RELEASE #3

kernel customizations : i686 (i.e 386->586 de-selected for kernel build)



Re: CVS HEAD compile failure on Freebsd 4.9

From
Vsevolod Lobko
Date:
Yes, here too...

There are no headers included for struct timeval and function select 
in miscadmin.h

adding #include fixes the problem on freebsd, but I'm sure it's not 
a portable solution...

Index: miscadmin.h
===================================================================
RCS file: /home/src/pgsql/repo/pgsql-server/src/include/miscadmin.h,v
retrieving revision 1.152
diff -c -r1.152 miscadmin.h
*** miscadmin.h    8 Feb 2004 22:28:57 -0000    1.152
--- miscadmin.h    9 Feb 2004 21:21:37 -0000
***************
*** 60,65 ****
--- 60,69 ----  *  *****************************************************************************/ 
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include <sys/select.h>
+  /* in globals.c */ /* these are marked volatile because they are set by signal handlers: */ extern DLLIMPORT
volatilebool InterruptPending;
 


On Mon, Feb 09, 2004 at 04:52:54PM +1300, Mark Kirkwood wrote:
> Fresh checkout of CVS HEAD yesterday, updated today :
> 
> $ ./configure --prefix=/usr/local/pgsql/7.5
> $ make
> gmake[4]: Entering directory 
> `/usr/home/postgres/develop/c/pgsql/src/backend/access/nbtree'
> gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes 
> -Wmissing-declarations -I../../../../src/include   -c -o nbtree.o nbtree.c
> nbtree.c: In function `btbulkdelete':
> nbtree.c:600: storage size of `_delay' isn't known
> nbtree.c:600: warning: implicit declaration of function `select'
> nbtree.c:600: warning: unused variable `_delay'
> nbtree.c:602: storage size of `_delay' isn't known
> nbtree.c:602: warning: unused variable `_delay'
> gmake[4]: *** [nbtree.o] Error 1
> gmake[4]: Leaving directory 
> `/usr/home/postgres/develop/c/pgsql/src/backend/access/nbtree'
> gmake[3]: *** [nbtree-recursive] Error 2
> gmake[3]: Leaving directory 
> `/usr/home/postgres/develop/c/pgsql/src/backend/access'
> gmake[2]: *** [access-recursive] Error 2
> gmake[2]: Leaving directory `/usr/home/postgres/develop/c/pgsql/src/backend'
> gmake[1]: *** [all] Error 2
> gmake[1]: Leaving directory `/usr/home/postgres/develop/c/pgsql/src'
> gmake: *** [all] Error 2
> *** Error code 2
> 
> $ uname -a
> FreeBSD spiney 4.9-RELEASE FreeBSD 4.9-RELEASE #3
> 
> kernel customizations : i686 (i.e 386->586 de-selected for kernel build)
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
> 


Re: CVS HEAD compile failure on Freebsd 4.9

From
Tom Lane
Date:
Vsevolod Lobko <seva@sevasoft.kiev.ua> writes:
> Yes, here too...
> There are no headers included for struct timeval and function select 
> in miscadmin.h

Certain parties who shall remain nameless have been gratuitously
scattering dependencies on select() into lots of modules that don't
need them.  (When you are about to call the kernel to implement a
multi-millisecond delay, there is no value in saving a nanosecond
by inlining the code for it...)  I plan to fix that later tonight
if no one beats me to it.
        regards, tom lane


Re: CVS HEAD compile failure on Freebsd 4.9

From
Bruce Momjian
Date:
Tom Lane wrote:
> Vsevolod Lobko <seva@sevasoft.kiev.ua> writes:
> > Yes, here too...
> > There are no headers included for struct timeval and function select 
> > in miscadmin.h
> 
> Certain parties who shall remain nameless have been gratuitously
> scattering dependencies on select() into lots of modules that don't
> need them.  (When you are about to call the kernel to implement a
> multi-millisecond delay, there is no value in saving a nanosecond
> by inlining the code for it...)  I plan to fix that later tonight
> if no one beats me to it.

The scattering isn't actually from Win32, which is where I thought it
came from.  It is from the PG_DELAY call that was added with:revision 1.137date: 2003/11/13 14:57:15;  author: wieck;
state:Exp;  lines: +8 -12nd try for the ARC strategy.I added a couple more Assertions while tracking down the
exactcauseof the former bug.All 93 regression tests pass now.Jan
 

What Win32 has done is to centralize all delay calls around that
function, now renamed PG_USLEEP/PG_MSLEEP.  I was going to add the
missing includes but if you want to centralize it, I think that makes
more sense.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


Re: CVS HEAD compile failure on Freebsd 4.9

From
Tom Lane
Date:
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> What Win32 has done is to centralize all delay calls around that
> function, now renamed PG_USLEEP/PG_MSLEEP.  I was going to add the
> missing includes but if you want to centralize it, I think that makes
> more sense.

Yeah, I'm planning to add a "pgsleep" module in src/port.  Might as well
do it right.
        regards, tom lane


Re: CVS HEAD compile failure on Freebsd 4.9

From
Bruce Momjian
Date:
Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > What Win32 has done is to centralize all delay calls around that
> > function, now renamed PG_USLEEP/PG_MSLEEP.  I was going to add the
> > missing includes but if you want to centralize it, I think that makes
> > more sense.
> 
> Yeah, I'm planning to add a "pgsleep" module in src/port.  Might as well
> do it right.

Agreed.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


Re: CVS HEAD compile failure on Freebsd 4.9

From
Mark Kirkwood
Date:
Just updated now. compiles. fast fix :-)

Tom Lane wrote:

>
> I plan to fix that later tonight
>if no one beats me to it.
>
>            regards, tom lane
>
>  
>