Thread: Ultrix port

Ultrix port

From
Alexander Klimov
Date:
Hi all.

After two days of strugle I have compiled pgsql on ultrix, patch is in
attachment. I still can't run `gmake check', because of shell problems
in install.log:

install:    no destination specified
gmake[6]: *** [install-lib-shared] Error 1
gmake[6]: Leaving directory
`/tmp_mnt/hosts/wisdom/NewSoftware/Ask/build/pgsql/src/interfaces/libpq'

With the speed of the box it will take another two days to fix and
check :-)

First problem is sys/socket.h. Here it has no guards in it (like 
#ifdef _SOCKET_H
#endif), so it could not be included twice, and I have to remove its
unnecesarry inclusions.

I have to add src/utils/strdup.o to linking in
src/interfaces/ecpg/preproc and /src/bin/pg_passwd
and I don't shure how to do it in patch (so, it is not there).

.frame in s_lock.c cause error about duplication of .frame for one .ent,
so I just remove it -- and I don't shure I am right. Anybody know how to
deal with it?

sys/ipc.h included from miscadmin.h is needed for sys/sem.h, so I reorder
their inclusion.

There is no dynamic libraries for Ultrix, so I have to download libdl, but
it is not supported by configure (I guess), so I add
LIBS += -L/home/ask/soft/build/libdl -ldl
it is obviously wrong -- should be changed.

BTW: Do anybody know about tool, helping to analize include structure, in
order to eliminate several includes of one file (like case with
sys/socket.h which is unneeded for everybody, who includes libpq-be.h)

Regards,
ASK

Re: Ultrix port

From
Peter Eisentraut
Date:
Alexander Klimov writes:

> After two days of strugle I have compiled pgsql on ultrix, patch is in
> attachment. I still can't run `gmake check', because of shell problems
> in install.log:
>
> install:    no destination specified
> gmake[6]: *** [install-lib-shared] Error 1
> gmake[6]: Leaving directory
> `/tmp_mnt/hosts/wisdom/NewSoftware/Ask/build/pgsql/src/interfaces/libpq'

You either need to add

enable_shared = no

to Makefile.ultrix4, or inform Makefile.shlib about how to build shared
libraries.

> With the speed of the box it will take another two days to fix and
> check :-)

If you're using GCC then configure with --enable-depend to build
dependencies, so you don't have to do make clean everytime.

> First problem is sys/socket.h. Here it has no guards in it (like
> #ifdef _SOCKET_H
> #endif), so it could not be included twice, and I have to remove its
> unnecesarry inclusions.

Since there will be more unnecessary inclusions the next time somebody
touches a file, the ultimately better strategy might be to add such a
wrapper manually.

> I have to add src/utils/strdup.o to linking in
> src/interfaces/ecpg/preproc and /src/bin/pg_passwd
> and I don't shure how to do it in patch (so, it is not there).

See src/bin/psql/Makefile for examples of linking in helper .o files.

> sys/ipc.h included from miscadmin.h is needed for sys/sem.h, so I reorder
> their inclusion.

Better to explicitly include sys/ipc.h again where it's needed.

> There is no dynamic libraries for Ultrix, so I have to download libdl, but
> it is not supported by configure (I guess), so I add
> LIBS += -L/home/ask/soft/build/libdl -ldl
> it is obviously wrong -- should be changed.

There's

AC_CHECK_LIB(dl,       main)

which does what you want, but you need to give your linker a hint where to
find it.  See configure --with-libraries.

> BTW: Do anybody know about tool, helping to analize include structure, in
> order to eliminate several includes of one file (like case with
> sys/socket.h which is unneeded for everybody, who includes libpq-be.h)

Maybe the stuff under

src/tools/pginclude/

helps.

-- 
Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/



Re: Ultrix port

From
Tom Lane
Date:
Alexander Klimov <ask@wisdom.weizmann.ac.il> writes:
> First problem is sys/socket.h. Here it has no guards in it (like 
> #ifdef _SOCKET_H
> #endif), so it could not be included twice, and I have to remove its
> unnecesarry inclusions.

Are you sure these are unnecessary?  What are the odds this patch will
break other platforms?
        regards, tom lane


Re: Ultrix port

From
Alexander Klimov
Date:
On Tue, 27 Mar 2001, Tom Lane wrote:

> Alexander Klimov <ask@wisdom.weizmann.ac.il> writes:
> > First problem is sys/socket.h. Here it has no guards in it (like 
> > #ifdef _SOCKET_H
> > #endif), so it could not be included twice, and I have to remove its
> > unnecesarry inclusions.
> 
> Are you sure these are unnecessary?  What are the odds this patch will
> break other platforms?
I almost shure it is not, because sys/socket.h already included in each of
the files but indirectly, thru libpq-be -> pqcomm, that include it on non
windows platforms. My guess is that tracking and elimination of double
includes of the same file is useful in general, because it at
least decrease compilation time.

Regards,
ASK