И так для того чтобы пакеты собирались нормально и не ломались сами и не ломали вашу систему , необходимо настраивать процесс компиляции пакетов , с помощью добавления параметров в конфигурационный файл: /etc/makepkg.conf
Дело в том , что в этом конфиге записан алгоритм для компилятора , который определяет , с какими инструкциями процессора собирать пакет , и вот эти как раз инструкции процессора , могут серьзно отличаться , от реальных поддерживаемых процессором инструкций , поэтому пакет собирается неправильно и иногда это приводит к поломкам самого пакета или других зависящих от него компонетов . Поэтому так важно перед любой компиляцией отредактировать конфигурационный файл /etc/makepkg.conf
Есть два варинта , которые я нашел в процессе изучения этого вопроса :
- Вариант , наиболее надежный , здесь используется параметр native -02 для оптимально быстрой и безопасной сборки пакетов , потому что параметр -O3 потенциально может приводить к сбоям при сборке пакетов , теоритически , хотя на практике , этого мной небыло замечено . Кроме того включен RUSTFLAGS и MAKEFLAGS=»-j$(($(nproc)+1))» , здесь для мейкфлаг используется функция которая задействует все возможные ядра и потоки для компиляции прибавляя +1 поток к общей сумме , что также существенно ускоряет процесс компиляции пакетов .
2. Вариант , наиболее быстрая и качественная компиляция за счет использования все того же флага -native и флаг -O3 . Кроме того включен RUSTFLAGS и MAKEFLAGS=»-j$(($(nproc)+1))» , здесь для мейкфлаг используется функция которая задействует все возможные ядра и потоки для компиляции прибавляя +1 поток к общей сумме , что также существенно ускоряет процесс компиляции пакетов . А также используется NINJAFLAGS , который многократно ускоряет сборку пакетов с использованием ninja компилятора
#
CARCH=»x86_64″
CHOST=»x86_64-pc-linux-gnu»
#— Compiler and Linker Flags
#CPPFLAGS=»»
CFLAGS=»-march=native -mtune=native -O3 -pipe -fno-plt»
CXXFLAGS=»-march=native -mtune=native -O3 -pipe -fno-plt»
LDFLAGS=»-Wl,-O1,—sort-common,—as-needed,-z,relro,-z,now»
LTOFLAGS=»-flto=auto»
RUSTFLAGS=»-C opt-level=3 -C target-cpu=native»
#— Make Flags: change this for DistCC/SMP systems
MAKEFLAGS=»-j$(($(nproc)+1))»
NINJAFLAGS=»-j$(($(nproc)+1))»
#— Debugging flags
DEBUG_CFLAGS=»-march=native -mtune=native -O3 -pipe -fno-plt»
DEBUG_CXXFLAGS=»$DEBUG_CFLAGS»
#DEBUG_RUSTFLAGS=»-C debuginfo=2″