1. 09 3月, 2018 1 次提交
    • R
      Make "make variables" config attributes for overridable flags · abe256e7
      Richard Levitte 提交于
      With the support of "make variables" comes the possibility for the
      user to override them.  However, we need to make a difference between
      defaults that we use (and that should be overridable by the user) and
      flags that are crucial for building OpenSSL (should not be
      overridable).
      
      Typically, overridable flags are those setting optimization levels,
      warnings levels, that kind of thing, while non-overridable flags are,
      for example, macros that indicate aspects of how the config target
      should be treated, such as L_ENDIAN and B_ENDIAN.
      
      We do that differentiation by allowing upper case attributes in the
      config targets, named exactly like the "make variables" we support,
      and reserving the lower case attributes for non-overridable project
      flags.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/5534)
      abe256e7
  2. 07 3月, 2018 1 次提交
  3. 28 2月, 2018 1 次提交
  4. 26 2月, 2018 1 次提交
    • R
      Make it possible to give --libdir an absolute path · e454f3ad
      Richard Levitte 提交于
      With this, we introduce the make variable 'libdir', which differs from
      'LIBDIR' not only in casing, but also by being the absolute path to
      the library installation directory.  This variable is intentionally
      compatible with the GNU coding standards.
      
      When --libdir is given an absolute path, it is considered as a value
      according to GNU coding standards, and the variables LIBDIR and libdir
      will be this:
      
          LIBDIR=
          libdir=/absolute/path
      
      When --libdir is given a relative path (just the name of the desired
      library directory), or not given at all, it is considered as a
      "traditional" OpenSSL value, and the variables LIBDIR and libdir will
      be this:
      
          LIBDIR=relativepath
          libdir=$(INSTALLTOP)/$(LIBDIR)
      
      Fixes #5398
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/5446)
      e454f3ad
  5. 23 2月, 2018 1 次提交
  6. 22 2月, 2018 3 次提交
  7. 15 2月, 2018 1 次提交
    • R
      Harmonize the make variables across all known platforms families · 722c9762
      Richard Levitte 提交于
      The make variables LIB_CFLAGS, DSO_CFLAGS and so on were used in
      addition to CFLAGS and so on.  This works without problem on Unix and
      Windows, where options with different purposes (such as -D and -I) can
      appear anywhere on the command line and get accumulated as they come.
      This is not necessarely so on VMS.  For example, macros must all be
      collected and given through one /DEFINE, and the same goes for
      inclusion directories (/INCLUDE).
      
      So, to harmonize all platforms, we repurpose make variables starting
      with LIB_, DSO_ and BIN_ to be all encompassing variables that
      collects the corresponding values from CFLAGS, CPPFLAGS, DEFINES,
      INCLUDES and so on together with possible config target values
      specific for libraries DSOs and programs, and use them instead of the
      general ones everywhere.
      
      This will, for example, allow VMS to use the exact same generators for
      generated files that go through cpp as all other platforms, something
      that has been impossible to do safely before now.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/5357)
      722c9762
  8. 14 2月, 2018 1 次提交
  9. 09 2月, 2018 1 次提交
  10. 08 2月, 2018 1 次提交
  11. 30 1月, 2018 2 次提交
  12. 28 1月, 2018 3 次提交
  13. 23 1月, 2018 2 次提交
  14. 08 1月, 2018 1 次提交
    • R
      Separate general linking flags from extra libraries · 47eeaf45
      Richard Levitte 提交于
      So far, we've placed all extra library related flags together, ending
      up in the make variable EX_LIBS.  This turns out to be problematic, as
      for example, some compilers don't quite agree with something like
      this:
      
          cc -o foo foo.o -L/whatever -lsomething
      
      They prefer this:
      
          cc -L/whatever -o foo foo.o -lsomething
      
      IBM's compiler on OS/390 is such a compiler that we know of, and we
      have previously handled that as a previous case.
      
      The answer here is to make a more general solution, where linking
      options are divided in two parts, where one ends up in LDFLAGS and
      the other in EX_LIBS (they corresponds to what is called LDFLAGS and
      LDLIBS in the GNU world)
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/5033)
      47eeaf45
  15. 18 12月, 2017 1 次提交
  16. 16 12月, 2017 1 次提交
  17. 13 12月, 2017 2 次提交
    • R
      Build file templates: Replace the use of Makefile.shared · 81183680
      Richard Levitte 提交于
      Because this also includes handling all sorts of non-object files when
      linking a program, shared library or DSO, this also includes allowing
      general recognition of files such as .res files (compiled from .rc
      files), or .def / .map / .opt files (for export and possibly
      versioning of public symbols only).
      
      This does mean that there's a tangible change for all build file
      templates: they must now recognise and handle the `.o` extension,
      which is used internally to recognise object files internally.  This
      extension was removed by common.tmpl before this change, but would
      mean that the platform specific templates wouldn't know if "foo.map"
      was originally "foo.map.o" (i.e. an object file in its own right) or
      "foo.map" (an export definition file that should be treated as such,
      not as an object file).
      
      For the sake of simplifying things, we also modify util/mkdef.pl to
      produce .def (Windows) and .opt (VMS) files that don't need additional
      hackery.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/4840)
      81183680
    • R
      Configure: Read in extra information to help create shared libraries · 793077d0
      Richard Levitte 提交于
      This will replace the use of Makefile.shared
      
      This also means a small adjustment on how the attributes dso_cflags,
      dso_cxxflags and dso_lflags are treated.  They were previously treated
      as an extension to shared_cflag, shared_cxxflag and shared_ldflag, but
      they should really be regarded as alternatives instead, for example
      for darwin, where -dynamiclib is used for shared libraries and -bundle
      for DSOs.
      
      We take the opportunity to clean out things that are redundant or
      otherwise superfluous (for example the check of GNU ld on platforms
      where it never existed).
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/4840)
      793077d0
  18. 01 12月, 2017 1 次提交
    • V
      Make possible variant SONAMEs and symbol versions · 822b5e26
      Viktor Dukhovni 提交于
      This small change in the Unix template and shared library build
      scripts enables building "variant" shared libraries.  A "variant"
      shared library has a non-default SONAME, and non default symbol
      versions.  This makes it possible to build (say) an OpenSSL 1.1.0
      library that can coexist without conflict in the same process address
      space as the system's default OpenSSL library which may be OpenSSL
      1.0.2.
      
      Such "variant" shared libraries make it possible to link applications
      against a custom OpenSSL library installed in /opt/openssl/1.1 or
      similar location, and not risk conflict with an indirectly loaded
      OpenSSL runtime that is required by some other dependency.
      
      Variant shared libraries have been fully tested under Linux, and
      build successfully on MacOS/X producing variant DYLD names.  MacOS/X
      Darwin has no symbol versioning, but has a non-flat library namespace.
      Variant libraries may therefore support multiple OpenSSL libraries
      in the same address space also with MacOS/X, despite lack of symbol
      versions, but this has not been verified.
      
      Variant shared libraries are optional and off by default.
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      822b5e26
  19. 09 11月, 2017 1 次提交
  20. 01 11月, 2017 1 次提交
  21. 09 10月, 2017 1 次提交
  22. 25 8月, 2017 1 次提交
  23. 18 8月, 2017 3 次提交
  24. 17 8月, 2017 1 次提交
  25. 27 7月, 2017 1 次提交
    • R
      Simplify the handling of shared library version numbers · d4453024
      Richard Levitte 提交于
      $(SHLIB_MAJOR).$(SHLIB_MINOR) is really a synonym for
      $(SHLIB_VERSION_NUMBER), and is therefore an added complexity,
      so better to use $(SHLIB_VERSION_NUMBER) directly.  SHLIB_MAJOR and
      SHLIB_MINOR are now unused, but are kept around purely as information
      in case someone relies on their existence.
      
      At the same time, add support for custom shared library extensions
      with the three new Makefile variables SHLIB_EXT, SHLIB_EXT_SIMPLE and
      SHLIB_EXT_IMPORT.  By default, they hold the variants of shared
      library extensions we support.  On mingw and cygwin, SHLIB_EXT_IMPORT
      is defined; on all other Unix platforms, it's empty.
      
      An example to get shared libraries with a slightly different SOVER name:
      
          $ make SHLIB_EXT='.$(SHLIB_VERSION_NUMBER).so'
      
      Fixes #3902
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/3964)
      d4453024
  26. 24 7月, 2017 1 次提交
    • R
      Simplify Makefile.shared · d07abe13
      Richard Levitte 提交于
      Makefile.shared was designed to figure out static library names,
      shared library names, library version compatibility, import library
      names and the like on its own.  This was a design for pre-1.1.0
      OpenSSL because the main Makefile didn't have all that knowledge.
      
      With 1.1.0, the situation isn't the same, a lot more knowledge is
      included in the main Makefile, and while Makefile.shared did things
      right most of the time (there are some corner cases, such as the
      choice of .sl or .so as DSO extension on some HPUX versions), there's
      still an inherent fragility when one has to keep an eye on
      Makefile.shared to make sure it produces what the main Makefile
      produces.
      
      This change simplifies Makefile.shared by removing all its
      "intelligence" and have it depend entirely on the input from the main
      Makefile instead.  That way, all the naming is driven from
      configuration data.
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/3983)
      d07abe13
  27. 30 6月, 2017 1 次提交
  28. 16 6月, 2017 2 次提交
  29. 09 6月, 2017 1 次提交
  30. 08 6月, 2017 1 次提交
    • R
      make error tables const and separate header file · 52df25cf
      Rich Salz 提交于
      Run perltidy on util/mkerr
      Change some mkerr flags, write some doc comments
      Make generated tables "const" when genearting lib-internal ones.
      Add "state" file for mkerr
      Renerate error tables and headers
      Rationalize declaration of ERR_load_XXX_strings
      Fix out-of-tree build
      Add -static; sort flags/vars for options.
      Also tweak code output
      Moved engines/afalg to engines (from master)
      Use -static flag
      Standard engine #include's of errors
      Don't linewrap err string tables unless necessary
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/3392)
      52df25cf