Simplify the generation of ld scripts for Linux and Solaris
authorRichard Levitte <levitte@openssl.org>
Mon, 15 Feb 2016 17:19:49 +0000 (18:19 +0100)
committerRichard Levitte <levitte@openssl.org>
Fri, 19 Feb 2016 10:51:23 +0000 (11:51 +0100)
Because we know for certain that the link_shlib targets are used
exclusively for shared libraries (libcrypto and libssl) and that they
must have an associated .num file, we don't need to check the library
name to produce an ld script.  Just do it unconditionally.

link_shlib.linux-shared can be simplified further, as most of it is
exactly the same as $(DO_GNU_SO) with just one variable modification.

Reviewed-by: Andy Polyakov <appro@openssl.org>
Makefile.shared

index bc4beab0b4b06134a7825ee191407a98b355a242..83bc265cd6c52d2b7abab171fa09469192b92088 100644 (file)
@@ -187,15 +187,10 @@ link_app.gnu:
        @ $(DO_GNU_APP); $(LINK_APP)
 
 link_shlib.linux-shared:
        @ $(DO_GNU_APP); $(LINK_APP)
 
 link_shlib.linux-shared:
-       @if [ $(LIBNAME) != "crypto" -a $(LIBNAME) != "ssl" ]; then $(DO_GNU_SO); else \
-       $(PERL) $(SRCDIR)/util/mkdef.pl $(LIBNAME) linux >$(LIBNAME).map; \
-       $(CALC_VERSIONS); \
-       SHLIB=lib$(LIBNAME).so; \
-       SHLIB_SUFFIX=; \
+       @$(PERL) $(SRCDIR)/util/mkdef.pl $(LIBNAME) linux >$(LIBNAME).map; \
+       $(DO_GNU_SO); \
        ALLSYMSFLAGS='-Wl,--whole-archive,--version-script=$(LIBNAME).map'; \
        ALLSYMSFLAGS='-Wl,--whole-archive,--version-script=$(LIBNAME).map'; \
-       NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
-       SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
-       fi; $(LINK_SO_SHLIB)
+       $(LINK_SO_SHLIB)
 
 link_dso.bsd:
        @if $(DETECT_GNU_LD); then $(DO_GNU_SO_NOCALC); else \
 
 link_dso.bsd:
        @if $(DETECT_GNU_LD); then $(DO_GNU_SO_NOCALC); else \
@@ -369,12 +364,8 @@ link_shlib.solaris:
                $(CALC_VERSIONS); \
                SHLIB=lib$(LIBNAME).so; \
                SHLIB_SUFFIX=;\
                $(CALC_VERSIONS); \
                SHLIB=lib$(LIBNAME).so; \
                SHLIB_SUFFIX=;\
-               if [ $(LIBNAME) != "crypto" -a $(LIBNAME) != "ssl" ]; then \
-                       ALLSYMSFLAGS="-Wl,-z,allextract"; \
-               else \
-                       $(PERL) $(SRCDIR)/util/mkdef.pl $(LIBNAME) linux >$(LIBNAME).map; \
-                       ALLSYMSFLAGS="-Wl,-z,allextract,-M,$(LIBNAME).map"; \
-               fi; \
+               $(PERL) $(SRCDIR)/util/mkdef.pl $(LIBNAME) linux >$(LIBNAME).map; \
+               ALLSYMSFLAGS="-Wl,-z,allextract,-M,$(LIBNAME).map"; \
                NOALLSYMSFLAGS="-Wl,-z,defaultextract"; \
                SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -Wl,-Bsymbolic"; \
        fi; \
                NOALLSYMSFLAGS="-Wl,-z,defaultextract"; \
                SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -Wl,-Bsymbolic"; \
        fi; \