Fedora prevede di fornire la possibilità di creare pacchetti in Clang invece che in GCC

Per l'implementazione in Fedora 33 delineato cambiare regole per l'utilizzo dei compilatori nella distribuzione, in base alle quali il compilatore per la creazione del pacchetto può essere selezionato in base alle raccomandazioni e alle preferenze del progetto principale (a monte). Fedora attualmente impone l'uso di GCC per compilare tutti i pacchetti a meno che il pacchetto non possa essere compilato solo in Clang/LLVM.

Il motivo per cui viene fornita la possibilità di costruire con Clang è che alcuni progetti, ad es. Firefox и cromo, durante lo sviluppo utilizzano Clang come compilatore principale e gli assembly basati su di esso vengono testati meglio. L'utilizzo di Clang per tali pacchetti eviterà di rilevare errori che compaiono durante la compilazione in GCC, oltre a coordinare le correzioni per questi errori con il progetto principale. Costruire con GCC ha un effetto positivo sul mantenimento della portabilità del codice sviluppato utilizzando Clang, ma crea un onere maggiore per i manutentori e ritarda la pubblicazione degli aggiornamenti (ad esempio, Mozilla vieta utilizzare il marchio Firefox quando si applicano patch di terze parti, quindi è necessario prima assicurarsi che le patch siano incluse nello stream principale e rilasciare l'aggiornamento solo dopo che le correzioni appaiono nell'upstream).

Si noti che sarebbe logico utilizzare Clang per i pacchetti per i quali questo compilatore è più adatto e utilizzato nel progetto principale. Per tali pacchetti sarebbe possibile ridurre l'onere di manutenzione se i pacchetti fossero preparati da rappresentanti del progetto principale. Se un rappresentante della comunità sta creando il pacchetto, si propone di dare al manutentore la possibilità di scegliere un compilatore. Per i pacchetti i cui progetti principali non favoriscono l'uno o l'altro compilatore, si raccomanda di mantenere lo status quo (creare in GCC come prima). L'autore della proposta è Jeff Law di Red Hat, che è uno dei manutentori di GCC e Binutils.

Fonte: opennet.ru

Aggiungi un commento