[cfe-dev] -O2 requires GLIBCXX_3.4.9?

Nikos Chantziaras realnc at gmail.com
Fri Sep 14 04:56:38 PDT 2012

glibc version compatibility is based on supported features.  What that 
means is that -O0 does not depend on features not available on the older 
glibc.  -O2 does, and the features it needs are not available on the 
older version.

In other words, the binary doesn't really say "I need version x.y.z of 
glibc", it rather says "I want this glibc to support features foo, bar 
and baz."  If one of those features are not available, you get an error 
indicating the version of glibc that's required for those features to work.

On 14/09/12 14:07, Mohamed Bana wrote:
> Konstantin, hi,
> So why can't I run it on a system with an older version of glibc?  This
> very confusing.  Clearly, -O2 wants a newer version of glibc.
>   —Mohamed
> On 14 September 2012 11:17, Konstantin Tokarev
> <annulen at yandex.ru
> <mailto:annulen at yandex.ru>> wrote:
>     14.09.2012, 12:42, "Mohamed Bana"
>     <mohamed at bana.org.uk
>     <mailto:mohamed at bana.org.uk>>:
>      > Nikos Chantziaras <realnc at ...> writes:
>      >
>      >>  glibc is generally not backwards compatible.  You cannot build
>     on a new
>      >>  version and have a guarantee that it runs on older ones.  If
>     you want
>      >>  that, you should build against an older glibc.
>      >
>      > Does anyone know how to solve this issue?  I just need to it use
>     the same glibc
>      > that is being used when -O0 is specified.
>     You are using the same glibc in both cases actually. Just with
>     different internal defines.

More information about the cfe-dev mailing list