[CentOS] Compile on Centos7, run on 6 possible?

Thu Jul 24 14:37:57 UTC 2014
Les Mikesell <lesmikesell at gmail.com>

On Mon, Jul 21, 2014 at 2:49 PM, Les Mikesell <lesmikesell at gmail.com> wrote:
> On Mon, Jul 21, 2014 at 2:19 PM, Jonathan Billings <billings at negate.org> wrote:
>> On Mon, Jul 21, 2014 at 12:16:39PM -0500, Les Mikesell wrote:
>>> 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.
>>
>> 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/

-- 
   Les Mikesell
      lesmikesell at gmail.com