This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
How can I test whether I have libstdc++ of a particular version or better?
- From: "Andrew C. Morrow" <andrew dot c dot morrow at gmail dot com>
- To: libstdc++ at gcc dot gnu dot org
- Date: Wed, 12 Jun 2013 14:36:11 -0400
- Subject: How can I test whether I have libstdc++ of a particular version or better?
Hi -
I have a need to write a configure check to require libstdc++ greater
than a particular version. In this case, 4.6.0. So for example, 4.6.0
or better should be fine, 4.5.4 should be rejected, and 4.7.0
accepted.
Looking at http://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html
section 7, I had hoped to be able to write a configure check that
included a standard library header, and compared against __GLIBCXX__
like follows:
#include <vector>
// 20110325 is 4.6.0
#if defined(__GLIBCXX__) && (__GLIBCXX__ < 20110325)
#error
#endif
However, this won't work: 4.5.4 is newer by date than 4.6.0, so its
__GLIBCXX__ value exceeds that of 4.6.0 and so the configure test
would pass, even though 4.5.x is not 'newer' than 4.6.0 in terms of
feature level.
Is there some set of values defined by libstdc++ in analogy with
__GNUC__, __GNUC_MINOR__ which avoids this date vs. feature ordering
issue? Or am I looking at this problem wrong?
Thanks,
Andrew