GNU Binutils
GNU Binary Utilities[1][2], meglio note come GNU Binutils,[3] è una collezione di programmi per la creazione e la gestione di file binari, oggetto, librerie, dati del profilo e codice sorgente dell'assembly.
GNU Binutils software | |
---|---|
Genere | |
Sviluppatore | progetto GNU |
Ultima versione | 2.43.1 (17 agosto 2024) |
Sistema operativo | |
Licenza | GNU GPL v3+, BSD 3-clausole e GNU GPL v2+ (licenza libera) |
Sito web | www.gnu.org/software/binutils/ |
Il pacchetto binutils comprende programmi come ld e può essere utilizzato in combinazione con compilatori quali GCC. Il suo codice sorgente è distribuito insieme al GNU Debugger sotto licenza GNU General Public License ed è disponibile per numerosi sistemi operativi Unix-like, incluso Linux.[4]
La maggior parte del software utilizza la libreria Binary File Descriptor e alcuni programmi fanno uso della libreria opcodes. Esistono porte per diversi sistemi, tra cui la maggior parte delle varianti UNIX, Windows, Mac OS X e (parzialmente) OS/2.[5]
Strumenti
modificaSono stati originariamente scritti dai programmatori di Cygnus Solutions.
Le binutils GNU sono in genere usate insieme a compilatori come GNU Compiler Collection (gcc), strumenti di costruzione come make e GNU Debugger (gdb).
Attraverso l'uso della libreria di descrittori di file binari (libbfd), la maggior parte degli strumenti supporta i vari formati di file oggetto supportati da libbfd.
H.J. Lu mantiene una versione di binutils con funzionalità puramente per Linux.[6]
Comandi
modificaLe binutils includono i seguenti comandi:[7][8][9]
as |
Linguaggio assembly, popolarmente noto come GAS (Gnu ASsembler) |
ld |
Linking[10] |
gprof |
Analisi delle prestazioni del software[11] |
addr2line |
converti l'indirizzo in file e riga |
ar |
creare, modificare ed estrarre dagli archivi |
c++filt |
Nome filtro di differenziazione,[12] per simboli in linguaggio C++ |
dlltool |
Crea file per la creazione e l'utilizzo di DLL |
gold |
Linking alternativa |
nlmconv |
conversione del file oggetto in a NetWare Loadable Module |
nm |
elenca i simboli nei file oggetto |
objcopy |
copiare i file oggetto, eventualmente apportando modifiche[13] |
objdump |
scaricare informazioni sui file oggetto |
ranlib |
generare indici per gli archivi |
readelf |
visualizza il contenuto di ELF file |
size |
elenca le dimensioni totali e di sezione |
strings |
elenca le stringhe stampabili |
strip |
rimuove i simboli da un file oggetto |
windmc |
generates Windows message resources |
windres |
compilatore per Windows resource files |
elfutils
modificaUlrich Drepper ha scritto elfutils, in sostituzione di GNU Binutils, esclusivamente per Linux e con supporto solo per ELF e DWARF.[14]
Note
modifica- ^ (EN) GNU Binary Utilities, su sourceware.org.
- ^ (EN) The GNU Binary Utilities (PDF), su eecs.umich.edu, aprile 2010.
- ^ (EN) Clifton, GNU Binutils 2.33.1 released, su lists.gnu.org, 12 ottobre 2019. URL consultato il 29 decembre 2019.
- ^ (EN) Index of /pub/linux/devel/binutils/, su The Linux Kernel Archives.
- ^ (EN) Paul's ports: GNU Binutils, su os2ports.smedley.info. URL consultato il 29 decembre 2019.
- ^ (EN) README-release.binutils-2.24.51.0.3, su kernel.org. URL consultato il 29 dicembre 2019.
- ^ (EN) GNU Binary Utilities, su Free Software Directory, 16 ottobre 2019. URL consultato il 29 decembre 2019.
- ^ (EN) GNU Binutils, su sourceware.org, 12 ottobre 2019. URL consultato il 29 decembre 2019.
- ^ (EN) GNU Binutils, su Progetto GNU, 12 ottobre 2019. URL consultato il 29 decembre 2019.
- ^ Per quanto alcuni testi e autori in lingua italiana abbiano scelto di tradurre il termine, quest'ultimo è di uso molto infrequente.
- ^ (EN) Weylin MacCalla e Sameer Kulkarni, Utilizing GPUs to Accelerate TurbomachineryCFD Codes (PDF), su NASA, gennaio 2016, p. 7. URL consultato il 29 decembre 2019.«The GNU Profiling tool is part of the GNU compiler package which is freely available under the GNU General Public License. It was used to take the initial profile of the code, and was able to provide subroutine-level results about the most time consuming parts of the code. The information from the GNU Profiler was used to narrow down the search for the sections of code to be offloaded to the GPU.»
- ^ (EN) Name mangling (C++ only), su IBM Knowledge Center. URL consultato il 29 decembre 2019.
- ^ (EN) Terrence Sun, 12 Linux GNU Binary Utilities Binutils Commands with Examples (as, ld, ar, nm, objcopy, objdump, size, strings, strip, c++flint, addr2line, readelf Command Examples), su The Geek Stuff, 10 gennaio 2017. URL consultato il 29 decembre 2019.«objcopy can copy the content of one object file to another object file, and input/output object can in different format. There are times when you need to port an object file available for one kind of platform (like ARM or x86) to another kind of platform.»
- ^ (EN) The elfutils project, su sourceware.org. URL consultato il 29 decembre 2019.
Voci correlate
modificaCollegamenti esterni
modifica- (EN) Sito ufficiale, su gnu.org.
- GNU Binutils, su packages.debian.org.
- Repository sorgenti di GNU Binutils, su sourceware.org.
- Sito di segnalazione bug, su sourceware.org.
- (EN) GNU Binutils, su Free Software Directory.