Thread: budiling postgresql-8.0.1 on Linux with GCC 4

budiling postgresql-8.0.1 on Linux with GCC 4

From
Gianni Mariani
Date:
I had some interesting issues come up, I'm not sure they're related to
GCC 4, but that's the only thing that I can thing of.

Firstly, the gcc version is :
gcc (GCC) 4.0.0 20050130 (experimental)

1. While running ./configure, it failed on not being able to detect the
type of parameters to accept().  It turns out that the second parameter
to accept() is __SOCKADDR_ARG, which is not one of the options in
ac_func_accept_argtypes.m4. Adding __SOCKADDR_ARG to :

for ac_cv_func_accept_arg2 in 'struct sockaddr *' 'const struct sockaddr
*' 'void *'; do

like so

for ac_cv_func_accept_arg2 in '__SOCKADDR_ARG' 'struct sockaddr *'
'const struct sockaddr *' 'void *'; do

corrected the issue.

2. The compile ran successfully, however there were a number of warnings
like:


rtget.c:99: warning: left-hand operand of comma expression has no effect

They all seem related to :
     PageGetItem(page, iid);

Is this an issue ?



Re: budiling postgresql-8.0.1 on Linux with GCC 4

From
Tom Lane
Date:
Gianni Mariani <gianni@mariani.ws> writes:
> Firstly, the gcc version is :
> gcc (GCC) 4.0.0 20050130 (experimental)

> 1. While running ./configure, it failed on not being able to detect the
> type of parameters to accept().

You probably need a newer gcc4.  I know that PG 8.0.1 builds in Red Hat
rawhide, with a fairly recent gcc4 ... and I also know that there were
bugs of this general ilk in gcc4 as recently as early March, because I
hit some.
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=149098

> rtget.c:99: warning: left-hand operand of comma expression has no effect

> They all seem related to :
>      PageGetItem(page, iid);

> Is this an issue ?

If you compiled without --enable-cassert I'd not worry too much ... it's
probably just being overly noisy about AssertMacro.

            regards, tom lane