Re: [HACKERS] Re: UnixWare

Thomas Good <tomg@nrnet.org>

From: Thomas Good <tomg@nrnet.org>
To: Dmitry Samersoff <dms@wplus.net>
Cc: Andrew Merrill <andrew@thatch2.compclass.com>, pgsql-hackers@hub.org
Date: 1999-06-17T11:23:34Z
Lists: pgsql-hackers
On Thu, 17 Jun 1999, Dmitry Samersoff wrote:

> On 17-Jun-99 Andrew Merrill wrote:
> > compile and run on SCO UnixWare 7, the current version.  

> > I have not been able to compile PostgreSQL 6.5 (or any other version) on 
> > UnixWare 2.  The main problem seems to be that PostgreSQL uses alloca,
> > and I can't find the alloca.h header on my UnixWare 2 system.

Ouch!  Wrong!  I am running UnixWare 2.1.2 and PostgreSQL 6.3.2
with good effect.  In my shop we are saddled with a legacy SCO box that
I will not be sinking any additional monies into.  (We don't plan to 
buy any other SCO products having already purchased enough to draw
a conclusion or two. ;-)

Anyway, rhetoric aside, here is my log on how I compiled using the
stock compiler.  Many thanks to Bruce Momjian who walked me through this.

Andrew, you do have alloca.h on your UW 2.1.2.  It's in /usr/ucblib.
You needed to tell the linker where to find it (see below).

Kak dela Dmitri, and good luck with this.  Remember Bruce M is a valuable
resource and I will also try to help you as much as I am able before you
feel a need to throw money at SCO.

Dobri den (forgive fonetic Rooski!  No cyrillic char set...),
Tom

/**** PostgreSQL Installation ***/

1) # useradd postgres
2) # mkdir /usr/local/pgsql
3) # mkdir /usr/src/pgsql
4) # chown postgres /usr/local/pgsql
5) # chown postgres /usr/src/pgsql
6) # chgrp other /usr/local/pgsql
7) # chgrp other /usr/src/pgsql
8) # /usr/local/bin/gunzip /usr/spool/uucppublic/postgres-6.3.2.tar.gz
9) # su - postgres 
10) $ cd /usr/src/pgsql
11) $ tar xvf /usr/spool/uucppublic/postgres-6.3.2.tar
12) $ cd ./post*
13) $ cd ./src
14) $ cp configure configure.orig
15) $ vi configure...  /TEMPLATE
    change TEMPLATE=template/`uname -s | tr A-Z a-z`
    to     TEMPLATE=template/univel
16) $ gmake all >&make.log &
    flex barfs:  unable to locate /home/local/lib/flex.skel
    FIX: download flex-2.3pl7.tar.Z
    # /usr/local/bin/gunzip /var/spool/uucppublic/flex-2.3pl7.pkg.tar.Z
    # tar xvf flex-2.3pl7.pkg.tar
    # pkgadd -d `pwd`
    # ln -sf /opt/bin/flex /usr/local/bin/flex
17) $ gmake all >&make.log &
    bison barfs...
    FIX: download bison-1.14.pkg.tar.Z
    # /usr/local/bin/gunzip /var/spool/uucppublic/bison-1.14.pkg.tar.Z
    # tar xvf bison-1.14.pkg.tar
    # pkgadd -d `pwd`
    # ln -sf /opt/bin/bison /usr/local/bin/bison
18) After a multitude of warnings, gmake barfs with:
    Undefined symbol   alloca    in file   bootstrap/SUBSYS.o
    Searched libraries:   # nm /usr/lib/*.so* | grep alloca
                          # nm /usr/lib/*.a* | grep alloca
                          # nm /usr/ccs/lib/*.so* | grep alloca
                          # nm /usr/ccs/lib/*.a* | grep alloca
                          # nm /usr/ucblib/*.so* | grep alloca
                          # nm /usr/ucblib/*.a* | grep alloca
    FIX: tail make.log > fixer...edit to add calls to Berkeley libraries
    ( -L/usr/ucblib -lucb )

    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/SUB
    SYS.o storage/SUBSYS.o tcop/SUBSYS.o utils/SUBSYS.o 
    ../utils/version.o -L/usr/ucblib -lucb -lgen -lcrypt -lld 
    -lnsl -lsocket -ldl -lm -ltermcap -lcurses -lc89  -lc89 
    -Wl,-Bexport 
19) After compiling the backend, gmake all barfs when compiling ecpg:
    Undefined			first referenced
     symbol  			    in file
    yyout                               y.tab.o
    yylex                               y.tab.o
    yyin                                ecpg.o
    yytext                              y.tab.o
    alloca                              y.tab.o
    yylineno                            y.tab.o
    lex_init                            ecpg.o
    yyleng                              y.tab.o
    UX:ld: ERROR: ecpg: fatal error: Symbol referencing errors. 
    No output written to ecpg
    gmake[3]: *** [ecpg] Error 1
    gmake[2]: *** [all] Error 2
    gmake[1]: *** [all] Error 2
    gmake: *** [all] Error 2
    Searching all the library files (/usr/lib, /usr/ccs/lib and /usr/ucblib)
    with # nm *.so* | grep $file (yy---, alloca and lex_init)
    and # nm *.a* | grep $file (yy---, alloca and lex_init)
    revealed that lex_init does not exist on this box.
    FIX:  comment ecpg out of the ./interfaces/Makefile
20) postgres user was unable to run initdb...
    FIX:  edit /etc/profile:
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
    export LD_LIBRARY_PATH
    then:    $ initdb --username=postgres
    succeeded.
21) Attempting to fire up the server produced IpcMemoryCreate errors.
    FIX: enlarge shared memory avail in the kernel...
    # /etc/conf/bin/idtune SHMMAX 778240
    # /etc/conf/bin/idbuild -B
22) Installed DBI::DBD in usual manner but perl is too old (5.003).
    Downloading 5.004_04 from www.sco.com/skunkware/uw2/interp/perl/
23) Installed Perl 5.004_04 and reinstalled DBI::DBD
    Error msg when trying to run a dbi script: 
    dynamic linker: /usr/bin/perl: symbol not found: strncasecmp
    FIX: edit /usr/src/perl5/DBD*/Pg.xs, replacing strncasecmp with
    strncmp --- rerun `make' & `make install'.  

    if (!strncmp(statement, "begin",    5) ||
        !strncmp(statement, "end",      4) ||
        !strncmp(statement, "commit",   6) ||
        !strncmp(statement, "abort",    5) ||
        !strncmp(statement, "rollback", 8) ) {
    if (!strncmp(statement, "begin",    5) ||
        !strncmp(statement, "end",      4) ||
        !strncmp(statement, "commit",   6) ||
        !strncmp(statement, "abort",    5) ||
        !strncmp(statement, "rollback", 8) ) {

EOF


> I found another compiler under /udk/usr/ccs/bin, and try to use it,
> but I have lots of configure problems yet.
> 
> PS:
>  I'm completly new in UNIXWARE, sorry for some kind of stupidity in my
> questions ;-))
>  
> 
> ---
> Dmitry Samersoff, dms@wplus.net, ICQ:3161705
> http://devnull.wplus.net
> * There will come soft rains ...
> 


------- North Richmond Community Mental Health Center -------

Thomas Good                                   MIS Coordinator
Vital Signs:                  tomg@ { admin | q8 } .nrnet.org
                                          Phone: 718-354-5528  
                                          Fax:   718-354-5056  
                              
/* Member: Computer Professionals For Social Responsibility */