• Adam Cozzette's avatar
    Ruby: wrap calls to memcpy so that gem is compatible with pre-2.14 glibc · 9fa40314
    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.
    9fa40314
Makefile.am 67.5 KB