Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Prepare dynamic linking so that
./snabb
is compatible with all GLIBC versions >= 2.7. This enables us to release Snabb Switch as a single executable file for any modern Linux/x86_64.Tested when built on Ubuntu 14.04. Building with newer versions of GLIBC can potentially break backwards compatibility. A
selftest.sh
script is included to detect this.Makefile now forces GCC to always include the file
gcc-preinclude.h
. This file can contain.symver
directives to break dependencies on new GLIBC versions.There is currently one such directive forcing
memcpy
to bind to the GLIBC 2.2.5 symbol instead of GLIBC 2.14. (This is because GLIBC made a semi-backwards-incompatible change tomemcpy
in version 2.14.) Loosely speaking, this has the side-effect of forcingmemcpy
to act likememmove
i.e. to be safe for overlapping memory regions. This is not expected to have a significant performance impact, although that is not impossible. See long question to the GLIBC mailing list about this (unanswered).