1. 15 May, 2020 1 commit
    • cmake: Sort source files for reproducible builds · b85eefb4
      We currently use `FILE(GLOB ...)` in most places to find source and
      header files. This is problematic in that the order of files returned
      depends on the operating system's directory iteration order and may thus
      not be deterministic. As a result, we link object files in unspecified
      order, which may cause the linker to emit different code across runs.
      
      Fix this issue by sorting all code used as input to the libgit2 library
      to improve the reliability of reproducible builds.
      Patrick Steinhardt committed
  2. 24 Jun, 2019 1 commit
  3. 11 Jun, 2019 1 commit
  4. 30 Aug, 2018 1 commit
    • docs: clarify and include licenses of dependencies · 2e0f926e
      While our contribution guide tries to make clear the licenses that apply
      to libgit2, it does not make clear that different licenses apply to our
      bundled dependencies. Make this clear by listing each dependency
      together with the licenses that they are governed by. Furthermore,
      bundle the complete license texts next to the code they apply to.
      Patrick Steinhardt committed
  5. 22 Jun, 2018 1 commit
    • deps: fix implicit fallthrough warning in http-parser · cacbf998
      GCC 7 has introduced new warnings for implicit fallthrough in switch
      statements. Whenever there is no branch in a case block, GCC will watch
      out for some heuristics which indicate that the implicit fallthrough is
      intended, like a "fallthrough" comment. The third-party http-parser code
      manages to trick this heuristic in one case, even though there is a
      "FALLTHROUGH" comment. Fortunately, GCC has also added a strictness
      level to the -Wimplicit-fallthrough diagnostic, such that we can loosen
      this heuristic and make it more lax.
      
      Set -Wimplicit-fallthrough=1 in http-parser's CMake build instructions,
      which is the strictest level that gets rid of the warning. This level
      will treat any kind of comment as a "fallthrough" comment, which
      silences the warning.
      Patrick Steinhardt committed
  6. 20 Sep, 2017 1 commit
    • cmake: fix static linking for bundled deps · 8c19969a
      Our bundled deps are being built as simple static libraries which are
      then linked into the libgit2 library via `TARGET_LINK_LIBRARIES`. While
      this works for a dynamically built libgit2 library, using this function
      to link two static libraries does not have the expected outcome of
      merging those static libraries into one big library. This leads to
      symbols of our bundled deps being undefined in the resulting libgit2
      archive.
      
      As we have bumped our minimum CMake version to 2.8.11, we can now easily
      make use of object libraries for our bundled dependencies. So build
      instructions are still self-contained inside of the dependency
      directories and the resulting object libraries can just be added to the
      LIBGIT2_OBJECTS list, which will cause them to be linked into the final
      resulting static library. This fixes the issue of undefined symbols.
      Patrick Steinhardt committed
  7. 16 Aug, 2017 1 commit
  8. 28 Dec, 2015 1 commit
  9. 22 Dec, 2015 1 commit
  10. 05 Dec, 2014 2 commits
  11. 05 Aug, 2014 1 commit
  12. 23 Nov, 2012 1 commit
  13. 12 Nov, 2012 1 commit
  14. 05 Oct, 2011 1 commit
  15. 29 Sep, 2011 1 commit
  16. 28 Sep, 2011 3 commits
  17. 27 Sep, 2011 3 commits
    • Really fix MSVC · a5b0e7f8
      These was left over from the previous PRs.
      
      Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
      Carlos Martín Nieto committed
    • Fix dev branch under MSVC · 887eaf4d
      In libgit2: Move an enum out of an int bitfield in the HTTP transport.
      
      In the parser: Use int bitfields and change some variable sizes to
      better fit thir use. Variables that count the size of the data chunk
      can only ever be as large as off_t. Warning 4127 can be ignored, as
      nobody takes it seriously anyway.
      
      From Emeric: change some variable declarations to keep MSVC happy.
      
      Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
      Carlos Martín Nieto committed
    • http-parser: Do not use bitfields · dc5c8781
      Bitfields suck. And if you make them with non-int types, they suck
      in a non-standards compliant way. Like sucking sideways or something.
      
      This commit removes all bitfields in the `http_parser` struct, and
      replaces them with the minimal type needed to contain their values. Note
      that the fields in the struct have been reordered so they can be packed
      with 4-byte alignment.
      
      This saves both memory on the parser (because non-int bitfields get expanded to
      4byte in most compilers anyway) and time (because the fields are now
      properly aligned and the compiler doesn't need to generate bit-level ops
      to access them).
      Vicent Marti committed
  18. 09 Sep, 2011 1 commit