Nothing Special   »   [go: up one dir, main page]

Jump to content

GNU Binutils: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
See also: add <!-- Please keep entries in alphabetical order & add a short description WP:SEEALSO --> {{div col|colwidth=20em|small=yes}} {{div col end}} <!-- please keep entries in alphabetical order -->
Not a compiler or interpreter
 
(8 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{short description|Software development tools}}
{{short description|GNU software development tools for executable code}}
{{primary sources|date=June 2017}}
{{primary sources|date=June 2017}}


{{Infobox software
{{Infobox software
|name = GNU Binutils
| name = GNU Binutils
|logo = Heckert GNU white.svg
| logo = Heckert GNU white.svg
|screenshot =
| screenshot =
|caption =
| caption =
|developer = [[GNU Project]]
| developer = [[GNU Project]]
|latest release version = 2.37<ref>
| latest release version = {{wikidata|property|preferred|references|edit|Q1144975|P348|P548=Q2804309}}
| latest release date = {{wikidata|qualifier|preferred|single|Q1144975|P348|P548=Q2804309|P577}}
{{cite mailing list
| latest preview version = {{wikidata|property|preferred|references|edit|Q1144975|P348|P548=Q51930650}}
|url = https://lists.gnu.org/archive/html/info-gnu/2021-02/msg00002.html
| latest preview date = {{wikidata|qualifier|preferred|single|Q1144975|P348|P548=Q51930650|P577}}
|title = GNU Binutils 2.36.1 has been released
|author = Nick Clifton
| operating system =
|date = 2021-02-06
| genre = [[Programming tool]]s
| license = [[GNU General Public License|GNU GPLv3-or-later]]
|access-date = 2021-03-09
| website = {{URL|https://www.gnu.org/software/binutils/}}
}}</ref>
|latest release date = {{start date and age|2021|07|18|df=yes}}
|operating system =
|genre = [[Programming tool]]s
|license = [[GNU General Public License|GNU GPL]]
|website = {{URL|https://www.gnu.org/software/binutils/}}
}}
}}


The '''GNU Binary Utilities''', or {{mono|'''binutils'''}}, are a set of [[programming tool]]s for creating and managing binary programs, [[object code|object files]], libraries, profile data, and [[assembly code|assembly source code]].
The '''GNU Binary Utilities''', or {{mono|'''binutils'''}}, is a collection of [[programming tool]]s maintained by the [[GNU Project]] for working with [[executable]] code including [[Assembler (computing)|assembly]], [[Linker (computing)|linking]] and many other development operations.


The tools are originally from [[Cygnus Solutions]].
==Tools==
They were originally written by programmers at [[Cygnus Solutions]].


The GNU Binutils are typically used in conjunction with [[compiler]]s such as the [[GNU Compiler Collection]] ({{mono|gcc}}), build tools like {{mono|[[make (software)|make]]}}, and the [[GNU Debugger]] ({{mono|gdb}}).
The tools are typically used along with other GNU tools such as [[GNU Compiler Collection]], and the [[GNU Debugger]].


==Tools==
Through the use of the [[Binary File Descriptor library]] ({{mono|libbfd}}), most tools support the various object file formats supported by {{mono|libbfd}}.


The tools include:
H. J. Lu maintains a version of <code>binutils</code> with features purely for [[Linux]].<ref>{{cite web
| url = https://www.kernel.org/pub/linux/devel/binutils/release.binutils-2.24.51.0.3
| title = README-release.binutils-2.24.51.0.3}}</ref>


==Commands==
The {{mono|binutils}} include the following commands:
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 58: Line 48:
| <code>nlmconv</code> || object file conversion to a [[NetWare Loadable Module]]
| <code>nlmconv</code> || object file conversion to a [[NetWare Loadable Module]]
|-
|-
| <code>[[nm (Unix)|nm]]</code> || list symbols exported by object file
| <code>[[nm (Unix)|nm]]</code> || list symbols exported by object files
|-
|-
| <code>objcopy</code> || copy object files, possibly making changes
| <code>objcopy</code> || copy object files, possibly making changes
Line 66: Line 56:
| <code>[[ranlib]]</code> || generate indices for archives (for compatibility; same as {{code|ar -s}})
| <code>[[ranlib]]</code> || generate indices for archives (for compatibility; same as {{code|ar -s}})
|-
|-
| <code>[[readelf]]</code> || display content of [[Executable and Linkable Format|ELF]] files
| <code>[[readelf]]</code> || display contents of [[Executable and Linkable Format|ELF]] files
|-
|-
| <code>size</code> || list total and section sizes
| <code>size</code> || list section sizes and total size of binary files
|-
|-
| <code>[[strings (Unix)|strings]]</code> || list printable strings
| <code>[[strings (Unix)|strings]]</code> || list printable strings
|-
|-
| <code>[[strip (Unix)|strip]]</code> || remove symbols from an object file
| <code>[[strip (Unix)|strip]]</code> || remove symbols from object files
|-
|-
| <code>windmc</code> || generates Windows message resources
| <code>windmc</code> || generates Windows message resources
Line 84: Line 74:
==See also==
==See also==
{{Portal|Free and open-source software}}
{{Portal|Free and open-source software}}
<!-- Please keep entries in alphabetical order & add a short description [[WP:SEEALSO]] -->
{{div col|colwidth=20em|small=yes}}
{{div col|colwidth=20em|small=yes}}
<!-- Please maintain alphabetical order [[WP:SEEALSO]] -->
* [[GNU Core Utilities]]
* {{Annotated link|Binary File Descriptor library}}
* [[GNU Debugger]]
* {{Annotated link|GNU Core Utilities}}
*[[ldd (Unix)]], list symbols imported by the object file; similar to {{Code|nm}}
* {{Annotated link|GNU Debugger}}
* [[List of Unix commands]]
* {{Annotated link|ldd (Unix)}}
*[[LLVM|llvm]] provides similar set of tools
* {{Annotated link|List of Unix commands}}
* [[strace]], a tool for system call debugging (enabled by kernel functionality) available on many distributions
* {{Annotated link|LLVM}}
* {{Annotated link|strace}}
{{div col end}}
{{div col end}}
<!-- please keep entries in alphabetical order -->


==References==
==References==
Line 100: Line 90:
==External links==
==External links==
* {{Official website|https://www.gnu.org/software/binutils/}}
* {{Official website|https://www.gnu.org/software/binutils/}}
* [https://mirrors.edge.kernel.org/pub/linux/devel/binutils/ Binutils for Linux]
* [http://elftoolchain.sourceforge.net/ The ELF Tool Chain Project] : the BSD license similar project ([https://github.com/elftoolchain/elftoolchain mirror])
* [http://elftoolchain.sourceforge.net/ The ELF Tool Chain Project] : the BSD license similar project ([https://github.com/elftoolchain/elftoolchain mirror])


Line 107: Line 96:
{{DEFAULTSORT:Binutils}}
{{DEFAULTSORT:Binutils}}
[[Category:Programming tools]]
[[Category:Programming tools]]
[[Category:Free compilers and interpreters]]
[[Category:GNU Project software]]
[[Category:GNU Project software]]

Latest revision as of 23:04, 30 October 2024

GNU Binutils
Developer(s)GNU Project
Stable release
2.43.1[1] Edit this on Wikidata / 17 August 2024
Repository
TypeProgramming tools
LicenseGNU GPLv3-or-later
Websitewww.gnu.org/software/binutils/

The GNU Binary Utilities, or binutils, is a collection of programming tools maintained by the GNU Project for working with executable code including assembly, linking and many other development operations.

The tools are originally from Cygnus Solutions.

The tools are typically used along with other GNU tools such as GNU Compiler Collection, and the GNU Debugger.

Tools

[edit]

The tools include:

as assembler popularly known as GAS (GNU Assembler)
ld linker
gprof profiler
addr2line convert address to file and line
ar create, modify, and extract from archives
c++filt demangling filter for C++ symbols
dlltool creation of Windows dynamic-link libraries
gold alternative linker for ELF files
nlmconv object file conversion to a NetWare Loadable Module
nm list symbols exported by object files
objcopy copy object files, possibly making changes
objdump dump information about object files
ranlib generate indices for archives (for compatibility; same as ar -s)
readelf display contents of ELF files
size list section sizes and total size of binary files
strings list printable strings
strip remove symbols from object files
windmc generates Windows message resources
windres compiler for Windows resource files

elfutils

[edit]

Ulrich Drepper wrote elfutils, to partially replace GNU Binutils, purely for Linux and with support only for ELF and DWARF. It distributes three libraries with it for programmatic access.[2][3]

See also

[edit]

References

[edit]
  1. ^ Nick Clifton (17 August 2024). "GNU Binutils 2.43.1 released". Retrieved 18 August 2024.
  2. ^ elfutils home
  3. ^ elfutils at Drepper's home
[edit]