# check-symbols
Command-line utility for checking ELF symbols.
## Installation
`check-symbols` requires Python 3.8 or higher.
```
pip3 install check-symbols
```
## Usage
`check-symbols` is a command-line application
```
usage: check-symbols [-h] [--version] [--check <path>] [--diff <path>]
[--include <regex> [<regex> ...]] [--exclude <regex> [<regex> ...]] [<path>]
Exported symbol helper tool for shared library projects
positional arguments:
<path> path to the shared library, or a directory containing it (default: discover automatically)
options:
-h, --help show this help message and exit
--version print the version and exit
--check <path> path to a text file containing a list of expected symbols (one per line).
use a dash ('-') to read from stdin.
--diff <path> compiled executable or shared library expected to consume the symbols
--include <regex> [<regex> ...]
one or more regular expressions to select the listed/checked symbols.
--exclude <regex> [<regex> ...]
one or more regular expressions to exclude from the listed/checked symbols.
v0.1.0 - github.com/marzer/check-symbols
```
### Exit codes
| Mode | Value | Meaning |
| :-------- | :---- | :--------------------------------------------------------------------------------------- |
| _any_ | -1 | A fatal error occurred |
| _any_ | 0 | No issues were found |
| `--check` | 1 | Some expected symbols listed in the check file were missing from the shared library |
| `--check` | 2 | Some unexpected symbols not listed in the check file were found in the shared library |
| `--check` | 3 | Both of the above |
| `--diff` | 1 | Some expected symbols imported by the target binary were missing from the shared library |
# Changelog
## v0.1.0 - 2024/06/14
- First public release 🎉️
Raw data
{
"_id": null,
"home_page": null,
"name": "check-symbols",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "c++, check-symbols, elf, symbols, binary, executable, shared library",
"author": null,
"author_email": "Mark Gillard <mark.gillard@outlook.com.au>",
"download_url": "https://files.pythonhosted.org/packages/6c/50/e20fb8b26e1e3975ae792e63f4f043f62e2c049fcf9cea099bfef1a1322d/check_symbols-0.1.0.tar.gz",
"platform": null,
"description": "# check-symbols\r\n\r\nCommand-line utility for checking ELF symbols.\r\n\r\n## Installation\r\n\r\n`check-symbols` requires Python 3.8 or higher.\r\n\r\n```\r\npip3 install check-symbols\r\n```\r\n\r\n## Usage\r\n\r\n`check-symbols` is a command-line application\r\n\r\n```\r\nusage: check-symbols [-h] [--version] [--check <path>] [--diff <path>]\r\n [--include <regex> [<regex> ...]] [--exclude <regex> [<regex> ...]] [<path>]\r\n\r\nExported symbol helper tool for shared library projects\r\n\r\npositional arguments:\r\n <path> path to the shared library, or a directory containing it (default: discover automatically)\r\n\r\noptions:\r\n -h, --help show this help message and exit\r\n --version print the version and exit\r\n --check <path> path to a text file containing a list of expected symbols (one per line).\r\n use a dash ('-') to read from stdin.\r\n --diff <path> compiled executable or shared library expected to consume the symbols\r\n --include <regex> [<regex> ...]\r\n one or more regular expressions to select the listed/checked symbols.\r\n --exclude <regex> [<regex> ...]\r\n one or more regular expressions to exclude from the listed/checked symbols.\r\n\r\nv0.1.0 - github.com/marzer/check-symbols\r\n```\r\n\r\n### Exit codes\r\n\r\n| Mode | Value | Meaning |\r\n| :-------- | :---- | :--------------------------------------------------------------------------------------- |\r\n| _any_ | -1 | A fatal error occurred |\r\n| _any_ | 0 | No issues were found |\r\n| `--check` | 1 | Some expected symbols listed in the check file were missing from the shared library |\r\n| `--check` | 2 | Some unexpected symbols not listed in the check file were found in the shared library |\r\n| `--check` | 3 | Both of the above |\r\n| `--diff` | 1 | Some expected symbols imported by the target binary were missing from the shared library |\r\n\r\n# Changelog\r\n\r\n## v0.1.0 - 2024/06/14\r\n\r\n- First public release \ud83c\udf89️\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Command-line utility for checking ELF symbols.",
"version": "0.1.0",
"project_urls": {
"Funding": "https://github.com/sponsors/marzer",
"Source": "https://github.com/marzer/check-symbols",
"Tracker": "https://github.com/marzer/check-symbols/issues"
},
"split_keywords": [
"c++",
" check-symbols",
" elf",
" symbols",
" binary",
" executable",
" shared library"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cc5da71b246a74cc4479bab0edff0cc6e8f5f7146aa3c250e3e8cb9346e4c9e1",
"md5": "cdfc6165260202bd5064c5eae4254e32",
"sha256": "9799def8e88568e77edfaa9620cb019f9eec2ed24cac21e3ddbd93271d2b04fb"
},
"downloads": -1,
"filename": "check_symbols-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cdfc6165260202bd5064c5eae4254e32",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 10586,
"upload_time": "2024-06-14T16:24:29",
"upload_time_iso_8601": "2024-06-14T16:24:29.041184Z",
"url": "https://files.pythonhosted.org/packages/cc/5d/a71b246a74cc4479bab0edff0cc6e8f5f7146aa3c250e3e8cb9346e4c9e1/check_symbols-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6c50e20fb8b26e1e3975ae792e63f4f043f62e2c049fcf9cea099bfef1a1322d",
"md5": "e8e48c3254af9c2a72d1840a1be9189a",
"sha256": "78ddd85025b5defe5474e44dd3d8bcf598fb6d0e1e9f2fc1e18efd1e2acb9a60"
},
"downloads": -1,
"filename": "check_symbols-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "e8e48c3254af9c2a72d1840a1be9189a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 9628,
"upload_time": "2024-06-14T16:24:30",
"upload_time_iso_8601": "2024-06-14T16:24:30.336414Z",
"url": "https://files.pythonhosted.org/packages/6c/50/e20fb8b26e1e3975ae792e63f4f043f62e2c049fcf9cea099bfef1a1322d/check_symbols-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-14 16:24:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "sponsors",
"github_project": "marzer",
"github_not_found": true,
"lcname": "check-symbols"
}