1. 18 3月, 2016 2 次提交
  2. 17 3月, 2016 1 次提交
  3. 16 3月, 2016 1 次提交
  4. 15 3月, 2016 1 次提交
  5. 14 3月, 2016 2 次提交
  6. 09 3月, 2016 1 次提交
  7. 05 3月, 2016 1 次提交
    • R
      No -fno-common for Darwin · 0c873419
      Richard Levitte 提交于
      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: NKurt Roeckx <kurt@openssl.org>
      0c873419
  8. 03 3月, 2016 4 次提交
    • R
      Configure - Get rid of the special thread_cflag, replace with thread_scheme · 9c62a279
      Richard Levitte 提交于
      The thread_cflag setting filled a double role, as kinda sorta an
      indicator of thread scheme, and as cflags.  Some configs also added
      lflags and ex_libs for multithreading regardless of if threading would
      be enabled or not.
      
      Instead of this, add threading cflags among in the cflag setting,
      threading lflags in the lflag setting and so on if and only if threads
      are enabled (which they are by default).
      
      Also, for configs where there are no special cflags for threading (the
      VMS configs are of that kind), this makes it possible to still clearly
      mention what thread scheme is used.
      
      The exact value of thread scheme is currently ignored except when it's
      "(unknown)", and thereby only serves as a flag to tell if we know how
      to build for multi-threading in a particular config.  Yet, the
      currently used values are "(unknown)", "pthreads", "uithreads" (a.k.a
      solaris threads) and "winthreads".
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      9c62a279
    • R
      Configure - get rid of the special debug_ and release_ settings · 8864f0de
      Richard Levitte 提交于
      Instead, make the build type ("debug" or "release") available through
      $config{build_type} and let the configs themselves figure out what the
      usual settings (such as "cflags", "lflags" and so on) should be
      accordingly.
      
      The benefit with this is that we can now have debug and release
      variants of any setting, not just those Configure supports, and may
      also involve other factors (the MSVC flags /MD[d] and /MT[d] involve
      both build type and whether threading is enabled or not)
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      8864f0de
    • R
      Configure - move the addition of the zlib / libz lib to configs · 98fdbce0
      Richard Levitte 提交于
      Configure had the Unix centric addition of -lz when linking with zlib
      is enabled, which doesn't work on other platforms.  Therefore, we move
      it to the BASE_unix config template and add corresponding ones in the
      other BASE_* config templates.  The Windows one is probably incomplete,
      but that doesn't matter for the moment, as mk1mf does it's own thing
      anyway.
      
      This required making the %withargs table global, so perl snippets in
      the configs can use it.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      98fdbce0
    • R
      Configure - Rename BASE to DEFAULTS and add a few inheritable BASEs · d2b2221a
      Richard Levitte 提交于
      These BASE templates are intended to hold values that are common for
      all configuration variants for whole families of configurations.
      
      So far, three "families" are identified: Unix, Windows and VMS, mostly
      characterised by the build system they currently use.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      d2b2221a
  9. 02 3月, 2016 1 次提交
  10. 27 2月, 2016 2 次提交
  11. 26 2月, 2016 1 次提交
  12. 23 2月, 2016 1 次提交
    • R
      Remove all -march= from configs · 893fe73a
      Richard Levitte 提交于
      These flags are limitting needlessly, are often patched by packagers,
      and should be specified on the configuration command line by anyone
      who desires for it to be specific rather than forced by us.
      
      This work was already done with mingw when those configs were worked
      on, now it gets applied to the remaining configs.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      893fe73a
  13. 22 2月, 2016 1 次提交
  14. 20 2月, 2016 1 次提交
  15. 19 2月, 2016 2 次提交
    • R
      Big rename fest of MingW shared libraries · 520f434b
      Richard Levitte 提交于
      So far, MingW shared libraries were named like this
      
        libeay32.dll + libeay32.dll.a
        ssleay32.dll + ssleay32.dll.a
      
      That naming scheme is antiquated, a reminicense of SSLeay.  We're
      therefore changing the scheme to something that's more like the rest
      of OpenSSL.
      
      There are two factors to remember:
      
        - Windows libraries have no recorded SOvers, which means that the
          shared library version must be encoded in the name.  According to
          some, it's unwise to encode extra periods in a Windows file name,
          so we convert version number periods to underscores.
        - MingW has multilib ability.  However, DLLs need to reside with the
          binaries that use them, so to allow both 32-bit and 64-bit DLLs to
          reside in the same place, we add '-x64' in the name of the 64-bit
          ones.
      
      The resulting name scheme (for SOver 1.1) is this:
      
        on x86:
        libcrypto-1_1.dll + libcrypto.dll.a
        libssl-1_1.dll + libssl.dll.a
      
        on x86_64:
        libcrypto-1_1-x64.dll + libcrypto.dll.a
        libssl-1_1-x64.dll + libssl.dll.a
      
      An observation is that the import lib is the same for both
      architectures.  Not to worry, though, as they will be installed in
      PREFIX/lib/ for x86 and PREFIX/lib64/ for x86_64.
      
      As a side effect, MingW got its own targets in Makefile.shared.
      link_dso.mingw-shared and link_app.mingw-shared are aliases for the
      corresponding cygwin-shared targets.  link_shlib.mingw-shared is,
      however, a target separated from the cygwin one.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      520f434b
    • R
      Rethink the uplink / applink story · 3a55c92b
      Richard Levitte 提交于
      Adding uplink and applink to some builds was done by "magic", the
      configuration for "mingw" only had a macro definition, the Configure
      would react to its presence by adding the uplink source files to
      cpuid_asm_src, and crypto/build.info inherited dance to get it
      compiled, and Makefile.shared made sure applink.o would be
      appropriately linked in.  That was a lot under the hood.
      
      To replace this, we create a few template configurations in
      Configurations/00-base-templates.conf, inherit one of them in the
      "mingw" configuration, the rest is just about refering to the
      $target{apps_aux_src} / $target{apps_obj} in the right places.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      3a55c92b
  16. 18 2月, 2016 3 次提交
  17. 16 2月, 2016 1 次提交
  18. 13 2月, 2016 1 次提交
  19. 12 2月, 2016 1 次提交
  20. 11 2月, 2016 2 次提交
  21. 10 2月, 2016 2 次提交
    • R
      unified build scheme: add a "unified" template for VMS descrip.mms · e84193e4
      Richard Levitte 提交于
      As part of this, change util/mkdef.pl to stop adding libraries to
      depend on in its output.  mkdef.pl should ONLY output a symbol
      vector.
      
      Because symbol names can't be longer than 31 characters, we use the
      compiler to shorten those that are longer down to 23 characters plus
      an 8 character CRC.  To make sure users of our header files will pick
      up on that automatically, add the DEC C supported extra headers files
      __decc_include_prologue.h and __decc_include_epilogue.h.
      
      Furthermore, we add a config.com, so VMS people can configure just as
      comfortably as any Unix folks, thusly:
      
          @config
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      e84193e4
    • R
      unified build scheme: add the tweaks to build on Cygwin & Mingw · fcf80c46
      Richard Levitte 提交于
      Cygwin and Mingw name their libraries a bit differently from the rest
      of the POSIXly universe, we need to adapt to that.
      
      In Makefile.tmpl, it means that some hunks will only be output
      conditionally.
      
      This also means that shared_extension for the Cygwin and Mingw
      configurations in Configurations/10-main.conf are changing from .dll.a
      to .dll.  Makefile.shared does a fine job without having them
      specified, and it's much easier to work with tucking an extra .a at
      the end of files in the installation recipes than any amount of name
      rewrites, especially with the support of the SHARED_NAME in the top
      build.info.
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      fcf80c46
  22. 07 2月, 2016 1 次提交
    • R
      Enhance and clear the support of linker flags · c86ddbe6
      Richard Levitte 提交于
      Some time ago, we had a ex_libs configuration setting that could be
      divided into lflags and ex_libs.  These got divided in two settings,
      lflags and ex_libs, and the former was interpreted to be general
      linking flags.
      
      Unfortunately, that conclusion wasn't entirely accurate.  Most of
      those linking were meant to end up in a very precise position on the
      linking command line, just before the spec of libraries the linking
      depends on.
      
      Back to the drawing board, we're diving things further, now having
      lflags, which are linking flags that aren't depending on command line
      position, plib_lflags, which are linking flags that should show up just
      before the spec of libraries to depend on, and finally ex_libs, which
      is the spec of extra libraries to depend on.
      
      Also, documentation is changed in Configurations/README.  This was
      previously forgotten.
      Reviewed-by: NKurt Roeckx <kurt@openssl.org>
      c86ddbe6
  23. 30 1月, 2016 2 次提交
  24. 29 1月, 2016 1 次提交
  25. 28 1月, 2016 1 次提交
    • R
      Remove outdated legacy crypto options · 3e9e810f
      Rich Salz 提交于
      Many options for supporting optimizations for legacy crypto on legacy
      platforms have been removed.  This simplifies the source code and
      does not really penalize anyone.
              DES_PTR (always on)
              DES_RISC1, DES_RISC2 (always off)
              DES_INT (always 'unsigned int')
              DES_UNROLL (always on)
              BF_PTR (always on) BF_PTR2 (removed)
              MD2_CHAR, MD2_LONG (always 'unsigned char')
              IDEA_SHORT, IDEA_LONG (always 'unsigned int')
              RC2_SHORT, RC2_LONG (always 'unsigned int')
              RC4_LONG (only int and char (for assembler) are supported)
              RC4_CHUNK (always long), RC_CHUNK_LL (removed)
              RC4_INDEX (always on)
      And also make D_ENCRYPT macro more clear (@appro)
      
      This is done in consultation with Andy.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      3e9e810f
  26. 22 1月, 2016 1 次提交
    • R
      Refactor config - @MK1MF_Builds out, general build scheme in · 88087414
      Richard Levitte 提交于
      Time to get rid of @MK1MF_Builds and introduce a more flexible
      'build_scheme' configuration key.  Its value may be a string or an
      array of strings, meaning we need to teach resolve_config how to
      handle ARRAY referenses.
      
      The build scheme is a word that selects a function to create the
      appropriate result files for a certain configuration.  Currently valid
      build schemes aer "mk1mf" and "unixmake", the plan is however to add
      at least one other for a more universal build scheme.
      
      Incidently, this also adds the functions 'add' and 'add_before', which
      can be used in a configuration, so instead of having to repeatedly
      write a sub like this:
      
      	key1 => sub { join(" ", @_, "myvalues"); },
      	key2 => sub { join(" ", "myvalues", @_); },
      
      one could write this:
      
      	key1 => add(" ", "myvalues"),
      	key2 => add_before(" ", "myvalues"),
      
      The good point with 'add' and 'add_before' is that they handle
      inheritances where the values are a misture of scalars and ARRAYs.  If
      there are any ARRAY to be found, the resulting value will be an ARRAY,
      otherwise it will be a scalar with all the incoming valued joined
      together with the separator given as first argument to add/add_before.
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      88087414
  27. 18 1月, 2016 2 次提交