Keresés

Új hozzászólás Aktív témák

  • Frawly

    veterán

    válasz Archttila #8645 üzenetére

    Bocs, ezt hülyén írtam. Az AUR/linux-amd az eleve zenvr3-ra kéne legyen, de van egy ugyanilyen csomag, AUR/linux-amd-znver2. znver-re (Zen, Zen+) nincs külön ilyen kernel, de egy generic AUR-os kernelcsomagot viszont le lehet rá fordítani optimaliizáltan, a /etc/makepkg.conf-ba beilleszted ezt:
    CFLAGS="-march=native -O2 -pipe -fno-plt"
    CXXFLAGS="${CFLAGS}
    RUSTFLAGS="-C opt-level=2 -C target-cpu=native"
    MAKEFLAGS="-j$(nproc)"

    Ez a native kapcsoló lényegében detektálja, hogy mi az adott procihoz a legoptimálisabb fordítási profil, ami kihasználja az összes utasításkészletet. Nem csak kernelnél fog működni, hanem a összes AUR-os csomagnál életbe lép, már ha az adott csomag makepgk scripte felül nem bírálja, de ez ritka. -O2 helyett -O3-mal is lehet próbálkozni, de azt nem minden kód szereti, igaz azok felül szokták bírálni -O2-re.
    Ebből a MAKEFLAGS="-j" rész detektálja a prociszálak számát, azon belül is a nproc parancs, pl. ha 16 szálas a proci, akkor 16-tal tér vissza, és így make -j16 formában hívódik meg a make, és fordít mindent. Érdemes megejteni általánosságban is, mert sok AUR-os csomag fordítása gyorsabb lesz.

    Szerintem valami hasonló van Debian-on is, igaz ott nincs AUR, de a rendszerben valahol be lehet konfigurálni ezeket a fordítási kapcsolókat, hogy ha forráskódból forgatsz, akkor minden magot használjon, és konkrét procira optimalizáljon. Ha más nem, akkor az adott fordítandó kód makefile-jában vagy közvetlenül a fordítást végző parancsok kiadásakor írod be ezeket a környezeti változókat, pl.

    make CFLAGS="-march=native -O2 -pipe -fno-plt" CXXFLAGS="${CFLAGS} MAKEFLAGS="-j$(nproc)"

    Elvileg, mert Debianon nem csináltam még ilyet, de minden disztrón működnie kéne.

Új hozzászólás Aktív témák

Hirdetés