X-Git-Url: https://git.openssl.org/?a=blobdiff_plain;f=Makefile.shared;h=208382ef7dc90653afe441e858983aeea0facb67;hb=4034c38b25b44773660f7427acfcdbbb56f47907;hp=6e53c2de188865297defc69280c9945580bbd03c;hpb=1dc02bbaf5fbce9ad13e0adaad9521b4d2ee21bc;p=openssl.git diff --git a/Makefile.shared b/Makefile.shared index 6e53c2de18..208382ef7d 100644 --- a/Makefile.shared +++ b/Makefile.shared @@ -170,16 +170,16 @@ link_a.gnu: link_app.gnu: @ $(DO_GNU_APP); $(LINK_APP) -DO_BEOS_SO= SHLIB=lib$(LIBNAME).so; \ +link_a.linux-shared: + @if [ $(LIBNAME) != "crypto" -a $(LIBNAME) != "ssl" ]; then echo libname is $(LIBNAME); sleep 2; $(DO_GNU_SO); else \ + $(PERL) util/mkdef.pl $(LIBNAME) linux >$(LIBNAME).map; \ + $(CALC_VERSIONS); \ + SHLIB=lib$(LIBNAME).so; \ SHLIB_SUFFIX=; \ - ALLSYMSFLAGS='-Wl,--whole-archive'; \ + ALLSYMSFLAGS='-Wl,--whole-archive,--version-script=$(LIBNAME).map'; \ NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ - SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SUFFIX" - -link_o.beos: - @ $(DO_BEOS_SO); $(LINK_SO_O) -link_a.beos: - @ $(DO_BEOS_SO); $(LINK_SO_A) + SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \ + fi; $(LINK_SO_A) link_o.bsd: @if $(DETECT_GNU_LD); then $(DO_GNU_SO); else \ @@ -221,13 +221,15 @@ link_app.bsd: # order to provide compatibility with pre-10.4 dlopen, modules are # linked with -bundle flag, which makes .dylib extension misleading. # It works, because dlopen is [and always was] extension-agnostic. +# Alternative to this heuristic approach is to develop specific +# MacOS X dso module relying on whichever "native" dyld interface. link_o.darwin: @ $(CALC_VERSIONS); \ SHLIB=lib$(LIBNAME); \ SHLIB_SUFFIX=.dylib; \ ALLSYMSFLAGS='-all_load'; \ NOALLSYMSFLAGS=''; \ - SHAREDFLAGS="$(CFLAGS) `echo $(SHARED_LDFLAGS) | sed s/dynamiclib/bundle/"; \ + SHAREDFLAGS="$(CFLAGS) `echo $(SHARED_LDFLAGS) | sed s/dynamiclib/bundle/`"; \ if [ -n "$(LIBVERSION)" ]; then \ SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \ fi; \ @@ -553,28 +555,10 @@ link_app.aix: LDFLAGS="$(CFLAGS) -Wl,-brtl,-blibpath:$(LIBRPATH):$${LIBPATH:-/usr/lib:/lib}"; \ $(LINK_APP) -link_o.reliantunix: - @ $(CALC_VERSIONS); \ - SHLIB=lib$(LIBNAME).so; \ - SHLIB_SUFFIX=; \ - ALLSYMSFLAGS=; \ - NOALLSYMSFLAGS=''; \ - SHAREDFLAGS='$(CFLAGS) -G'; \ - $(LINK_SO_O) -link_a.reliantunix: - @ $(CALC_VERSIONS); \ - SHLIB=lib$(LIBNAME).so; \ - SHLIB_SUFFIX=; \ - ALLSYMSFLAGS=; \ - NOALLSYMSFLAGS=''; \ - SHAREDFLAGS='$(CFLAGS) -G'; \ - $(LINK_SO_A_UNPACKED) -link_app.reliantunix: - $(LINK_APP) # Targets to build symbolic links when needed symlink.gnu symlink.solaris symlink.svr3 symlink.svr5 symlink.irix \ -symlink.aix symlink.reliantunix: +symlink.aix: @ $(CALC_VERSIONS); \ SHLIB=lib$(LIBNAME).so; \ $(SYMLINK_SO) @@ -589,11 +573,11 @@ symlink.hpux: expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \ $(SYMLINK_SO) # The following lines means those specific architectures do no symlinks -symlink.cygwin symlink.alpha-osf1 symlink.tru64 symlink.tru64-rpath symlink.beos: +symlink.cygwin symlink.alpha-osf1 symlink.tru64 symlink.tru64-rpath: # Compatibility targets link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared: link_o.gnu -link_a.bsd-gcc-shared link_a.linux-shared link_a.gnu-shared: link_a.gnu +link_a.bsd-gcc-shared link_a.gnu-shared: link_a.gnu link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared: link_app.gnu symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-shared: symlink.gnu link_o.bsd-shared: link_o.bsd @@ -643,11 +627,3 @@ link_o.aix-shared: link_o.aix link_a.aix-shared: link_a.aix link_app.aix-shared: link_app.aix symlink.aix-shared: symlink.aix -link_o.reliantunix-shared: link_o.reliantunix -link_a.reliantunix-shared: link_a.reliantunix -link_app.reliantunix-shared: link_app.reliantunix -symlink.reliantunix-shared: symlink.reliantunix -link_o.beos-shared: link_o.beos -link_a.beos-shared: link_a.beos -link_app.beos-shared: link_app.gnu -symlink.beos-shared: symlink.beos