Re: [PORTS] built 6.4.2 on SCO OpenServer 5.0.5 - Mailing list pgsql-ports

From Bruce Momjian
Subject Re: [PORTS] built 6.4.2 on SCO OpenServer 5.0.5
Date
Msg-id 199905100449.AAA23473@candle.pha.pa.us
Whole thread Raw
In response to built 6.4.2 on SCO OpenServer 5.0.5  (Andrew Merrill <andrew@compclass.com>)
List pgsql-ports
Hackers, where are we on this one?


> I recently successfully built PostgreSQL 6.4.2 on SCO OpenServer 5.0.5,
> using SCO's UDK compiler.
>
> (For those not familiar with SCO, they have two distinct product lines,
> OpenServer and UnixWare, both current and supported by SCO.  It would be
> nice if PostgreSQL continued to work on both.  OpenServer is SVR3.2
> based, and UnixWare 7 is SVR5 based.)
>
> SCO's UDK compiler is their UnixWare compiler, but it runs on UnixWare
> 7, UnixWare 2.1.X, and OpenServer 5.X, and produces binaries that will
> run on all three platforms.  I have not tried the native SCO OpenServer
> compiler yet.
>
> The biggest problem is in pgsql/src/backend/libpq/pqcomm.c.
>
> In the StreamServerPort() function, on line 534, setsockopt() is used to
> set the socket to SO_REUSEADDR.  This fails under OpenServer for UNIX
> domain sockets (family AF_UNIX).  It works fine for AF_INET sockets.
> So, I surrounded the call to setsockopt() with an check for the correct
> family:
>
>  if (family == AF_INET) {
>
>      if ((setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *) &one,
> sizeof(one))) == -1)
>     {
>         sprintf(PQerrormsg,
>             "FATAL: StreamServerPort: setsockopt (SO_REUSEADDR) failed:
> errno=%d\n", errno);
>         fputs(PQerrormsg, stderr);
>         pqdebug("%s", PQerrormsg);
>         return STATUS_ERROR;
>     }
>
> }
>
> However, I don't know enough about UNIX domain sockets to know if this
> is really a good idea or not.  (Help, please?)  I always use TCP/IP for
> my own work anyway.
>
> If you are using SCO's UDK, you are essentially pretending that you are
> using UnixWare.  So, you need to also make the following changes:
>
> In pgsql/src/include/port, replace sco.h with unixware.h.
>
> In pgsql/src/template/sco, replace the CFLAGS line with:
>
> CFLAGS:-O -Kpentium,host,inline,loop_unroll,alloca
>
> If you installed bison and flex (I did; they're on SCO's SkunkWare CD),
> then also change the YACC and LEX lines in the same file to:
>
> YACC:bison
> LEX:flex
>
> If you want to use the readline library with psql (so you can use the
> up-arrow to get previous commands, etc.), make sure to install the
> *UnixWare* version from the SkunkWare CD, as the OpenServer version on
> the CD is not compatible with the new UDK compiler.
>
> Make sure that you have '.' (period) in your PATH when you build.
>
> The command line I used for configure was:
>
> configure --with-libs=/usr/local/lib --with-includes=/usr/local/include
> --without-CXX
>
> I haven't been able to build the C++ interface with the UDK, so I just
> disable it.
>
> This worked for me; ask if you have any trouble.
>
> Andrew Merrill
>
>
>


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

pgsql-ports by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [PORTS] Port Bug Report: psql create/drop table bug
Next
From: Unprivileged user
Date:
Subject: Port Bug Report: yacc: table size exceed