Skip to content

Sample code to demonstrate how libstdc++ symbol versioning works

Notifications You must be signed in to change notification settings

springmeyer/glibcxx-symbol-versioning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Dane Springmeyer
Apr 20, 2017
12388ee · Apr 20, 2017

History

54 Commits
Feb 2, 2017
Apr 12, 2017
Oct 11, 2016
Apr 20, 2017
Nov 9, 2016
Oct 11, 2016
Apr 20, 2017
Oct 11, 2016
Oct 11, 2016
Oct 11, 2016

Repository files navigation

glibcxx-symbol-versioning

Sample code to demonstrate how libstdc++ symbol versioning works

First read about versioned symbols at http://ftp.ntu.edu.tw/software/libs/glibc/hjl/compat/. Then dig into the travis results for this repo to see how specific test programs do or do not end up using specific versioned symbols.

Build Status

Testing methods:

Findings based on testing:

Default precise

  • libc6 2.15-0ubuntu10.10
  • libstdc++6 4.6.3-1ubuntu5
  • GLIBCXX_3.4.16
  • Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6
  • GLIBCXX: 20120301

Default trusty

  • libstdc++6 4.8.4-2ubuntu1~14.04.3
  • GLIBCXX_3.4.19
  • Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
  • GLIBCXX: 20150426

Bug with -std=c++14:

/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/cstdio:120:11: error: 
      no member named 'gets' in the global namespace
  using ::gets;
        ~~^

libstdc++-4.8-dev upgrade on precise (via toolchain-r)

  • libstdc++6 6.2.0-3ubuntu11~12.04
  • libgcc-4.8-dev amd64 4.8.1-2ubuntu1~12.04
  • libstdc++-4.8-dev amd64 4.8.1-2ubuntu1~12.04
  • GLIBCXX_3.4.22
  • Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
  • GLIBCXX: 20130604

libstdc++-4.9-dev upgrade on precise (via toolchain-r)

  • libstdc++6 6.2.0-3ubuntu11~12.04
  • libgcc-4.9-dev amd64 4.9.4-2ubuntu1~12.04
  • libstdc++-4.9-dev amd64 4.9.4-2ubuntu1~12.04
  • GLIBCXX_3.4.22
  • Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
  • GLIBCXX: 20160726
  • std::get_new_handler()@@GLIBCXX_3.4.20

libstdc++-5-dev upgrade on precise (via toolchain-r)

  • libstdc++6 6.2.0-3ubuntu11~12.04
  • libgcc-5-dev amd64 5.4.1-2ubuntu1~12.04
  • libstdc++-5-dev amd64 5.4.1-2ubuntu1~12.04
  • GLIBCXX_3.4.22
  • Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.1
  • GLIBCXX: 20160904
  • std::out_of_range::out_of_range(char const*)@@GLIBCXX_3.4.21
  • std::__codecvt_utf8_utf16_base<wchar_t>::do_encoding() const@@GLIBCXX_3.4.21
  • std::runtime_error::runtime_error(char const*)@@GLIBCXX_3.4.21

libstdc++-6-dev upgrade on precise (via toolchain-r)

  • libstdc++6 6.2.0-3ubuntu11~12.04
  • libgcc-6-dev amd64 6.2.0-3ubuntu11~12.04
  • libstdc++-6-dev amd64 6.2.0-3ubuntu11~12.04
  • GLIBCXX_3.4.22
  • Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.2.0
  • GLIBCXX: 20160901
  • std::__codecvt_utf8_utf16_base<wchar_t>::do_encoding() const@@GLIBCXX_3.4.21
  • std::runtime_error::runtime_error(char const*)@@GLIBCXX_3.4.21

libstdc++ version on all linux distros: https://pkgs.org/download/libstdc++6

About

Sample code to demonstrate how libstdc++ symbol versioning works

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published