Thread: Ultrix port
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
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/
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
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