章 3. 編譯器與工具

dracut 會根據 iBFT 的項目配置 VLAN

之前,即使 iBFT 的 VLAN 參數是存在且正確時,dracut 工具程式並不會建立 VLAN 網路介面。透過這次更新,iSCSI 與 VLAN 啟動時,會正常運作。

gcc 支援 System z 執行檔的熱修補功能

gcc 的 hotpatch(熱修補)屬性支援 System z 二進位檔的多執行續之線上升級。透過這次更新,就可以使用 function 屬性來選擇要升級的函數,並使用 -mhotpatch= 選項為所有函數啟用熱升級功能。
啟用 hotpatch 功能對軟體大小與效能有著負面影響,因此建議您把熱升級功能用在特定的函數上,而非一般環境中。

curl 對 TLS 版本的支援有所改變

這項更新引介了 curl 的新選項:--tlsv1.0--tlsv1.1--tlsv1.2,以指定用在與 NSS 協調的 TLS 通訊協定之次要版本。為了支援此功能,相對應的 CURL_SSLVERSION_TLSv1_0、CURL_SSLVERSION_TLSv1_1 與 CURL_SSLVERSION_TLSv1_2 常數已經納入 libcurl API 中。curl 指令的 --tlsv1 選項之現有語法、libcurl API 的 CURL_SSLVERSION_TLSv1 常數都已經被修改,能與最高的、由用戶端與伺服器端支援的 TLS 1.x 通訊協定進行協調。

Python ConfigParser 對未提供值的選項之處理更為寬容

之前 Python ConfigParser 對於每個選項都需要對應的值,但某些配置檔(例如 my.cnf)包含的選項就沒有值。因此,ConfigParser 就無法讀取這類配置檔。這問題已被回報至 Python 2.6.6,現在 ConfigParser 能讀取包含選項但沒有值的配置檔。

tcpdump 支援-J、-j 與 --time-stamp-precision 選項

由於 kernel、glibc 與 libpcap 提供了 API 以取得以毫秒為單位的時間戳記,tcpdump 也隨之更新以使用這功能。現在使用者可以查詢哪個時間戳記來源可用(-J)、設定特定的時間戳記來源(-j)並使用特定的解析方式來請求時間戳記(--time-stamp-precision)。

在 SCSI 裝置間複製資料的工具程式有所改善

得益於 sg3_utils 套件中的 SCSI 通訊協定,現在有了更有效率的工具程式,用以在儲存裝置之間複製資料。要啟用此功能,sg_xcopysg_copy_results 程式必須納入 sg3_utils 套件中。

ethtool 支援定義自訂的 RSS 雜湊金鑰

ethtool 中加入了改進功能,讓使用者可以自訂 RSS 雜湊金鑰。這項改進功能可根據收到的交通善用收取佇列,並透過為預期的交通選擇適合的金鑰來增強效能與安全性。

tcpdump 加入對 setdirection 的支援

現在 tcpdump 套件包括了對 setdirection 的支援;這能透過 -P 旗標,來指定要擷取的是收到的封包(-P in)、發送的封包(-P out)、或兩者皆是(-P inout)。

sysctl 可以從系統方向的群組中讀取

這項更新為 sysctl 工具程式引介了新的 --system 選項。此選項能讓 sysctl 從系統目錄的群組處理配置檔。

mcelog 套件已更新至上游版本 109

mcelog 套件已更新至上游版本 109。跟上個版本比起來,此版本修正了多個 bug,提供了多種增強功能。其中最顯著的,是現在 mcdlog 支援了 Intel Core i7 處理器架構。

biosdevname 已更新至上游版本 0.6.2

biosdevname 套件已更新至上游版本 0.6.2。其中最重要的功能,是提供了 Mellanox 驅動程式的 dev_port 屬性,允許忽略 FCoE 裝置的名稱。

改進 PCRE 函示庫

如果可執行檔並不使用正確的 UTF-8 順序,PCRE 配對就會失敗;要讓 grep 工具程式從這失敗中復原,以下功能已經加入 PCRE 函示庫:
* 現在 pcre_exec() 函式庫會檢查超出範圍的起始位移值,並回報 PCRE_ERROR_BADOFFSET 錯誤,而非回報 PCRE_ERROR_NOMATCH 錯誤或陷入無限迴圈。
* 如果呼叫 pcre_exec() 函式來進行 UTF-8 配對,但主題字串的 UTF-8 錯誤,且 ovector 陣列引數夠大,那麼第一個主題字串位移值的 UTF-8 位元錯誤與詳細原因碼,會以 ovector 陣列元素傳回。除此之外,現在 pcretest 工具程式可以用來顯示這些詳細資料。請注意,透過這次更新,pcre_compile() 函式會回報第一個錯誤的 UTF-8 位元,而不是最後一個位元。也請注意,pcre_valid_utf8() 函式庫的簽章並非給公眾使用,且已經變更。最後,請注意現在 pcretest 工具程式會附加一般人可以讀懂的錯誤訊息至錯誤碼中。

glibc 動態載入程式中加入了對 Intel AVX-512 的支援

現在 glibc 動態載入程式支援 Intel AVX-512 延伸指令集。這項更新能讓動態載入程式視需要儲存、回復 AVX-512 註冊機碼,以避免支援 AVX-512 的應用程式因為同樣使用 AVX-512 的稽核模組而失敗。

Valgrind 能辨識 Intel MPX 指令集

之前 Valgrind 無法辨識 Intel 的 MPX(記憶體保護延伸指令集,Memory Protection Extension)、或是使用 MPX bnd 前綴的指令集。因此,Valgrind 會終止使用 MPX 指令集,並傳回 SIGKILL 訊號。現在 Valgrind 能辨識新的 MPX 指令集與 bnd 前綴。所有新的 MPX 指令集都是非運作性指令,且 bnd 前綴會被忽略。因此,使用 MPX 指令集或 bnd 前綴的程式會在 Valgrind 下執行,就好像 MPX 並未啟用一樣,這樣程式就不會被終止。

free 工具程式支援易讀的輸出資料

free 工具程式已加入 -h 選項。這選項能將所有輸出欄位自動縮寫成三位數,包括單位,讓可讀性更高。

w 工具程式支援 -i 選項

w 工具程式納入了 -i 選項,在 FROM 欄位中顯示 IP 位址,而不是主機名稱。

vim 已更新至 7.4 版

vim 套件已經更新至上游版本 7.4,跟上個版本比起來,修正了多個 bug、提供了多種增強功能。其中最顯著的,是:* 透過啟用 undofile 選項,vim 文字編輯器支援一致性回復變更的功能。預設上,卸載緩衝區時,vim 會刪除為該緩衝區建立的變更樹。然而,啟用一致性回復變更功能後,vim 會自動儲存變更記錄,並於再次開啟緩衝區時載入記錄。* 此更新引介了新的常規表示式引擎。之前的引擎使用了回溯演算法(backtracking);文字會從一個方向與樣式相比對,如果失敗的話,就會從另一個方向再試一次。這個引擎對於簡單的樣式來說,會正確運作;然而,比對長字串與複雜樣式時,所花的時間會顯著增加。新的演算法則使用了靜態機器邏輯,這會嘗試現有字元的所有可能選擇,並儲存樣式的可能狀態。雖然,這方法對於簡單的樣式來說,會比較慢;但比對長字串與複雜樣式時,會比較快。這項變更最顯著的,對 JavaScript 與 XML 檔案進行長字串之語法強調時,有顯著的改進。