Re: postgresql-8.0.0 beta5 & postgresql-7.4.6 can't compile

From: Luojia Chen <Luojia(dot)Chen(at)Sun(dot)COM>
To: Luojia(dot)Chen(at)Sun(dot)COM, Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: pgsql-bugs(at)postgresql(dot)org, Rajesh Ramchandani <Rajesh(dot)Ramchandani(at)Sun(dot)COM>
Subject: Re: postgresql-8.0.0 beta5 & postgresql-7.4.6 can't compile
Date: 2004-12-23 19:31:40
Message-ID: 41CB1D1C.8080807@sun.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Bruce Momjian 2004-12-23 20:32:30 Re: postgresql-8.0.0 beta5 & postgresql-7.4.6 can't compile successfully
Previous Message Scott Stillwell 2004-12-23 16:22:31 Re: [pgsql-www] BUG #1355: 8.0.0 rc2 installer fails