[openssl-commits] [openssl] master update

Richard Levitte levitte at openssl.org
Sat Mar 5 11:10:43 UTC 2016

The branch master has been updated
       via  0c8734198d4282f6997965a03cd2e0ceaf207549 (commit)
      from  a2ed050328b47163a67333389a83dd157d2d038c (commit)

- Log -----------------------------------------------------------------
commit 0c8734198d4282f6997965a03cd2e0ceaf207549
Author: Richard Levitte <levitte at openssl.org>
Date:   Fri Mar 4 13:48:59 2016 +0100

    No -fno-common for Darwin
    When object files with common block symbols are added to static
    libraries on Darwin, those symbols are invisible to the linker that
    tries to use them.  Our solution was to use -fno-common when compiling
    C source.
    Unfortunately, there is assembler code that defines OPENSSL_ia32cap_P
    as a common block symbol, unconditionally, and in some cases, there is
    no other definition.  -fno-common doesn't help in this case.
    However, 'ranlib -c' adds common block symbols to the index of the
    static library, which makes them visible to the linker using it, and
    that solves the problem we've seen.
    The common conclusion is, either use -fno-common or ranlib -c on
    Darwin.  Since we have common block symbols unconditionally, choosing
    the method for our source is easy.
    Reviewed-by: Kurt Roeckx <kurt at openssl.org>


Summary of changes:
 Configurations/10-main.conf | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
index 6fade98..576ac45 100644
--- a/Configurations/10-main.conf
+++ b/Configurations/10-main.conf
@@ -1422,8 +1422,9 @@ sub combine {
         thread_scheme    => "pthreads",
         perlasm_scheme   => "osx32",
         dso_scheme       => "dlfcn",
+        ranlib           => "ranlib -c",
         shared_target    => "darwin-shared",
-        shared_cflag     => "-fPIC -fno-common",
+        shared_cflag     => "-fPIC",
         shared_ldflag    => "-dynamiclib",
         shared_extension => ".\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",

More information about the openssl-commits mailing list