{ "info": { "author": "Noah Pendleton", "author_email": "2538614+noahp@users.noreply.github.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "[![Code style:\nblack](https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge)](https://github.com/ambv/black)\n[![Travis (.com)\nbranch](https://img.shields.io/travis/com/noahp/arm-double-detector/master.svg?style=for-the-badge)](https://travis-ci.com/noahp/arm-double-detector)\n[![PyPI\nversion](https://img.shields.io/pypi/v/arm-float-detector.svg?style=for-the-badge)](https://pypi.org/project/arm-float-detector/)\n[![PyPI\npyversions](https://img.shields.io/pypi/pyversions/arm-float-detector.svg?style=for-the-badge)](https://pypi.python.org/pypi/arm-float-detector/)\n\n# \ud83d\udd0d arm-float-detector\n\nUtility to detect soft float/double math library inclusion in arm binaries\n(objects/archives/elfs).\n\n```bash\n# install\n$ pip install arm-float-detector\n\n# run\n$ arm-float-detector --double a.out && echo OK\nNo soft double libs found!\nOK\n```\n\n## Requirements\n\nBesides python, needs the `nm` utility. If you're on *nix, you probably have it.\n\n## What is this\n\nSome processors do not have single- and/or double-precision floating point\nhardware, but instead rely on float math software libraries, which are\nrelatively slow and add take up additional space in the application.\n\nUnfortunately I can't find options for gcc/ld to detect and prohibit (eg\nwarnings/errors/configuration options) using these functions; I believe the\ndefinitions are in the compiler somehow (TODO actually research this).\n\nThis utility enables detecting usage of this soft floating point libraries in\nbinaries, suitable for being integrated into a CI check to prevent them.\n\n## Features\n\n1. detect presence of single- or double-precision soft floating point libraries\n2. _TODO_ whitelist objects allowed to reference these libs (eg vsprintf)\n3. _TODO_ enable printing objects containing the references for simpler\n elimination\n\n**NOTE** only tested on linux, where grep supports `-E 'string|string'`. You use\na mac, good for you, no idea if this will work there. Dependency on grep will\nprobably be removed in the future.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/noahp/arm-float-detector", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "arm-float-detector", "package_url": "https://pypi.org/project/arm-float-detector/", "platform": "", "project_url": "https://pypi.org/project/arm-float-detector/", "project_urls": { "Code": "https://github.com/noahp/arm-float-detector", "Homepage": "https://github.com/noahp/arm-float-detector", "Issue tracker": "https://github.com/noahp/arm-float-detector/issues" }, "release_url": "https://pypi.org/project/arm-float-detector/0.1.1/", "requires_dist": null, "requires_python": "", "summary": "Detect software floating point usage in arm binaries", "version": "0.1.1" }, "last_serial": 5712749, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8cb83dc44b3d497dc220e3ba99e99580", "sha256": "4c605cbf23fcb88aa5dccf279418249ebdb28d920e4752fdf6056f0d2519fcb3" }, "downloads": -1, "filename": "arm_float_detector-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8cb83dc44b3d497dc220e3ba99e99580", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4182, "upload_time": "2019-08-22T02:06:25", "url": "https://files.pythonhosted.org/packages/79/d9/aac50eb8f30788034dae23330fbd505381e23cd9b6e8b8d73480f49d4055/arm_float_detector-0.1.0-py2.py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "cd1a5db2ff347eaeddff914d8578e81b", "sha256": "58493a5365864f4aedfe644bbe6829a8ab65b31bed33da1e1ddf4eb52b9fe5fe" }, "downloads": -1, "filename": "arm_float_detector-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cd1a5db2ff347eaeddff914d8578e81b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4392, "upload_time": "2019-08-22T02:28:09", "url": "https://files.pythonhosted.org/packages/d8/82/b0764d7d8dad8db947dabe82900eafe802ab47cfeb9d7e1aed8acbf5fd0d/arm_float_detector-0.1.1-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cd1a5db2ff347eaeddff914d8578e81b", "sha256": "58493a5365864f4aedfe644bbe6829a8ab65b31bed33da1e1ddf4eb52b9fe5fe" }, "downloads": -1, "filename": "arm_float_detector-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cd1a5db2ff347eaeddff914d8578e81b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4392, "upload_time": "2019-08-22T02:28:09", "url": "https://files.pythonhosted.org/packages/d8/82/b0764d7d8dad8db947dabe82900eafe802ab47cfeb9d7e1aed8acbf5fd0d/arm_float_detector-0.1.1-py2.py3-none-any.whl" } ] }