Well here's a nice ten-liner that will undo the recent damage to HPUX 32 bit builds using HP's compilers/linkers;
+ cc -b -Wl,-B,symbolic,+vnocompatwarnings,-z,+h,libssl.sl.0.9.7 -o libssl.sl.0.9.7 -Wl,-Fl,libssl.a -ldld chmod: can't access libssl.sl.0.9.7 WTF is it about? Well, used to link using ld directly, now we are passing through cc. But without splitting -Wl,-Fl from libssl.a with a space, therefore without libssl.a as a link input, cc says "ha! nothing to link" and -silently- goes away (leaving the user wondering, for hours, what didn't just happen.) Yes, of course there is no libssl.sl.0.9.7. Secondly, once we remove the space, we crash out with /usr/ccs/bin/ld: CODE_ONE_SYM fixup to non-code subspace in file /opt/langtools/lib/crt0.o - shared library must be position independent. Use +z or +Z to recompile. http://mail.gnome.org/archives/gtk-list/1999-March/msg00704.html reports similar issues, with no resolution on how-to-exclude crt0.o from the 'cc' flavor, so the patch proposes to go back to using ld as worked in 0.9.7e and other releases. Finally -b +s disappeared between 0.9.7e and 0.9.7i, for what reason I do not know, but it certainly is needed on 32 bit builds. Now if the flag interferes with the 64 bit ld/link loader, then perhaps these can go into their own set of 32-bit flavor flags? immediately prior to -Fl? Discussion welcome, I'm happy to play with the 64 bit flavor in about 2-3 weeks when I'm back from ApacheCon. Bill
--- Makefile 21 Oct 2005 18:18:09 -0000 +++ Makefile 7 Dec 2005 00:35:44 -0000 @@ -516,11 +516,11 @@ shlib=lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ fi; \ [ -f $$shlib ] && rm -f $$shlib; \ - ALLSYMSFLAGS='-Wl,-Fl'; \ - expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \ - ( set -x; ${CC} ${SHARED_LDFLAGS} \ - -Wl,-B,symbolic,+vnocompatwarnings,-z,+h,$$shlib \ - -o $$shlib $$ALLSYMSFLAGS,lib$$i.a -ldld ) || exit 1; \ + ALLSYMSFLAGS='-Fl'; \ + expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='+forceload'; \ + ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \ + -B symbolic +vnocompatwarnings -b -z +s +h $$shlib \ + -o $$shlib $$ALLSYMSFLAGS lib$$i.a -ldld -lc ) || exit 1; \ chmod a=rx $$shlib; \ done --- Makefile.org 21 Oct 2005 18:18:09 -0000 +++ Makefile.org 7 Dec 2005 00:35:44 -0000 @@ -516,11 +516,11 @@ shlib=lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ fi; \ [ -f $$shlib ] && rm -f $$shlib; \ - ALLSYMSFLAGS='-Wl,-Fl'; \ - expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \ - ( set -x; ${CC} ${SHARED_LDFLAGS} \ - -Wl,-B,symbolic,+vnocompatwarnings,-z,+h,$$shlib \ - -o $$shlib $$ALLSYMSFLAGS,lib$$i.a -ldld ) || exit 1; \ + ALLSYMSFLAGS='-Fl'; \ + expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='+forceload'; \ + ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \ + -B symbolic +vnocompatwarnings -b -z +s +h $$shlib \ + -o $$shlib $$ALLSYMSFLAGS lib$$i.a -ldld -lc ) || exit 1; \ chmod a=rx $$shlib; \ done