1. 04 Apr, 2017 1 commit
    • Thomas Van Lenten's avatar
      Remove the use of dispatch_once that is heap backed. · 7d758c00
      Thomas Van Lenten authored
      Apple recently updated the docs on dispatch_once to point out
      that the storage for the dispatch_once_t must be static or global,
      but not something that was ever used before as the implementation
      doesn't use a memory barrier.  So we drop the use and create the
      semaphore when needed and use an atomic swap deal with any
      threading races.
      7d758c00
  2. 16 Mar, 2017 1 commit
  3. 15 Mar, 2017 1 commit
  4. 14 Mar, 2017 1 commit
  5. 10 Mar, 2017 1 commit
  6. 09 Mar, 2017 1 commit
    • Adam Cozzette's avatar
      Ruby: wrap calls to memcpy so that gem is compatible with pre-2.14 glibc · a7e05be8
      Adam Cozzette authored
      This commit adds a __wrap_memcpy function and a linker flag to use that
      in place of memcpy for our Ruby gem C extension. This allows us to
      always use the 2.2.5 version of memcpy, making it possible to use the
      gem on distributions with pre-2.14 versions of glibc.
      
      Before this change:
      $ objdump -T protobuf_c.so | grep memcpy
      0000000000000000      DF *UND*  0000000000000000  GLIBC_2.3.4 __memcpy_chk
      0000000000000000      DF *UND*  0000000000000000  GLIBC_2.14  memcpy
      
      After:
      $ objdump -T protobuf_c.so | grep memcpy
      0000000000000000      DF *UND*  0000000000000000  GLIBC_2.2.5 memcpy
      0000000000000000      DF *UND*  0000000000000000  GLIBC_2.3.4 __memcpy_chk
      0000000000042450 g    DF .text  0000000000000005  Base __wrap_memcpy
      
      This is based on gRPC's solution to a similar problem:
      https://github.com/grpc/grpc/blob/5098508d2d41a116113f7e333c516cd9ef34a943/src/core/lib/support/wrap_memcpy.c
      
      This fixes issue #2783.
      a7e05be8
  7. 03 Mar, 2017 2 commits
  8. 14 Feb, 2017 2 commits
  9. 13 Feb, 2017 3 commits
  10. 11 Feb, 2017 1 commit
  11. 08 Feb, 2017 2 commits
  12. 06 Feb, 2017 1 commit
  13. 02 Feb, 2017 1 commit
  14. 31 Jan, 2017 2 commits
  15. 27 Jan, 2017 1 commit
  16. 26 Jan, 2017 1 commit
  17. 24 Jan, 2017 1 commit
  18. 23 Jan, 2017 1 commit
  19. 20 Jan, 2017 2 commits
  20. 18 Jan, 2017 1 commit
  21. 12 Jan, 2017 1 commit
  22. 11 Jan, 2017 1 commit
  23. 10 Jan, 2017 5 commits
  24. 09 Jan, 2017 6 commits