Capitolo 3. Compiler e tool

dracut esegue la configurazione delle VLAN in base alle voci presenti in iBFT

In precedenza dracut non creava alcuna interfaccia di rete VLAN anche quando il parametro relativo presente nella iBFT era valido. Con questo aggiornamento l'avvio iSCSI con VLAN funziona come previsto.

Supporto per hotpatching in gcc sui binari System z

L'attributo gcc hotpatch rende disponibile il supporto per l'online patching dei codici multi-thread su binari System z. Con questo aggiornamento è ora possibile selezionare le funzioni specifiche per l'hotpatching usando un attributo della funzione, e abilitare hotpatching per tutte le funzioni usando l'opzione della linea di comando -mhotpatch=
L'uso di hot-patching ha un impatto negativo sulle prestazioni e sulla dimensione del software. Per questo motivo è consigliato usare hot-patching solo per funzioni specifiche e non per abilitare il supporto hotpatch in generale.

Modificato il supporto per le versioni TLS

Questo aggiornamento introduce le nuove opzioni --tlsv1.0, --tlsv1.1 e --tlsv1.2 di curl per specificare le versioni minori del protocollo TLS da negoziare con NSS. A tale scopo le costanti CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, e CURL_SSLVERSION_TLSv1_2 corrispondenti sono state introdotte in API libcurl. Le semantiche esistenti dell'opzione --tlsv1 di curl, e la costante CURL_SSLVERSION_TLSv1 di libcurl API, sono state modificate per negoziare il protocollo più recente TLS 1.x supportato sia dal client che dal server.

Python ConfigParser gestisce correttamente le opzioni sprovviste di valore

In precedenza per utilizzare correttamente Python ConfigParser era necessario specificare un valore per ogni opzione. Questa impostazione non era idonea con determinati file di configurazione, come ad esempio my.cnf, i quali presentavano opzioni sprovviste di valori. Ora questa funzione è stata implementata su Python 2.6.6, ConfigParser è ora in grado di leggere i file di configurazione che contengono opzioni sprovviste di valori.

tcpdump supporta -J, -j, e --time-stamp-precision

Come kernel, glibc e libpcap dispongono ora di API per ottenere i timestamp con risoluzioni in nanosecondi, tcpdump è stato aggiornato per sfruttare questa funzionalità. Gli utenti sono ora in grado di richiedere i sorgenti dei timestamp disponibili (-J), impostare un sorgente specifico del timestamp (-j) e richiedere timestamp con risoluzioni specifiche (--time-stamp-precision).

Migliorate le utiliti per copiare i dati tra dispositivi SCSI

Introdotte nel pacchetto sg3_utils utilità più efficienti per copiare i dati tra dispositivi di archiviazione che sfruttano il protocollo SCSI. Per abilitare questa funzione sono stati implementati i programmi sg_xcopy e sg_copy_results sui pacchetti sg3_utils.

ethtool supporta la definizione delle chiavi hash RSS personalizzate

Sono stati apportati alcuni miglioramenti a ethtool. È ora possibile definire le chiavi hash personalizzate per RSS. Questo aggiornamento permette di utilizzare le code di ricezione in base al traffico, e di avere migliori prestazioni e sicurezza tramite la selezione di chiavi appropriate per il traffico previsto.

È stato aggiunto il supporto Setdirection a tcpdump

Il pacchetto tcpdump include ora il supporto setdirection: questo aggiornamento permette di specificare come argomento al flag -P, che solo i pacchetti ricevuti (-P in), e i pacchetti inviati (-P out), o entrambi (-P inout) devono essere catturati.

sysctl è ora in grado di eseguire la lettura da un gruppo di directory del sistema

Questo aggiornamento introduce una nuova opzione --system per l'utilità sysctl. Questa opzione permette a sysctl di processare i file di configurazione da un gruppo di directory del sistema.

Pacchetti mcelog aggiornati alla versione 109 dell'upstream

I pacchetti mcelog sono stati aggiornati alla versione 109 dell'upstream. Ora sono disponibilile correzioni e miglioramenti rispetto alla versione precedente. In particolare mcelog supporta ora le architetture Core i7 CPU.

biosdevname aggiornato alla versione 0.6.2 dell'upstream

Il pacchetto biosdevname è stato aggiornato alla versione 0.6.2 dell'upstream e, oltre ad altre funzioni, rende disponibile l'attributo dev_port per il nuovo driver Mellanox. Esso permette altresì di ignorare i nomi dei dispositivi FCoE.

Miglioramenti alla libreria PCRE

Per il ripristino dell'utilità grep da una corrispondenza PCRE fallita a causa di una sequenza UTF-8 non valida del file binario, sono state introdotte le seguenti funzioni nella libreria PCRE:
La funzione pcre_exec() controlla ora la presenza di valori offset iniziali che non rientrano nella gamma di valori prestabilita, e riporta gli errori PCRE_ERROR_BADOFFSET al posto degli errori PCRE_ERROR_NOMATCH, oppure generare cicli infiniti.
Se si utilizza la funzione pcre_exec() per eseguire una corrispondenza UTF-8 su una stringa UTF-8 non valida e l'array ovector è sufficientemente grande, l'offset della prima stringa nel byte UTF-8 non valido e il motivo del codice dettagliato verranno ritornati nell'elemento dell'array ovector. Altresì, l'utilità pcretest può essere ora utilizzata per visualizzare queste informazioni. Con questo aggiornamento la funzione pcre_compile() riporta il primo byte UTF-8 non valido e non l'ultimo. Da notare anche che la firma della funzione pcre_valid_utf8(), non intesa per un utilizzo pubblico, è stata modificata. Per finire, l'utilità pcretest inserisce un messaggio d'errore di facile lettura per l'utente nei codici d'errore.

Supporto per Intel AVX-512 in glibc Dynamic Loader

Il glibc dynamic loader supporta ora le estensioni AVX-512 di Intel. Questo aggiornamento permette al dynamic loader di salvare e ripristinare i registri AVX-512 impedendo il fallimento delle applicazioni abilitate-AVX-512 a causa dei moduli audit, i quali a loro volta utilizzano AVX-512.

Valgrind riconosce le istruzioni MPX di Intel

Valgrind non era in grado di riconoscere le istruzioni Intel Memory Protection Extensions (MPX) o le istruzioni che utilizzano un prefisso MPX bnd. Di conseguenza Valgrind terminava i programmi che utilizzavano le istruzioni MPX con un segnale SIGKILL. Valgrind ora riconosce le nuove istruzioni MPX e i prefissi bnd. Tutte le nuove istruzioni MPX sono attualmente implementate come "no operation", per questo motivo il prefisso bnd le ignora. Ne consegue che i programmi che utilizzano le istruzioni MPX o i prefissi bnd, vengono eseguiti in Valgrind come se MPX non fosse abilitato sulla CPU, per questo motivo i programmi non sono più terminati.

free supporta la lettura in chiaro dell'output

È stata aggiunta l'opzione -h all'utilità free. Questa nuova opzione permette di mostrare tutti i campi dell'output adattati automaticamente ad una rappresentazione a tre cifre, semplificandone la lettura.

w supporta l'opzione -i

L'utilità w include ora l'opzione -i per visualizzare gli indirizzi IP al posto dei nomi degli host nella colonna FROM.

vim aggiornato alla versione 7.4

I pacchetti vim sono stati aggiornati alla versione 7.4 dell'upstream, e sono ora disponibili le correzioni e i miglioramenti rispetto alla versione precedente. Le modifiche più importanti includono: l'editor di testo Vim ora supporta il ripristino persistente delle modifiche tramite l'impostazione dell'opzione undofile. Per impostazione predefinita Vim elimina l'albero delle modifiche creato per quel buffer. Tuttavia quando abilitate il ripristino persistente delle modifiche, Vim archivia automaticamente la cronologia delle modifiche riprestinandola al momento dell'apertura del buffer. - Questo aggiornamento introduce un nuovo motore delle espressioni regolari. Quello precedente utilizzava l'algoritmo di backtracking; il pattern veniva confrontato con il testo, e se questa operazione falliva, il confronto veniva eseguito usando una seconda modalità. Il motore funzionava correttamente per pattern semplici, tuttavia, richiedeva tempi più lunghi per pattern più complessi usando un testo più grande. Il nuovo motore prende in considerazione lo stato, e utilizza le alternative possibili archiviando gli stati del pattern. Anche se questo percorso è più lento per pattern semplici, il confronto con quelli più complessi usando testi più lunghi, è più veloce. In particolare, questa modifica migliora l'evidenziazione della sintassi per i file XML e JavaScript con linee molto lunghe.