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:

Previous
From: "Scott Stillwell"
Date:
Subject: Re: [pgsql-www] BUG #1355: 8.0.0 rc2 installer fails
Next
From: "Dave Page"
Date:
Subject: Re: [pgsql-www] BUG #1356: pg_get_serial_sequence can not find a table that existing.