aboutsummaryrefslogtreecommitdiffhomepage
path: root/ruby/ext/google/protobuf_c/wrap_memcpy.c
Commit message (Collapse)AuthorAge
* Ruby: only link against specific version of memcpy if we're using glibcGravatar Adam Cozzette2017-03-17
| | | | | | | | We have some special code in wrap_memcpy.c to ensure that we use the 2.2.5 version of memcpy, for compatibility with older versions of glibc. However, we need to make sure we only attempt to do this when we are actually building with glibc, so that the code can also build successfully against other libc implementations such as musl.
* Ruby: wrap calls to memcpy so that gem is compatible with pre-2.14 glibcGravatar Adam Cozzette2017-03-09
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.