problem compiling 6.5 cvs (Linux, gcc 2.7.2, egcs 1.12)

Started by Oleg Bartunovover 26 years ago7 messages
#1Oleg Bartunov
oleg@sai.msu.su

Sereval days I can't compile 6.5 cvs sources under Linux,
I got sporadical errors so I suspected it's compiler/hardware
problem. I'm using egcs 1.12 release.
I moved to another Linux box, download cvs again, used gcc 2.7.2
and still has a problem:

make[2]: Entering directory /usr2/u/postgres/cvs/pgsql/src/backend/postmaster'
gcc -I../../include -I../../backend -O2 -m486 -Wall -Wmissing-prototypes -I.. -c postmaster.c -o postmaster.o
postmaster.c: In function erverLoop':
postmaster.c:665: too few arguments to function ettimeofday'
postmaster.c:704: too few arguments to function ettimeofday'
postmaster.c:663: warning: unused variable z'
postmaster.c: In function oBackend':
postmaster.c:1503: too few arguments to function ettimeofday'
postmaster.c:1456: warning: unused variable z'
make[2]: *** [postmaster.o] Error 1

Has anyone successfully compiled latest cvs sources under Linux or these
problems are just mine ?

Regards,

Oleg

_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83

#2Noname
gjerde@icebox.org
In reply to: Oleg Bartunov (#1)
Re: [HACKERS] problem compiling 6.5 cvs (Linux, gcc 2.7.2, egcs 1.12)

On Tue, 11 May 1999, Oleg Bartunov wrote:

Sereval days I can't compile 6.5 cvs sources under Linux,
I got sporadical errors so I suspected it's compiler/hardware
problem. I'm using egcs 1.12 release.

I have had no problems with redhat 5.2(gcc 2.7.2.3, glibc 2.0)
But with redhat 6.0(egcs 1.1.2, glibc 2.1) I'm having one problem.
psql doesn't compile :)
psql.c:152: initializer element is not constant
which is
static FILE * cur_cmd_source = stdin;

I don't believe I have ever seen that error, and I don't know why it has
problems with that line.

Other than that it works great here.

Ole Gjerde

#3Noname
gjerde@icebox.org
In reply to: Noname (#2)
Re: [HACKERS] problem compiling 6.5 cvs (Linux, gcc 2.7.2, egcs 1.12)

On Tue, 11 May 1999, Oleg Bartunov wrote:

Something is weird for me. After posting my problems with compiling 6.5 cvs
I compiled the same cvs source at home using egcs-1.12 release.
Everything was ok and regression tests passed as usual with some of
them failed (int2,int4, triggers etc). At home I run Linux 2.2.7 while at
work I use Linux 2.0.36. Could this be a problem ?

Shouldn't be. However, have been using 2.2.x for a while, so I'm not
sure. It unlikely tho, since I'm sure many people are still running
2.0.36..

Are you sure /usr/include/linux is a symlink to
/usr/src/linux/include/linux?

What glibc version are you running and when did you update your CVS
source last?

----
I did find a solution to the psql.c compiling problem with glibc 2.1.

If you change the
static FILE * cur_cmd_source = stdin;
to
static FILE * cur_cmd_source;

and then add
cur_cmd_source = stdin;
to main() it seems to both compile and work fine. Maybe I'm too tired to
figure out that static is making a difference in this case :)

Ole Gjerde

#4Oleg Bartunov
oleg@sai.msu.su
In reply to: Noname (#2)
Re: [HACKERS] problem compiling 6.5 cvs (Linux, gcc 2.7.2, egcs 1.12)

Something is weird for me. After posting my problems with compiling 6.5 cvs
I compiled the same cvs source at home using egcs-1.12 release.
Everything was ok and regression tests passed as usual with some of
them failed (int2,int4, triggers etc). At home I run Linux 2.2.7 while at
work I use Linux 2.0.36. Could this be a problem ?

Regards,

Oleg

On Tue, 11 May 1999 gjerde@icebox.org wrote:

Date: Tue, 11 May 1999 04:24:50 -0500 (CDT)
From: gjerde@icebox.org
To: Oleg Bartunov <oleg@sai.msu.su>
Cc: pgsql-hackers@postgresql.org
Subject: Re: [HACKERS] problem compiling 6.5 cvs (Linux, gcc 2.7.2, egcs 1.12)

On Tue, 11 May 1999, Oleg Bartunov wrote:

Sereval days I can't compile 6.5 cvs sources under Linux,
I got sporadical errors so I suspected it's compiler/hardware
problem. I'm using egcs 1.12 release.

I have had no problems with redhat 5.2(gcc 2.7.2.3, glibc 2.0)
But with redhat 6.0(egcs 1.1.2, glibc 2.1) I'm having one problem.
psql doesn't compile :)
psql.c:152: initializer element is not constant
which is
static FILE * cur_cmd_source = stdin;

I don't believe I have ever seen that error, and I don't know why it has
problems with that line.

Other than that it works great here.

Ole Gjerde

_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Oleg Bartunov (#1)
Re: [HACKERS] problem compiling 6.5 cvs (Linux, gcc 2.7.2, egcs 1.12)

gjerde@icebox.org writes:

But with redhat 6.0(egcs 1.1.2, glibc 2.1) I'm having one problem.
psql doesn't compile :)
psql.c:152: initializer element is not constant
which is
static FILE * cur_cmd_source = stdin;

I don't believe I have ever seen that error, and I don't know why it has
problems with that line.

You have a broken compiler IMHO --- on any reasonable system, stdin
should be a load-time constant address, and load-time constants are
required by the standard to be acceptable initializers for statics.
Either stdin is defined in a very peculiar way, or the compiler is
incapable of handling non-compile-time-constant initializers. In
either case it's gonna fail on a lot more things than just Postgres.

However, it's easy enough to work around it (as you noted in your
followup). I'll commit the change.

Re Oleg's original complaint: I'm not seeing any problem with a
CVS fileset that I pulled afresh on Saturday morning. I think
he somehow got a corrupted copy...

regards, tom lane

#6Oleg Bartunov
oleg@sai.msu.su
In reply to: Tom Lane (#5)
Re: [HACKERS] problem compiling 6.5 cvs (Linux, gcc 2.7.2, egcs 1.12)

On Tue, 11 May 1999, Tom Lane wrote:

Date: Tue, 11 May 1999 10:35:55 -0400
From: Tom Lane <tgl@sss.pgh.pa.us>
To: gjerde@icebox.org
Cc: Oleg Bartunov <oleg@sai.msu.su>, pgsql-hackers@postgreSQL.org
Subject: Re: [HACKERS] problem compiling 6.5 cvs (Linux, gcc 2.7.2, egcs 1.12)

gjerde@icebox.org writes:

But with redhat 6.0(egcs 1.1.2, glibc 2.1) I'm having one problem.
psql doesn't compile :)
psql.c:152: initializer element is not constant
which is
static FILE * cur_cmd_source = stdin;

I don't believe I have ever seen that error, and I don't know why it has
problems with that line.

You have a broken compiler IMHO --- on any reasonable system, stdin
should be a load-time constant address, and load-time constants are
required by the standard to be acceptable initializers for statics.
Either stdin is defined in a very peculiar way, or the compiler is
incapable of handling non-compile-time-constant initializers. In
either case it's gonna fail on a lot more things than just Postgres.

However, it's easy enough to work around it (as you noted in your
followup). I'll commit the change.

I have no problem with that specific case, but I had a problem
with compiling latest cvs which arises from wrong configure suggestion -
I had to make change in config.h
#define HAVE_GETTIMEOFDAY_2_ARGS 1
to compile cvs sources. This happens only recently because
I've never seen this problem.

Re Oleg's original complaint: I'm not seeing any problem with a
CVS fileset that I pulled afresh on Saturday morning. I think
he somehow got a corrupted copy...

I too, at home :-) At work I still have sporadical errors in compiling
on one of my machine (Linux 2.0.36, libc5 5.0.46, egcs 1.12 -release).
On another machine (Linux 2.0.36, gcc 2.7.2.3, ibc5 5.0.46) after
trivial change in config.h (see above) I got fully workable postgres :-)
All sources were identical. I did resync of cvs. So, actually
I have weird problem only on one machine and I'll see what were changed
in my setup.

regards, tom lane

_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83

#7Tom Lane
tgl@sss.pgh.pa.us
In reply to: Oleg Bartunov (#6)
Re: [HACKERS] problem compiling 6.5 cvs (Linux, gcc 2.7.2, egcs 1.12)

Oleg Bartunov <oleg@sai.msu.su> writes:

I have no problem with that specific case, but I had a problem
with compiling latest cvs which arises from wrong configure suggestion -
I had to make change in config.h
#define HAVE_GETTIMEOFDAY_2_ARGS 1
to compile cvs sources. This happens only recently because
I've never seen this problem.

Hmm, that's annoying isn't it? Would you please look at configure.in
and see if you can find out why it's making the wrong guess on your
system?

regards, tom lane