postgresql-8.0.0 beta5 & postgresql-7.4.6 can't compile successfully in Solaris 10 x86
Hi,
I tried to build postgresql-8.0.0beta5 and postgresql-7.4.6 on Solaris
10 x86 following the instruction by doing:
1. ./configure
2. gmake
When I implemented the step 2. I got the following error messages:
-----------
/usr/local/bin/gcc -O2 -pipe -fno-strict-aliasing -Wall
-Wmissing-prototypes -Wm
issing-declarations -I../../../../src/include -c -o xlog.o xlog.c
In file included from /usr/include/sys/signal.h:35,
from /usr/include/signal.h:27,
from xlog.c:18:
/usr/include/sys/siginfo.h:259: error: parse error before "ctid_t"
/usr/include/sys/siginfo.h:292: error: parse error before '}' token
/usr/include/sys/siginfo.h:294: error: parse error before '}' token
/usr/include/sys/siginfo.h:390: error: parse error before "ctid_t"
/usr/include/sys/siginfo.h:398: error: conflicting types for `__fault'
/usr/include/sys/siginfo.h:267: error: previous declaration of `__fault'
/usr/include/sys/siginfo.h:404: error: conflicting types for `__file'
/usr/include/sys/siginfo.h:273: error: previous declaration of `__file'
/usr/include/sys/siginfo.h:420: error: conflicting types for `__prof'
/usr/include/sys/siginfo.h:287: error: previous declaration of `__prof'
/usr/include/sys/siginfo.h:424: error: conflicting types for `__rctl'
/usr/include/sys/siginfo.h:291: error: previous declaration of `__rctl'
/usr/include/sys/siginfo.h:426: error: parse error before '}' token
/usr/include/sys/siginfo.h:428: error: parse error before '}' token
/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"
/usr/include/sys/siginfo.h:437: error: parse error before '}' token
In file included from /usr/include/signal.h:27,
from xlog.c:18:
/usr/include/sys/signal.h:87: error: parse error before "siginfo_t"
In file included from xlog.c:18:
/usr/include/signal.h:105: error: parse error before "siginfo_t"
/usr/include/signal.h:106: error: parse error before "siginfo_t"
make[4]: *** [xlog.o] Error 1
make[4]: Leaving directory
`/tests/postgres/postgresql-7.4.6/src/backend/access/
transam'
-------------
The compilation of postgresql on Solaris 10 x86 failed then.
Please send me the patch to fix this bug.
Thanks,
Jenny
--
Jenny Chen
Software Engineer
Market Development Engineering
v-mail:(510) 574-7149
SUN Microsystems
Would you tell use what is on this line?
/usr/include/sys/siginfo.h:259:
Seems you need an extra #include for that platform. Try adding
"#include <sys/types.h>" before the signal.h include and see if that
helps.
If your signal.h can't be used without a previous include being present
it sounds like a bug in the operating system.
My BSD system has for the signal manual page:
#include <signal.h>
void
*signal(sig, func());
Does your signal manual page have another #include at the top?
---------------------------------------------------------------------------
Luojia Chen wrote:
Hi,
I tried to build postgresql-8.0.0beta5 and postgresql-7.4.6 on Solaris
10 x86 following the instruction by doing:
1. ./configure
2. gmakeWhen I implemented the step 2. I got the following error messages:
-----------
/usr/local/bin/gcc -O2 -pipe -fno-strict-aliasing -Wall
-Wmissing-prototypes -Wm
issing-declarations -I../../../../src/include -c -o xlog.o xlog.c
In file included from /usr/include/sys/signal.h:35,
from /usr/include/signal.h:27,
from xlog.c:18:
/usr/include/sys/siginfo.h:259: error: parse error before "ctid_t"
/usr/include/sys/siginfo.h:292: error: parse error before '}' token
/usr/include/sys/siginfo.h:294: error: parse error before '}' token
/usr/include/sys/siginfo.h:390: error: parse error before "ctid_t"
/usr/include/sys/siginfo.h:398: error: conflicting types for `__fault'
/usr/include/sys/siginfo.h:267: error: previous declaration of `__fault'
/usr/include/sys/siginfo.h:404: error: conflicting types for `__file'
/usr/include/sys/siginfo.h:273: error: previous declaration of `__file'
/usr/include/sys/siginfo.h:420: error: conflicting types for `__prof'
/usr/include/sys/siginfo.h:287: error: previous declaration of `__prof'
/usr/include/sys/siginfo.h:424: error: conflicting types for `__rctl'
/usr/include/sys/siginfo.h:291: error: previous declaration of `__rctl'
/usr/include/sys/siginfo.h:426: error: parse error before '}' token
/usr/include/sys/siginfo.h:428: error: parse error before '}' token
/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"
/usr/include/sys/siginfo.h:437: error: parse error before '}' token
In file included from /usr/include/signal.h:27,
from xlog.c:18:
/usr/include/sys/signal.h:87: error: parse error before "siginfo_t"
In file included from xlog.c:18:
/usr/include/signal.h:105: error: parse error before "siginfo_t"
/usr/include/signal.h:106: error: parse error before "siginfo_t"
make[4]: *** [xlog.o] Error 1
make[4]: Leaving directory
`/tests/postgres/postgresql-7.4.6/src/backend/access/
transam'
-------------The compilation of postgresql on Solaris 10 x86 failed then.
Please send me the patch to fix this bug.Thanks,
Jenny--
Jenny Chen
Software Engineer
Market Development Engineering
v-mail:(510) 574-7149
SUN Microsystems---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
--
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, Pennsylvania 19073
Hi,
Please see my inline reply.
Bruce Momjian wrote:
Would you tell use what is on this line?
/usr/include/sys/siginfo.h:259:
ctid_t __ctid; /* contract ID */
Seems you need an extra #include for that platform. Try adding
"#include <sys/types.h>" before the signal.h include and see if that
helps.
Adding the "#include <sys/types.h>" in the "/usr/include/sys/signal.h"
and "/usr/include/signal.h" doesn't help.
If your signal.h can't be used without a previous include being present
it sounds like a bug in the operating system.My BSD system has for the signal manual page:
#include <signal.h>
void
*signal(sig, func());Does your signal manual page have another #include at the top?
No, I didn't see any other #include at the top for the manual page
It shows as:
-----------
#include <signal.h>
void (*signal (int sig, void (*disp)(int)))(int);
-----------
Thanks,
Jenny
---------------------------------------------------------------------------
Luojia Chen wrote:
Hi,
I tried to build postgresql-8.0.0beta5 and postgresql-7.4.6 on Solaris
10 x86 following the instruction by doing:
1. ./configure
2. gmakeWhen I implemented the step 2. I got the following error messages:
-----------
/usr/local/bin/gcc -O2 -pipe -fno-strict-aliasing -Wall
-Wmissing-prototypes -Wm
issing-declarations -I../../../../src/include -c -o xlog.o xlog.c
In file included from /usr/include/sys/signal.h:35,
from /usr/include/signal.h:27,
from xlog.c:18:
/usr/include/sys/siginfo.h:259: error: parse error before "ctid_t"
/usr/include/sys/siginfo.h:292: error: parse error before '}' token
/usr/include/sys/siginfo.h:294: error: parse error before '}' token
/usr/include/sys/siginfo.h:390: error: parse error before "ctid_t"
/usr/include/sys/siginfo.h:398: error: conflicting types for `__fault'
/usr/include/sys/siginfo.h:267: error: previous declaration of `__fault'
/usr/include/sys/siginfo.h:404: error: conflicting types for `__file'
/usr/include/sys/siginfo.h:273: error: previous declaration of `__file'
/usr/include/sys/siginfo.h:420: error: conflicting types for `__prof'
/usr/include/sys/siginfo.h:287: error: previous declaration of `__prof'
/usr/include/sys/siginfo.h:424: error: conflicting types for `__rctl'
/usr/include/sys/siginfo.h:291: error: previous declaration of `__rctl'
/usr/include/sys/siginfo.h:426: error: parse error before '}' token
/usr/include/sys/siginfo.h:428: error: parse error before '}' token
/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"
/usr/include/sys/siginfo.h:437: error: parse error before '}' token
In file included from /usr/include/signal.h:27,
from xlog.c:18:
/usr/include/sys/signal.h:87: error: parse error before "siginfo_t"
In file included from xlog.c:18:
/usr/include/signal.h:105: error: parse error before "siginfo_t"
/usr/include/signal.h:106: error: parse error before "siginfo_t"
make[4]: *** [xlog.o] Error 1
make[4]: Leaving directory
`/tests/postgres/postgresql-7.4.6/src/backend/access/
transam'
-------------The compilation of postgresql on Solaris 10 x86 failed then.
Please send me the patch to fix this bug.Thanks,
Jenny--
Jenny Chen
Software Engineer
Market Development Engineering
v-mail:(510) 574-7149
SUN Microsystems---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
--
Jenny Chen
Software Engineer
Market Development Engineering
v-mail:(510) 574-7149
SUN Microsystems
Luojia Chen wrote:
Hi,
Please see my inline reply.
Bruce Momjian wrote:
Would you tell use what is on this line?
/usr/include/sys/siginfo.h:259:
ctid_t __ctid; /* contract ID */
OK, do a 'grep' and find out what /usr/include/* file contains the
definiation of ctid_t.
Seems you need an extra #include for that platform. Try adding
"#include <sys/types.h>" before the signal.h include and see if that
helps.Adding the "#include <sys/types.h>" in the "/usr/include/sys/signal.h"
and "/usr/include/signal.h" doesn't help.
OK.
If your signal.h can't be used without a previous include being present
it sounds like a bug in the operating system.My BSD system has for the signal manual page:
#include <signal.h>
void
*signal(sig, func());Does your signal manual page have another #include at the top?
No, I didn't see any other #include at the top for the manual page
It shows as:
-----------
#include <signal.h>void (*signal (int sig, void (*disp)(int)))(int);
OK, try a simple test. Create a small C file that just includes
signal.h and see if it compiles. If it doesn't, that manual page is
wrong, at the least.
--
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, Pennsylvania 19073
Bruce Momjian wrote:
Luojia Chen wrote:
Hi,
Please see my inline reply.
Bruce Momjian wrote:
Would you tell use what is on this line?
/usr/include/sys/siginfo.h:259:
ctid_t __ctid; /* contract ID */
OK, do a 'grep' and find out what /usr/include/* file contains the
definiation of ctid_t.
Hi,Bruce,
The ctid_t was defined in /usr/include/sys/types.h
typedef id_t ctid_t;
Seems you need an extra #include for that platform. Try adding
"#include <sys/types.h>" before the signal.h include and see if that
helps.Adding the "#include <sys/types.h>" in the "/usr/include/sys/signal.h"
and "/usr/include/signal.h" doesn't help.OK.
If your signal.h can't be used without a previous include being present
it sounds like a bug in the operating system.My BSD system has for the signal manual page:
#include <signal.h>
void
*signal(sig, func());Does your signal manual page have another #include at the top?
No, I didn't see any other #include at the top for the manual page
It shows as:
-----------
#include <signal.h>void (*signal (int sig, void (*disp)(int)))(int);
OK, try a simple test. Create a small C file that just includes
signal.h and see if it compiles. If it doesn't, that manual page is
wrong, at the least.
A simple test.c as bellow as you suggested:
#include <signal.h>
#include <stdio.h>
int main()
{
printf("just a test");
return 0;
}
It compiled and run well without any error.
Thanks,
Jenny
--
Jenny Chen
Software Engineer
Market Development Engineering
v-mail:(510) 574-7149
SUN Microsystems
Hi, Bruce,
Good news is that I've found that the reason caused the compilation
error messages about signal.h header file I reported to you before - I
used GCC binary built on Solaris 9 x86,which has old header files to
work with. The error got fixed after using the gcc binary for Solaris 10
x86.
However, I got the new error messages when building Postgres 8.0 on
Solaris 10 x86, the error is as the following:
----------
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes
-Wmissing-declarations -I../../../../src/include -c -o heaptuple.o
heaptuple.c
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes
-Wmissing-declarations -I../../../../src/include -c -o indextuple.o
indextuple.c
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes
-Wmissing-declarations -I../../../../src/include -c -o indexvalid.o
indexvalid.c
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes
-Wmissing-declarations -I../../../../src/include -c -o printtup.o
printtup.c
printtup.c:656: error: parse error before "message"
printtup.c:660: error: parse error before '&' token
printtup.c:660: warning: type defaults to `int' in declaration of
`pq_sendint'
printtup.c:660: error: conflicting types for `pq_sendint'
../../../../src/include/libpq/pqformat.h:25: error: previous declaration
of `pq_sendint'
printtup.c:660: warning: data definition has no type or storage class
printtup.c:672: warning: type defaults to `int' in declaration of `origattr'
printtup.c:672: error: conflicting types for `origattr'
printtup.c:668: error: previous declaration of `origattr'
printtup.c:672:46: warning: null character(s) ignored
printtup.c:672: confused by earlier errors, bailing out
make[4]: *** [printtup.o] Error 1
make[4]: Leaving directory
`/tests/postgres/postgresql-7.4.6/src/backend/access/common'
make[3]: *** [common-recursive] Error 2
make[3]: Leaving directory
`/tests/postgres/postgresql-7.4.6/src/backend/access'
make[2]: *** [access-recursive] Error 2
make[2]: Leaving directory `/tests/postgres/postgresql-7.4.6/src/backend'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/tests/postgres/postgresql-7.4.6/src'
make: *** [all] Error 2
----------
Could you please let me know why the above error happened when running
make, and how to solve it?
Thanks in advance for your help!
Happy holiday,
Jenny
Luojia Chen wrote:
Bruce Momjian wrote:
Luojia Chen wrote:
Hi,
Please see my inline reply.
Bruce Momjian wrote:
Would you tell use what is on this line?
/usr/include/sys/siginfo.h:259:
ctid_t __ctid; /* contract ID */
OK, do a 'grep' and find out what /usr/include/* file contains the
definiation of ctid_t.Hi,Bruce,
The ctid_t was defined in /usr/include/sys/types.h
typedef id_t ctid_t;
Seems you need an extra #include for that platform. Try adding
"#include <sys/types.h>" before the signal.h include and see if that
helps.Adding the "#include <sys/types.h>" in the "/usr/include/sys/signal.h"
and "/usr/include/signal.h" doesn't help.OK.
If your signal.h can't be used without a previous include being present
it sounds like a bug in the operating system.My BSD system has for the signal manual page:
#include <signal.h>
void
*signal(sig, func());Does your signal manual page have another #include at the top?
No, I didn't see any other #include at the top for the manual page
It shows as:
-----------
#include <signal.h>void (*signal (int sig, void (*disp)(int)))(int);
OK, try a simple test. Create a small C file that just includes
signal.h and see if it compiles. If it doesn't, that manual page is
wrong, at the least.A simple test.c as bellow as you suggested:
#include <signal.h>
#include <stdio.h>int main()
{
printf("just a test");
return 0;
}It compiled and run well without any error.
Thanks,
Jenny
--
Jenny Chen
Software Engineer
Market Development Engineering
v-mail:(510) 574-7149
SUN Microsystems
Your compiler seems confused. I have this at printtup.c:656:
PrinttupAttrInfo *thisState = myState->myinfo + i;
Datum origattr = myState->values[i],
attr;
bytea *outputbytes;
I dont see any 'message' there, and am confused. This is strange too:
printtup.c:660: error: conflicting types for `pq_sendint'
../../../../src/include/libpq/pqformat.h:25: error: previous declaration
I see no mention of pg_sendint around line 660. I think either your
compiler or preprocessor is buggy. I would start commenting out lines
to see what is causing the failure. The problem might be much higher in
the file.
---------------------------------------------------------------------------
Luojia Chen wrote:
Hi, Bruce,
Good news is that I've found that the reason caused the compilation
error messages about signal.h header file I reported to you before - I
used GCC binary built on Solaris 9 x86,which has old header files to
work with. The error got fixed after using the gcc binary for Solaris 10
x86.However, I got the new error messages when building Postgres 8.0 on
Solaris 10 x86, the error is as the following:----------
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes
-Wmissing-declarations -I../../../../src/include -c -o heaptuple.o
heaptuple.c
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes
-Wmissing-declarations -I../../../../src/include -c -o indextuple.o
indextuple.c
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes
-Wmissing-declarations -I../../../../src/include -c -o indexvalid.o
indexvalid.c
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes
-Wmissing-declarations -I../../../../src/include -c -o printtup.o
printtup.c
printtup.c:656: error: parse error before "message"
printtup.c:660: error: parse error before '&' token
printtup.c:660: warning: type defaults to `int' in declaration of
`pq_sendint'
printtup.c:660: error: conflicting types for `pq_sendint'
../../../../src/include/libpq/pqformat.h:25: error: previous declaration
of `pq_sendint'
printtup.c:660: warning: data definition has no type or storage class
printtup.c:672: warning: type defaults to `int' in declaration of `origattr'
printtup.c:672: error: conflicting types for `origattr'
printtup.c:668: error: previous declaration of `origattr'
printtup.c:672:46: warning: null character(s) ignored
printtup.c:672: confused by earlier errors, bailing out
make[4]: *** [printtup.o] Error 1
make[4]: Leaving directory
`/tests/postgres/postgresql-7.4.6/src/backend/access/common'
make[3]: *** [common-recursive] Error 2
make[3]: Leaving directory
`/tests/postgres/postgresql-7.4.6/src/backend/access'
make[2]: *** [access-recursive] Error 2
make[2]: Leaving directory `/tests/postgres/postgresql-7.4.6/src/backend'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/tests/postgres/postgresql-7.4.6/src'
make: *** [all] Error 2
----------Could you please let me know why the above error happened when running
make, and how to solve it?Thanks in advance for your help!
Happy holiday,
JennyLuojia Chen wrote:
Bruce Momjian wrote:
Luojia Chen wrote:
Hi,
Please see my inline reply.
Bruce Momjian wrote:
Would you tell use what is on this line?
/usr/include/sys/siginfo.h:259:
ctid_t __ctid; /* contract ID */
OK, do a 'grep' and find out what /usr/include/* file contains the
definiation of ctid_t.Hi,Bruce,
The ctid_t was defined in /usr/include/sys/types.h
typedef id_t ctid_t;
Seems you need an extra #include for that platform. Try adding
"#include <sys/types.h>" before the signal.h include and see if that
helps.Adding the "#include <sys/types.h>" in the "/usr/include/sys/signal.h"
and "/usr/include/signal.h" doesn't help.OK.
If your signal.h can't be used without a previous include being present
it sounds like a bug in the operating system.My BSD system has for the signal manual page:
#include <signal.h>
void
*signal(sig, func());Does your signal manual page have another #include at the top?
No, I didn't see any other #include at the top for the manual page
It shows as:
-----------
#include <signal.h>void (*signal (int sig, void (*disp)(int)))(int);
OK, try a simple test. Create a small C file that just includes
signal.h and see if it compiles. If it doesn't, that manual page is
wrong, at the least.A simple test.c as bellow as you suggested:
#include <signal.h>
#include <stdio.h>int main()
{
printf("just a test");
return 0;
}It compiled and run well without any error.
Thanks,
Jenny--
Jenny Chen
Software Engineer
Market Development Engineering
v-mail:(510) 574-7149
SUN Microsystems
--
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, Pennsylvania 19073