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

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: postgresql-8.0.0 beta5 & postgresql-7.4.6 can't compile successfully
Дата
Msg-id 200412232032.iBNKWUf01787@candle.pha.pa.us
обсуждение исходный текст
Список pgsql-bugs
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,
> 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
>
>
>

--
  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

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [pgsql-www] BUG #1356: pg_get_serial_sequence can not find a table that existing.
Следующее
От: Stephane Raimbault
Дата:
Сообщение: BUG Postgresql 7.4.6 : usecreatedb flag