Compile On CentOS7, Run On 6 Possible?

Home » CentOS » Compile On CentOS7, Run On 6 Possible?
CentOS 3 Comments

I’m getting errors: ‘/lib64/libc.so.6: version `GLIBC_2.14′ not found’
and ‘/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14′ not found’. Is there a way to make a backward-compatible binary?

If not, is there a sane way to build something that needs gcc
4.8+/boost 1.5.3+/cmake 2.8 on CentOS6? I found the devtoolset-2
software collection with a usable gcc, but no boost. And cmake 2.8
installs as cmake28 whereas the project expects the normal cmake/ccmake names.

3 thoughts on - Compile On CentOS7, Run On 6 Possible?

  • I’ve found that the easiest way is to package your software and use software like ‘mock’ (http://fedoraproject.org/wiki/Projects/Mock) to build the software for other platforms. Mock builds the software in a chrooted shell built up using the packages for that distribution, so you it’d use CentOS6’s GCC, boost, cmake and glibc.

  • If it would build easily with CentOS6’s native tools, I wouldn’t be asking the question… I think it was originally built on CentOS5
    but with locally compiled up-rev gcc/boost/cmake versions and delivered with some alternative .so’s and a scheme to set LD_LIBRARY_PATH. Aside from not knowing the exact build environment it expects, I was hoping it could be done in a more standard way. It turns out that it does build on CentOS7 – which I guess doesn’t really help when the runtime target is 6.

  • I haven’t gotten back to this yet, but I think the right answer to this question would have been to install the compat-glibc package:

    Description : This package contains stub shared libraries and static libraries
    : from CentOS Linux 6.
    :
    : To compile and link against these compatibility libraries, use
    : gcc -fgnu89-inline \
    : -I /usr/lib/x86_64-redhat-linux6E/include \
    : -B /usr/lib/x86_64-redhat-linux6E/lib64/