Fixes #17525.
Debian 8 (Jessie, oldoldstable) has:
- g++ version 4.9.2 (https://packages.debian.org/search?suite=jessie&arch=any&searchon=names&keywords=g%2B%2B)
- libc version 2.19 (https://packages.debian.org/search?suite=jessie&arch=any&searchon=names&keywords=libc6)
Debian 9 (Stretch, Oldstable) has:
- g++ version 6.3.0 (https://packages.debian.org/search?suite=stretch&arch=any&searchon=names&keywords=g%2B%2B)
- libc version 2.24 (https://packages.debian.org/search?suite=stretch&arch=any&searchon=names&keywords=libc6)
Ubuntu 16.04.4 (Xenial, oldest supported Ubuntu) has:
- g++ version 5.3.1 (https://packages.ubuntu.com/search?keywords=g%2B%2B&searchon=names&suite=xenial§ion=all)
- libc version 2.23.0 (https://packages.ubuntu.com/search?keywords=libc6&searchon=names&suite=xenial§ion=all)
Taking the minimum of these as our target.
According to GNU ABI document (http://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html) this corresponds to:
- GCC 4.9.2: GCC_4.8.0
- (glibc) GLIBC_2_19
This also contains a (long needed) commit to disallow dynamic linking to stdc++, as our releases statically link against that.
It might be possible to remove some fallbacks from src/compat/glibc_compat.cpp
, too. But I’ll wait for the version decision first.