X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=Makefile.shared;h=ce6775b4b38a6535f3248dbfbf7c6585a795c28c;hp=5d8692add4316d897a348265879d599940fe6c77;hb=00555c2f2fa65701b40402f4bf47fc450bd5523d;hpb=bc1ca8605c1c57723a6de90857fbc46c2e486acc diff --git a/Makefile.shared b/Makefile.shared index 5d8692add4..ce6775b4b3 100644 --- a/Makefile.shared +++ b/Makefile.shared @@ -583,26 +583,25 @@ link_app.irix: fi; \ $(LINK_APP) -# HP-UX includes the full pathname of libs we depend on, so we would get -# ./libcrypto (with ./ as path information) compiled into libssl, hence -# we omit the SHLIBDEPS. Applications must be linked with -lssl -lcrypto -# anyway. -# The object modules are loaded from lib$i.a using the undocumented -Fl -# option. -# -# WARNING: Until DSO is fixed to support a search path, we support SHLIB_PATH -# by temporarily specifying "+s"! +# 32-bit PA-RISC HP-UX embeds the -L pathname of libs we link with, so +# we compensate for it with +cdp ../: and +cdp ./:. Yes, these rewrite +# rules imply that we can only link one level down in catalog structure, +# but that's what takes place for the moment of this writing. +cdp option +# was introduced in HP-UX 11.x and applies in 32-bit PA-RISC link +# editor context only [it's simply ignored in other cases, which are all +# ELFs by the way]. # link_o.hpux: @if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \ $(CALC_VERSIONS); \ SHLIB=lib$(LIBNAME).sl; \ + expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \ SHLIB_SUFFIX=; \ LIBDEPS="$(LIBDEPS)"; \ ALLSYMSFLAGS='-Wl,-Fl'; \ NOALLSYMSFLAGS=''; \ expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \ - SHAREDFLAGS="-Wl,+vnocompatwarnings,-z,+s,+cdp,../:,+cdp,./:,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+b,$(LIBRPATH)"; \ + SHAREDFLAGS="-Wl,-B,symbolic,+vnocompatwarnings,-z,+s,+cdp,../:,+cdp,./:,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+b,$(LIBRPATH)"; \ SHAREDCMD=$(CC); \ fi; \ $(LINK_SO_O) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX @@ -610,12 +609,13 @@ link_a.hpux: @if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \ $(CALC_VERSIONS); \ SHLIB=lib$(LIBNAME).sl; \ + expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \ SHLIB_SUFFIX=; \ LIBDEPS="$(LIBDEPS)"; \ ALLSYMSFLAGS='-Wl,-Fl'; \ NOALLSYMSFLAGS=''; \ expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \ - SHAREDFLAGS="-Wl,+vnocompatwarnings,-z,+s,+cdp,../:,+cdp,./:,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+b,$(LIBRPATH)"; \ + SHAREDFLAGS="-Wl,-B,symbolic,+vnocompatwarnings,-z,+s,+cdp,../:,+cdp,./:,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+b,$(LIBRPATH)"; \ SHAREDCMD='$(CC)'; \ fi; \ $(LINK_SO_A) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX @@ -696,6 +696,7 @@ symlink.darwin: symlink.hpux: @ $(CALC_VERSIONS); \ SHLIB=lib$(LIBNAME).sl; \ + expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \ $(SYMLINK_SO) # The following lines means those specific architectures do no symlinks symlink.cygwin symlib.alpha-osf1 symlink.tru64 symlink.tru64-rpath: