I know the cause of this. SCO has a buggy compiler in several (many?)
releases, and one of our macros is too large for the compiler. There is
a DISABLE_COMPLEX_MACRO define that turns off an inline macro for sco.
In 7.0.X, it seems the include file using the macro is also called by
ecpg, and because ecpg does not include the C file that defines the
non-inline version of the macro, it fails. At least that is my guess.
I am testing the current tree now, but one solution is to remove the
DISABLE_COMPLEX_MACRO defined from ./include/port/sco.h.
Unfortunately, I can't reproduce the problem in the current source tree.
> Hi! Help me please.
>
> I try compile PostgreSQL 7.0.2 on
> OS:
> SCO UnixWare 2.1.3
> SCO UnixWare SDK
> ptf4001i, ptf4003b, ptf4004a, ptf4024b
> machine:
> DELL PowerEdge 2100
> (Intel Pentium Pro 200MHz, 96Mb RAM, 4Gb and 9Gb Wide-SCSI HDD)
>
> I have follow truble:
>
> cc -o ecpg preproc.o pgc.o.... ../lib/typename.o ... -lgen -lcrypt -lld
> -lnsl \
> -lsocket -ldl -lm -lutil -ltermcap -lcurses -lc89 -Wl,-Bexport
>
> Undefined first referenced
> symbol in file
> nocachegetattr pgc.o
> UX:ld: ERROR: ecpg: fatal error: Symbol referencing errors. No output
> written to ecpg.
>
> What can I do? Help me please.
>
> Best regards,
> Igor N. Avtaev
>
>
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026