I wrote:
> Ugh ... anole just reported in with the same issue, which means it
> exists on HP-UX versions that people might still care about in
> practice.
> I still haven't looked for a fix (real life has intruded more than
> usual right at the moment).
AFAICT, this platform's "ld" doesn't have any simple equivalent of
a version script, but it does have "-B symbolic", which appears to
fix the problem in a quick test. I'm running a more thorough test
now.
The fix I'm able to test looks like
ifeq ($(PORTNAME), hpux)
ifdef SO_MAJOR_VERSION
shlib = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
endif
ifeq ($(with_gnu_ld), yes)
LINK.shared = $(CC) -shared
ifdef soname
LINK.shared += -Wl,-h -Wl,$(soname)
endif
else
- LINK.shared = $(LD) -b
+ LINK.shared = $(LD) -b -B symbolic
ifdef soname
LINK.shared += +h $(soname)
endif
I'm not sure what to do in the with_gnu_ld subsection: building with
GNU ld might or might not have the problem, and if it does, the best
fix might or might not be "-B symbolic". But none of the HPUX animals
in the buildfarm are using GNU ld, so I suspect that that subsection is
dead code. I'm inclined to just add a comment saying that that code
has not been tested recently.
regards, tom lane