From: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Andrew Merrill <andrew(at)compclass(dot)com> |
Cc: | pgsql-ports(at)hub(dot)org, jboris(at)adphila(dot)org |
Subject: | Re: [PORTS] built 6.4.2 on SCO OpenServer 5.0.5 |
Date: | 1999-07-07 03:01:08 |
Message-ID: | 199907070301.XAA01494@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-ports |
We have integrated most of your suggestions in 6.5. We now have sco and
unixware template files.
> 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(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
From | Date | Subject | |
---|---|---|---|
Next Message | Unprivileged user | 1999-07-07 08:20:11 | Port Bug Report: No primary key possible with type reltime & timestamp |
Previous Message | Bruce Momjian | 1999-07-07 02:22:14 | Re: [PORTS] Port Bug Report: Problem concerns copy command with big oids |