Обсуждение: UnixWare chokes

Поиск
Список
Период
Сортировка

UnixWare chokes

От
Thomas Good
Дата:
Hi all,

Trying to build pg on unixware...hacked configure as follows
to create a Makefile:

    change TEMPLATE=template/`uname -s | tr A-Z a-z`
    to     TEMPLATE=template/univel

Downloaded flex-2.3pl7.tar.Z from Freebird site, installed...
Downloaded bison-1.14.pkg.tar.Z and installed.

And now - after a multitude of warnings (many more than with FreeBSD
or Linux) gmake barfs with:
    Undefined symbol   alloca    in file   bootstrap/SUBSYS.o

Anyone have a fix handy?  Or a set of UnixWare binaries?  ;-)

Many thanks!
Tom
----
         North Richmond Community Mental Health Center

         Thomas Good   Information Systems Coordinator
         E-Mail:       tomg@ { admin | q8 } .nrnet.org
         Phone:        718-354-5528
         Fax:          718-354-5056

                 Empowered by PostgreSQL 6.3.2



Re: [GENERAL] UnixWare chokes

От
Bruce Momjian
Дата:
> Hi all,
>
> Trying to build pg on unixware...hacked configure as follows
> to create a Makefile:
>
>     change TEMPLATE=template/`uname -s | tr A-Z a-z`
>     to     TEMPLATE=template/univel
>
> Downloaded flex-2.3pl7.tar.Z from Freebird site, installed...
> Downloaded bison-1.14.pkg.tar.Z and installed.
>
> And now - after a multitude of warnings (many more than with FreeBSD
> or Linux) gmake barfs with:
>     Undefined symbol   alloca    in file   bootstrap/SUBSYS.o

The alloca calls are coming from the code generated by bison.  Strange
it would do that on Unixware.  You would think bison would know if
alloca was available, and only use it if it was.  If you use 'nm' you
will see the unresolved call in bootparse.c, no?

--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@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

Re: [GENERAL] UnixWare chokes

От
Thomas Good
Дата:
On Wed, 28 Apr 1999, Bruce Momjian wrote:

> > or Linux) gmake barfs with:
> >     Undefined symbol   alloca    in file   bootstrap/SUBSYS.o

> The alloca calls are coming from the code generated by bison.  Strange
> it would do that on Unixware.  You would think bison would know if
> alloca was available, and only use it if it was.  If you use 'nm' you
> will see the unresolved call in bootparse.c, no?

Bruce - I am not sure what I am looking for...so here is the stdout from
running nm (tail  make.log follows the nm output).

Thanks for taking the time, I know you're rather busy.

Tom
---

Symbols from /usr/src/pgsql/postgresql-6.3.2/src/backend/bootstrap/bootparse.o:

[Index]   Value      Size    Type  Bind  Other Shndx   Name

[1]    |         0|       0|FILE |LOCL |0    |ABS    |bootparse.y
[2]    |         0|       0|SECT |LOCL |0    |1      |.text
[3]    |         0|       0|SECT |LOCL |0    |2      |.data
[4]    |         0|       0|SECT |LOCL |0    |3      |.data1
[5]    |         0|       0|SECT |LOCL |0    |4      |.rodata
[6]    |         0|       0|SECT |LOCL |0    |5      |.rodata1
[7]    |         0|       0|SECT |LOCL |0    |6      |.bss
[8]    |         0|       0|SECT |LOCL |0    |7      |.comment
[9]    |         0|       4|OBJT |LOCL |0    |6      |objectid
[10]    |         0|      36|FUNC |LOCL |0    |1      |__yy_bcopy
[11]    |      1262|     130|OBJT |LOCL |0    |4      |Int_yycheck
[12]    |      1132|     130|OBJT |LOCL |0    |4      |Int_yytable
[13]    |      1086|      46|OBJT |LOCL |0    |4      |Int_yypgoto
[14]    |       944|     142|OBJT |LOCL |0    |4      |Int_yypact
[15]    |       898|      46|OBJT |LOCL |0    |4      |Int_yydefgoto
[16]    |       756|     142|OBJT |LOCL |0    |4      |Int_yydefact
[17]    |       674|      82|OBJT |LOCL |0    |4      |Int_yyr2
[18]    |       592|      82|OBJT |LOCL |0    |4      |Int_yyr1
[19]    |       364|     228|OBJT |LOCL |0    |4      |Int_yyrhs
[20]    |       282|      82|OBJT |LOCL |0    |4      |Int_yyprhs
[21]    |         0|     281|OBJT |LOCL |0    |4      |Int_yytranslate
[22]    |         4|       4|OBJT |GLOB |0    |COMMON |fmgr_pl_finfo
[23]    |         0|       0|NOTY |GLOB |0    |UNDEF  |InsertOneNull
[24]    |         0|       0|NOTY |GLOB |0    |UNDEF  |InsertOneValue
[25]    |         0|       0|NOTY |GLOB |0    |UNDEF  |newoid
[26]    |         0|       0|NOTY |GLOB |0    |UNDEF  |atol
[27]    |         0|       0|NOTY |GLOB |0    |UNDEF  |DefineAttr
[28]    |         0|       0|NOTY |GLOB |0    |UNDEF  |makeString
[29]    |         0|       0|NOTY |GLOB |0    |UNDEF  |newNode
[30]    |         0|       0|NOTY |GLOB |0    |UNDEF  |build_indices
[31]    |         0|       0|NOTY |GLOB |0    |UNDEF  |DefineIndex
[32]    |         0|       0|NOTY |GLOB |0    |UNDEF  |lappend
[33]    |         0|       0|NOTY |GLOB |0    |UNDEF  |InsertOneTuple
[34]    |         0|       0|NOTY |GLOB |0    |UNDEF  |err_out
[35]    |         0|       0|NOTY |GLOB |0    |UNDEF  |elog
[36]    |         0|       0|NOTY |GLOB |0    |UNDEF  |heap_create_with_catalog
[37]    |         0|       0|NOTY |GLOB |0    |UNDEF  |heap_create
[38]    |         0|       0|NOTY |GLOB |0    |UNDEF  |CreateTupleDesc
[39]    |         0|       0|NOTY |GLOB |0    |UNDEF  |attrtypes
[40]    |         0|       0|NOTY |GLOB |0    |UNDEF  |DebugMode
[41]    |         0|       0|NOTY |GLOB |0    |UNDEF  |puts
[42]    |         0|       0|NOTY |GLOB |0    |UNDEF  |reldesc
[43]    |         0|       0|NOTY |GLOB |0    |UNDEF  |__flsbuf
[44]    |         0|       0|NOTY |GLOB |0    |UNDEF  |numattr
[45]    |         0|       0|NOTY |GLOB |0    |UNDEF  |closerel
[46]    |         0|       0|NOTY |GLOB |0    |UNDEF  |fflush
[47]    |         0|       0|NOTY |GLOB |0    |UNDEF  |__iob
[48]    |         0|       0|NOTY |GLOB |0    |UNDEF  |printf
[49]    |         0|       0|NOTY |GLOB |0    |UNDEF  |Quiet
[50]    |         0|       0|NOTY |GLOB |0    |UNDEF  |CommitTransactionCommand
[51]    |         0|       0|NOTY |GLOB |0    |UNDEF  |boot_openrel
[52]    |         0|       0|NOTY |GLOB |0    |UNDEF  |LexIDStr
[53]    |         0|       0|NOTY |GLOB |0    |UNDEF  |StartTransactionCommand
[54]    |         4|       4|OBJT |GLOB |0    |COMMON |Int_yylval
[55]    |         0|       0|NOTY |GLOB |0    |UNDEF  |Int_yylex
[56]    |         0|       0|NOTY |GLOB |0    |UNDEF  |alloca
[57]    |         0|       0|NOTY |GLOB |0    |UNDEF  |Int_yyerror
[58]    |         4|       4|OBJT |GLOB |0    |COMMON |Int_yychar
[59]    |         4|       4|OBJT |GLOB |0    |COMMON |Int_yynerrs
[60]    |        48|    2368|FUNC |GLOB |0    |1      |Int_yyparse
[61]    |         0|       4|OBJT |GLOB |0    |2      |num_tuples_read

ld -r -o SUBSYS.o fmgrtab.o adt/SUBSYS.o cache/SUBSYS.o error/SUBSYS.o fmgr/SUBSYS.o hash/SUBSYS.o init/SUBSYS.o
misc/SUBSYS.ommgr/SUBSYS.o sort/SUBSYS.o time/SUBSYS.o 
gmake[2]: Leaving directory `/usr/src/pgsql/postgresql-6.3.2/src/backend/utils'
cc -o postgres access/SUBSYS.o bootstrap/SUBSYS.o catalog/SUBSYS.o commands/SUBSYS.o executor/SUBSYS.o lib/SUBSYS.o
libpq/SUBSYS.omain/SUBSYS.o nodes/SUBSYS.o optimizer/SUBSYS.o parser/SUBSYS.o port/SUBSYS.o postmaster/SUBSYS.o
regex/SUBSYS.orewrite/SUB 
SYS.o storage/SUBSYS.o tcop/SUBSYS.o utils/SUBSYS.o ../utils/version.o -lgen -lcrypt -lld -lnsl -lsocket -ldl -lm
-ltermcap-lcurses -lc89  -lc89 -Wl,-Bexport 
Undefined            first referenced
 symbol                  in file
alloca                              bootstrap/SUBSYS.o
UX:ld: ERROR: postgres: fatal error: Symbol referencing errors. No output written to postgres
gmake[1]: *** [postgres] Error 1
gmake[1]: Leaving directory `/usr/src/pgsql/postgresql-6.3.2/src/backend'
gmake: *** [all] Error 2

----
         North Richmond Community Mental Health Center

         Thomas Good   Information Systems Coordinator
         E-Mail:       tomg@ { admin | q8 } .nrnet.org
         Phone:        718-354-5528
         Fax:          718-354-5056

                 Empowered by PostgreSQL 6.3.2



Re: [GENERAL] UnixWare chokes

От
Bruce Momjian
Дата:
> On Wed, 28 Apr 1999, Bruce Momjian wrote:
>
> > > or Linux) gmake barfs with:
> > >     Undefined symbol   alloca    in file   bootstrap/SUBSYS.o
>
> > The alloca calls are coming from the code generated by bison.  Strange
> > it would do that on Unixware.  You would think bison would know if
> > alloca was available, and only use it if it was.  If you use 'nm' you
> > will see the unresolved call in bootparse.c, no?
>
> Bruce - I am not sure what I am looking for...so here is the stdout from
> running nm (tail  make.log follows the nm output).
>
> Thanks for taking the time, I know you're rather busy.

It is this line:

    [56]    |         0|       0|NOTY |GLOB |0    |UNDEF  |alloca

Your bison is outputting code that can not be resolved by the libraries
you supplied.  Try doing 'nm' in /usr/lib, and see if you can find a
reference to alloca that does not have "UNDEF" next to it.

--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@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

Re: [GENERAL] UnixWare chokes

От
Thomas Good
Дата:
On Wed, 28 Apr 1999, Bruce Momjian wrote:

> > On Wed, 28 Apr 1999, Bruce Momjian wrote:
>
> It is this line:
>
>     [56]    |         0|       0|NOTY |GLOB |0    |UNDEF  |alloca
>
> Your bison is outputting code that can not be resolved by the libraries
> you supplied.  Try doing 'nm' in /usr/lib, and see if you can find a
> reference to alloca that does not have "UNDEF" next to it.

Hi.  Negative...not in /usr/lib, /opt/lib or /lib *but* I found
one entry in my Berkeley libraries (/usr/ucblib):

Symbols from libucb.a[alloca.o]:
[1]    |         0|       0|FILE |LOCL |0    |ABS    |alloca.s
[4]    |         0|       0|NOTY |GLOB |0    |1      |alloca

----
         North Richmond Community Mental Health Center
                              ---
         Thomas Good   tomg@ { admin | q8 } .nrnet.org
         Phone:        718-354-5528
         Fax:          718-354-5056
         Powered By:   Slackware 3.6  PostgreSQL 6.3.2
                              ---
        /* Die Wahrheit Ist Irgendwo Da Draussen... */

----
         North Richmond Community Mental Health Center

         Thomas Good   Information Systems Coordinator
         E-Mail:       tomg@ { admin | q8 } .nrnet.org
         Phone:        718-354-5528
         Fax:          718-354-5056

                 Empowered by PostgreSQL 6.3.2



Re: [GENERAL] UnixWare chokes

От
Thomas Good
Дата:
On Wed, 28 Apr 1999, Thomas Good wrote:

> > It is this line:
> >
> >     [56]    |         0|       0|NOTY |GLOB |0    |UNDEF  |alloca
> >
> > Your bison is outputting code that can not be resolved by the libraries
> > you supplied.  Try doing 'nm' in /usr/lib, and see if you can find a
> > reference to alloca that does not have "UNDEF" next to it.

> Hi.  Negative...not in /usr/lib, /opt/lib or /lib *but* I found
> one entry in my Berkeley libraries (/usr/ucblib):
>
> Symbols from libucb.a[alloca.o]:
> [1]    |         0|       0|FILE |LOCL |0    |ABS    |alloca.s
> [4]    |         0|       0|NOTY |GLOB |0    |1      |alloca

Bruce - I see the calls in /opt/lib/bison.simple to alloca...
can I make a careful incision anywhere?  ;-)

----
         North Richmond Community Mental Health Center

         Thomas Good   Information Systems Coordinator
         E-Mail:       tomg@ { admin | q8 } .nrnet.org
         Phone:        718-354-5528
         Fax:          718-354-5056

                 Empowered by PostgreSQL 6.3.2



Re: [GENERAL] UnixWare chokes

От
Bruce Momjian
Дата:
> On Wed, 28 Apr 1999, Bruce Momjian wrote:
>
> > > On Wed, 28 Apr 1999, Bruce Momjian wrote:
> >
> > It is this line:
> >
> >     [56]    |         0|       0|NOTY |GLOB |0    |UNDEF  |alloca
> >
> > Your bison is outputting code that can not be resolved by the libraries
> > you supplied.  Try doing 'nm' in /usr/lib, and see if you can find a
> > reference to alloca that does not have "UNDEF" next to it.
>
> Hi.  Negative...not in /usr/lib, /opt/lib or /lib *but* I found
> one entry in my Berkeley libraries (/usr/ucblib):
>
> Symbols from libucb.a[alloca.o]:
> [1]    |         0|       0|FILE |LOCL |0    |ABS    |alloca.s
> [4]    |         0|       0|NOTY |GLOB |0    |1      |alloca

Bing.  Looks like bison-programs need -lucb as a compiler option.  Try
that and see.

--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@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

Re: [GENERAL] UnixWare chokes

От
Bruce Momjian
Дата:
> On Wed, 28 Apr 1999, Thomas Good wrote:
>
> > > It is this line:
> > >
> > >     [56]    |         0|       0|NOTY |GLOB |0    |UNDEF  |alloca
> > >
> > > Your bison is outputting code that can not be resolved by the libraries
> > > you supplied.  Try doing 'nm' in /usr/lib, and see if you can find a
> > > reference to alloca that does not have "UNDEF" next to it.
>
> > Hi.  Negative...not in /usr/lib, /opt/lib or /lib *but* I found
> > one entry in my Berkeley libraries (/usr/ucblib):
> >
> > Symbols from libucb.a[alloca.o]:
> > [1]    |         0|       0|FILE |LOCL |0    |ABS    |alloca.s
> > [4]    |         0|       0|NOTY |GLOB |0    |1      |alloca
>
> Bruce - I see the calls in /opt/lib/bison.simple to alloca...
> can I make a careful incision anywhere?  ;-)

Usually configure of bison checks for alloca and makes the proper
compile checks.  My guess is that either bison automatically uses -lucb
on its configure checks, or you got a bison precompile binary where
someone used -lucb.  I don't think bison requires it, but your's does.
Alloca can not easily be simulated.


---------------------------------------------------------------------------

NAME
     alloca - memory allocator

SYNOPSIS
     #include <stdlib.h>

     void *
     alloca(size_t size);

DESCRIPTION
     The alloca() function allocates size bytes of space in the stack
frame of
     the caller.  This temporary space is automatically freed on return.

RETURN VALUES
     The alloca() function returns a pointer to the beginning of the
allocated
     space.  If the allocation failed, a NULL pointer is returned.

SEE ALSO
     brk(2),  pagesize(2) calloc(3),  malloc(3),  realloc(3),


--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@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

Re: [GENERAL] UnixWare chokes

От
Thomas Good
Дата:
On Wed, 28 Apr 1999, Bruce Momjian wrote:

> > Symbols from libucb.a[alloca.o]:
> > [1]    |         0|       0|FILE |LOCL |0    |ABS    |alloca.s
> > [4]    |         0|       0|NOTY |GLOB |0    |1      |alloca
>
> Bing.  Looks like bison-programs need -lucb as a compiler option.  Try
> that and see.

Bruce -

gmake all

produces seemingly benign output:

gmake -C lextest all
gmake[1]: Entering directory `/usr/src/pgsql/postgresql-6.3.2/src/lextest'
gmake[1]: Leaving directory `/usr/src/pgsql/postgresql-6.3.2/src/lextest'


But of course, make fails...so trying to force the issue with:

cd /usr/src/pgsql/postgresql-6.3.2/src/backend
cc -o postgres access/SUBSYS.o bootstrap/SUBSYS.o catalog/SUBSYS.o
commands/SUBSYS.o executor/SUBSYS.o lib/SUBSYS.o libpq/SUBSYS.o
main/SUBSYS.o nodes/SUBSYS.o optimizer/SUBSYS.o parser/SUBSYS.o
port/SUBSYS.o postmaster/SUBSYS.o regex/SUBSYS.o rewrite/SUBSYS.o
storage/SUBSYS.o tcop/SUBSYS.o utils/SUBSYS.o ../utils/version.o
-lgen -lcrypt -lld -lnsl -lsocket -ldl -lm -ltermcap -lcurses
-lc89  -lc89 -Wl,-Bexport -lucb

produces:
UX:ld: ERROR:  fatal error: library not found: -lucb

I've tried different placement of the flag in the cc cmd but the
result is the same.  Ouch.  I've re-read the ld man page but see
no reference to calling the beserkely libs.  At a loss (again).

Tom
----
         North Richmond Community Mental Health Center

         Thomas Good   Information Systems Coordinator
         E-Mail:       tomg@ { admin | q8 } .nrnet.org
         Phone:        718-354-5528
         Fax:          718-354-5056

                 Empowered by PostgreSQL 6.3.2



Re: [GENERAL] UnixWare chokes --- Resolution

От
Thomas Good
Дата:
Bruce - by commenting ecpg out of the interfaces Makefile I got
all of Postgres to compile and have successfully run initdb...

As soon as I can resolve the IpcMemory errors I hope to have this
thing going.

Thanks for all of your help,
Tom
----
         North Richmond Community Mental Health Center

         Thomas Good   Information Systems Coordinator
         E-Mail:       tomg@ { admin | q8 } .nrnet.org
         Phone:        718-354-5528
         Fax:          718-354-5056

                 Empowered by PostgreSQL 6.3.2