@javidcf is true that eglibc and glibc are ABI compatible, since you should have no trouble running compilation from glibc to eglibc in a general sense.
However, you may encounter problems that are not related to glibc vs. eglibc, but instead are associated with a skew version of glibc. Some glibc functions are marked with a version at the end of them (for example, 'printf @@ GLIBC_2.2.5', if you look at nm, or by running strings in binary and grepping for GLIBC). I believe that they are the minimum requirement for the glibc version to run the resulting binary. Simple programs may have few (or not) these type functions. Comprehensive programs may have several requirements. Here's the result of running lines on my firefox binary on Ubuntu 14.04:
$ strings /usr/lib/firefox/firefox | grep GLIBC GLIBC_2.2.5 GLIBC_2.3 GLIBC_2.4 GLIBC_2.3.2 GLIBC_2.3.4 GLIBC_2.17 GLIBCXX_3.4
This means that I will need at least version 2.17 of the glibc library to resolve the characters needed to run this program.
As a result, it turns out that a binary file compiled on earlier distributions has good chances to work on a newer one; but the binary compiled in the newer distribution, against the newer glibc, which can use newer versions of functions that will be marked with higher minimum requirements, most likely will not work on older systems. For example, your CentOS 6 binary may not work on CentOS 5 or Ubuntu 10.04; but it may work fine on CentOS 7 and Ubuntu 12.04 / 14.04.
Static binding is the best option if you want (the best chance of) a truly portable binary.
clemej
source share