Sabato 24 ottobre 2026
L’edizione di oggi
Millebit
AI · Software · QA
Il segnale, non il rumore.

Gli articoli di Millebit sono scritti con l’intelligenza artificiale a partire da fonti citate in ogni pezzo. Come lavoriamo

Sviluppo software

Su macOS /usr/bin/gcc è un binario che si comporta come clang

Testo scritto con l’intelligenza artificiale a partire da una fonte citata, senza revisione umana prima della pubblicazione.

Il comando gcc non è un alias: il binario controlla il nome con cui è invocato e sceglie clang di conseguenza.

Illustrazione generata con l’intelligenza artificiale

Su macOS /usr/bin/gcc non è un alias di shell. È un eseguibile che decide quale strumento invocare in base al nome con cui lo chiami. Ecco perché lanci gcc senza argomenti e vedi “clang: error: no input files”1.

La logica è dentro il binario. Il programma legge argv[0], cioè il proprio nome di invocazione, poi imposta una stringa con lo strumento reale da avviare. La selezione non passa dalla shell, non dipende da profili interattivi o configurazioni locali. È codice compilato1.

Il disassemblato mostra confronti espliciti con quattro etichette: “cc”, “llvm-gcc”, “c++”, “llvm-g++”. In caso di corrispondenza assegna “clang”. Chiamato come gcc, l’eseguibile finisce per comportarsi come clang. Anche il messaggio d’errore, quando mancano i file di input, coincide con quello di clang1.

L’analisi arriva da un post di Zoey-on-GitHub. Il punto di partenza era un’aspettativa diversa: trovare un wrapper banale che delega a clang. Lo scavo nel codice l’ha smentita. La decisione è hardcoded, basata su confronti di stringa sul nome con cui parte il comando. I ritagli pubblicati mostrano l’assegnazione condizionata della stringa “clang” per i nomi indicati1.

Due verifiche dal terminale allineano i conti con il codice. which gcc risponde con un percorso preciso, /usr/bin/gcc. L’invocazione senza argomenti produce l’output tipico di clang. I due segnali, presi insieme, coincidono con quanto emerge dal binario: catena di confronti su argv[0], poi inoltro a clang quando i nomi corrispondono ai casi previsti1.

Conta l’effetto pratico. Se indaghi un’anomalia di compilazione su macOS e parti da gcc, potresti in realtà osservare il comportamento di clang. La traccia utile non sta in alias invisibili o funzioni di shell, ma nella logica incorporata in /usr/bin/gcc. La scelta dello strumento reale avviene prima ancora che la shell entri in gioco1.

La conseguenza operativa è semplice: quando riproduci o condividi un bug, indica sempre il comando esatto usato e, se possibile, il nome con cui l’hai invocato. Un “gcc” che innesca clang può spiegare differenze attese tra ambienti o toolchain. L’evidenza, in questo caso, sta nel binario stesso, non in una configurazione laterale1.

Fonti

  1. examining the macOS gcc binary Lobsters · 22 ottobre 2026
Come è nato questo articolo Scritto da un sistema di intelligenza artificiale, con controlli automatici

Millebit non ha giornalisti che scrivono gli articoli: li scrive un motore editoriale basato su modelli di intelligenza artificiale, a partire dalle fonti elencate qui sopra. Prima di uscire, ogni testo passa questi controlli:

  • Fedeltà alle fonti. Un secondo passaggio toglie ogni affermazione che le fonti non sostengono. Valutazione su questo pezzo: 9/10.
  • Anti-cliché. Un filtro scarta frasi fatte, enfasi e tic della prosa artificiale: superato.
  • Giudizio editoriale. Un modello valuta il pezzo su sette criteri (apertura, chiarezza, economia, concretezza, voce, struttura, fedeltà) e sotto 7,8/10 non si pubblica. Questo articolo ha preso 8,2/10 dopo 2 revisioni.

I controlli riducono gli errori ma non li eliminano: un modello può fraintendere una fonte. Per le decisioni importanti, risali alla fonte originale. Se trovi un errore, segnalacelo.

Come funziona Millebit, nel dettaglio →

Hai trovato un errore? Segnalacelo
Tipo di segnalazione

Leggiamo ogni segnalazione. Le correzioni fatte sono elencate in Correzioni. L’email, se la lasci, serve solo a risponderti.