Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ выступил ΠΏΡ€ΠΎΡ‚ΠΈΠ² парсСров Kconfig, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ

Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ отказался ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π² ядро ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π΅ символ табуляции Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π» Π² Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° FTRACE_RECORD_RECURSION_SIZE Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ядра Kconfig. ИзмСнСниС Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Fedora с ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ использованиС табуляций ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ сбою Π² Ρ€Π°Π±ΠΎΡ‚Π΅ парсСра ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ВмСсто ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ измСнСния Линус Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π² ядро свой ΠΏΠ°Ρ‚Ρ‡, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ символы табуляции Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ настройки PAGE_SHIFT, Π·Π°Π΄Π°ΡŽΡ‰Π΅ΠΉ смСщСниС для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² страниц памяти.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ табуляций Π² настройки, Π±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, Ρ‡Π΅ΠΌ FTRACE_RECORD_RECURSION_SIZE, ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ с настройками ядра допускаСтся использованиС ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², Ρ‚Π°ΠΊ ΠΈ табуляций, поэтому Ссли парсСр Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ строку с табуляциСй — это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° парсСра, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ устранСна Π² Π½Ρ‘ΠΌ. Команда «make defconfig» ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ табуляции, поэтому ΠΈ внСшниС парсСры Ρ‚ΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ.

ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π² поставляСмом Π² ядрС Kconfig Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², Π½ΠΎ ΠΈ табуляций, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ парсСры ΠΈ ΡΡ‚ΠΈΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… исправлСниС. ИдСя ΠΏΠΎΠ΄Π³ΠΎΠ½ΡΡ‚ΡŒ ядро ΠΏΠΎΠ΄ сбойныС парсСры воспринимаСтся ΠΊΠ°ΠΊ ущСрбная, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°ΠΆΠ΅ Ссли Π² эталонном Kconfig всСгда Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΎΠ»Π΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ табуляции Π² настройках Π½Π° своих систСмах ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ использованиС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ сбоям Π² нСисправлСнных сторонних парсСрах.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ