Re: postgresql-8.0.0 beta5 & postgresql-7.4.6 can't compile - Mailing list pgsql-bugs
From | Luojia Chen |
---|---|
Subject | Re: postgresql-8.0.0 beta5 & postgresql-7.4.6 can't compile |
Date | |
Msg-id | 41CB1D1C.8080807@sun.com Whole thread Raw |
In response to | Re: postgresql-8.0.0 beta5 & postgresql-7.4.6 can't compile (Luojia Chen <Luojia.Chen@Sun.COM>) |
List | pgsql-bugs |
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
pgsql-bugs by date: