• Tom Lane's avatar
    Fix cross-shlib linking in temporary installs on HPUX 10. · d2ab1176
    Tom Lane authored
    Turns out this has been broken for years and we'd not noticed.  The one
    case that was getting exercised in the buildfarm, or probably anywhere
    else, was postgres_fdw.sl's reference to libpq.sl; and it turns out that
    that was always going to libpq.sl in the actual installation directory
    not the temporary install.  We'd not noticed because the buildfarm script
    does "make install" before it tests contrib.  However, the recent addition
    of a logical-replication test to the core regression scripts resulted in
    trying to use libpqwalreceiver.sl before "make install" happens, and that
    failed for lack of finding libpq.sl, as shown by failures on buildfarm
    members gaur and pademelon.
    
    There are two changes needed to fix it: the magic environment variable to
    specify shlib search path at runtime is SHLIB_PATH not LD_LIBRARY_PATH,
    and the shlib link command needs to specify the +s switch else the library
    will not honor SHLIB_PATH.
    
    I'm not quite sure why buildfarm members anole and gharial (HPUX 11) didn't
    show the same failure.  Consulting man pages on the web says that HPUX 11
    honors both LD_LIBRARY_PATH and SHLIB_PATH, which would explain half of it,
    and the rather confusing wording I've been able to find suggests that +s
    might effectively be the default in HPUX 11.  But it seems at least as
    likely that there's just a libpq.so installed in /usr/lib on that machine;
    as long as it's not too ancient, that would satisfy the test.  In any case
    I do not think this patch will break HPUX 11.
    
    At the moment I don't see a need to back-patch this, since it only matters
    for testing purposes, not to mention that HPUX 10 is probably dead in the
    real world anyway.
    d2ab1176
Makefile.shlib 15.9 KB