{"id":18739608,"url":"https://github.com/springmeyer/glibcxx-symbol-versioning","last_synced_at":"2025-08-21T10:14:29.298Z","repository":{"id":66365756,"uuid":"69687655","full_name":"springmeyer/glibcxx-symbol-versioning","owner":"springmeyer","description":"Sample code to demonstrate how libstdc++ symbol versioning works","archived":false,"fork":false,"pushed_at":"2017-04-20T03:06:15.000Z","size":25,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-20T04:35:06.817Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/springmeyer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-30T17:33:33.000Z","updated_at":"2024-06-02T03:54:43.000Z","dependencies_parsed_at":"2023-02-20T16:01:15.027Z","dependency_job_id":null,"html_url":"https://github.com/springmeyer/glibcxx-symbol-versioning","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/springmeyer/glibcxx-symbol-versioning","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/springmeyer%2Fglibcxx-symbol-versioning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/springmeyer%2Fglibcxx-symbol-versioning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/springmeyer%2Fglibcxx-symbol-versioning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/springmeyer%2Fglibcxx-symbol-versioning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/springmeyer","download_url":"https://codeload.github.com/springmeyer/glibcxx-symbol-versioning/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/springmeyer%2Fglibcxx-symbol-versioning/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271462080,"owners_count":24763857,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T15:36:35.791Z","updated_at":"2025-08-21T10:14:29.260Z","avatar_url":"https://github.com/springmeyer.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# glibcxx-symbol-versioning\n\nSample code to demonstrate how libstdc++ symbol versioning works\n\nFirst 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.\n\n[![Build Status](https://travis-ci.org/springmeyer/glibcxx-symbol-versioning.svg?branch=master)](https://travis-ci.org/springmeyer/glibcxx-symbol-versioning)\n\nTesting methods:\n\n - Travis jobs\n - Using the default libstdc++ packages and ones upgraded from https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test\n - Studying https://github.com/gcc-mirror/gcc/blob/d7b41a73a78cbd6f291bf8d4090638057b964c11/libstdc%2B%2B-v3/config/abi/pre/gnu.ver#L1599-L1602 for when symbols arrived\n\nFindings based on testing:\n\n### Default precise\n\n- libc6 2.15-0ubuntu10.10\n- libstdc++6 4.6.3-1ubuntu5\n- GLIBCXX_3.4.16\n- Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6\n- __GLIBCXX__: 20120301\n\n### Default trusty\n - libstdc++6 4.8.4-2ubuntu1~14.04.3\n - GLIBCXX_3.4.19\n - Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8\n - __GLIBCXX__: 20150426\n\n\nBug with `-std=c++14`:\n\n```\n/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/cstdio:120:11: error: \n      no member named 'gets' in the global namespace\n  using ::gets;\n        ~~^\n```\n\n### libstdc++-4.8-dev upgrade on precise (via toolchain-r)\n\n - libstdc++6 6.2.0-3ubuntu11~12.04\n - libgcc-4.8-dev amd64 4.8.1-2ubuntu1~12.04\n - libstdc++-4.8-dev amd64 4.8.1-2ubuntu1~12.04\n - GLIBCXX_3.4.22\n - Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8\n - __GLIBCXX__: 20130604\n\n### libstdc++-4.9-dev upgrade on precise (via toolchain-r)\n\n - libstdc++6 6.2.0-3ubuntu11~12.04\n - libgcc-4.9-dev amd64 4.9.4-2ubuntu1~12.04\n - libstdc++-4.9-dev amd64 4.9.4-2ubuntu1~12.04\n - GLIBCXX_3.4.22\n - Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9\n - __GLIBCXX__: 20160726\n - std::get_new_handler()@@GLIBCXX_3.4.20\n\n### libstdc++-5-dev upgrade on precise (via toolchain-r)\n\n - libstdc++6 6.2.0-3ubuntu11~12.04\n - libgcc-5-dev amd64 5.4.1-2ubuntu1~12.04\n - libstdc++-5-dev amd64 5.4.1-2ubuntu1~12.04\n - GLIBCXX_3.4.22\n - Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.1\n - __GLIBCXX__: 20160904\n - std::out_of_range::out_of_range(char const*)@@GLIBCXX_3.4.21\n - std::__codecvt_utf8_utf16_base\u003cwchar_t\u003e::do_encoding() const@@GLIBCXX_3.4.21\n - std::runtime_error::runtime_error(char const*)@@GLIBCXX_3.4.21\n\n### libstdc++-6-dev upgrade on precise (via toolchain-r)\n\n - libstdc++6 6.2.0-3ubuntu11~12.04\n - libgcc-6-dev amd64 6.2.0-3ubuntu11~12.04\n - libstdc++-6-dev amd64 6.2.0-3ubuntu11~12.04\n - GLIBCXX_3.4.22\n - Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.2.0\n - __GLIBCXX__: 20160901\n - std::__codecvt_utf8_utf16_base\u003cwchar_t\u003e::do_encoding() const@@GLIBCXX_3.4.21\n - std::runtime_error::runtime_error(char const*)@@GLIBCXX_3.4.21\n\n\nlibstdc++ version on all linux distros: https://pkgs.org/download/libstdc++6\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspringmeyer%2Fglibcxx-symbol-versioning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspringmeyer%2Fglibcxx-symbol-versioning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspringmeyer%2Fglibcxx-symbol-versioning/lists"}