Thread

  1. Ultrix port

    Alexander Klimov <ask@wisdom.weizmann.ac.il> — 2001-03-27T17:14:17Z

    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
    
  2. Re: Ultrix port

    Peter Eisentraut <peter_e@gmx.net> — 2001-03-27T18:10:17Z

    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/
    
    
    
  3. Re: Ultrix port

    Tom Lane <tgl@sss.pgh.pa.us> — 2001-03-27T18:14:40Z

    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
    
    
  4. Re: Ultrix port

    Alexander Klimov <ask@wisdom.weizmann.ac.il> — 2001-03-29T09:18:16Z

    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