Skip to content
Menu
TechDudes.de
  • Allgemein
  • Server
  • Linux
  • Impressum
TechDudes.de

Arch Linux: Mit mehreren Kernen kompilieren und CFLAGS anpassen

Posted on 12. August 2013 by Dennis

Ähnlich wie bei Redhat/CentOS gibt es im Makepkg-System von Arch Linux einen Parameter, der das „make -j“ – also die Anzahl der Jobs beim Kompilieren steuert. Unter /etc/makepkg.conf befinden sich sämtliche Einstellungen, die beim Paketbau den Compiler betreffen. Mittlerweile habe ich auf einem PC einen AMD FX-8350 alias ‚Vishera‘, quasi den Nachfolger des nicht so erfolgreichen Bulldozer. Die neuen Kerne nennen sich „Piledriver“, was später noch eine Rolle spielt. Wenn ich unter Arch mal ein Paket selbst baue, dann lohnt es sich aber die 8 Pseudokerne voll auszulasten, um die Kompilierzeit zu verkürzen. Naja und wenn wir eh schon an der Datei schrauben, können wir auch gleich noch die CFLAGS auf unser System anpassen – so kommt ein wenig Gentoo-Feeling auf ;).

Makepg.conf anpassen

Die Standardvariante sieht so aus:

#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
CARCH="x86_64"
CHOST="x86_64-unknown-linux-gnu"
#-- Compiler and Linker Flags
# -march (or -mcpu) builds exclusively for an architecture
# -mtune optimizes for an architecture, but builds for whole processor family
CPPFLAGS="-D_FORTIFY_SOURCE=2"
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4"
CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro"
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"
#-- Debugging flags
DEBUG_CFLAGS="-g -fvar-tracking-assignments"
DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"

Diese Konfiguration passt so ziemlich auf jedes System, das x86-64 unterstützt. Allerdings ist -j2 genauso allgemeingültig gewählt und lässt viele Mehrkernprozessoren nur mit halber Kraft arbeiten.

Wenn ich nun einen Kernel baue, wären zum einen Optmierungen möglich, die im Kernel unter „Piledriver“ laufen (bei make menuconf mal durch die Optionen schauen), zum anderen kann man dem Compiler (bei uns GCC) auch noch weitere Optionen mit auf den Weg geben. Die entsprechenden GCC Paramter wären bei mir „bdver2“ für Bulldozer Version 2 – allerdings ist makepkg hier einen Schritt voraus. Denn das Flag „native“ bestimmt selbständig die unterstützten CFLAGS und setzt auch die CXXFLAGS korrekt. Daher steht bei mir nun native. Lediglich der Parameter „MAKEFLAGS“ wurde von mir auf „-j9“ gesetzt, da das System über 8 logische Kerne in 4 Modulen verfügt.

#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
CARCH="x86_64"
CHOST="x86_64-unknown-linux-gnu"
#-- Compiler and Linker Flags
# -march (or -mcpu) builds exclusively for an architecture
# -mtune optimizes for an architecture, but builds for whole processor family
CPPFLAGS="-D_FORTIFY_SOURCE=2"
CFLAGS="-march=native -O2 -pipe -fstack-protector --param=ssp-buffer-size=4"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro"
#-- Make Flags: change this for DistCC/SMP systems
MAKEFLAGS="-j9"
#-- Debugging flags
DEBUG_CFLAGS="-g -fvar-tracking-assignments"
DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"

Dank des neu gesetzten Makeflags -j9 sind nun alle Kerne beim Kernel kompilieren ausgelastet.

Dank des Makeflags -j9 rechnen viele Kerne beim Kernelbau
Dank des Makeflags -j9 rechnen viele Kerne beim Kernelbau

Die in /etc/makepg.conf gesetzte Konfiguration sollte nun bei jedem ‚makepkg $insertrandomAURpaket‘ greifen, sofern der Paketmaintainer aus dem AUR Repository in seiner Konfiguration die Parameter nicht überschreibt oder anderweitig hardcodiert.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Neueste Beiträge

  • Smart 451 Schlüsselbatterie wechseln und Schlüssel wieder anlernen
  • VDR Server im LXC-Container unter Proxmox
  • Einen guten Start in 2021
  • Arch Linux in Proxmox LXC – first Steps
  • Pimp your Zbox

Kategorien

  • Allgemein
  • Android
  • Arch Linux
  • Browser
  • Chrome
  • Debian
  • Docker
  • Firefox
  • IBM (Allgemein)
  • IBM (Server)
  • KVM
  • Linux
  • LXC
  • NAS
  • Raspberry Pi
  • Redhat / CentOS
  • Server
  • Sonstiges
  • Sun
  • Thunderbird
  • Toolbox
  • Ubuntu
  • Virtualisierung
  • Windows
  • Xen

Schlagwörter

18.04 451 Acer Android Arch Linux Aspier Batterie wechseln bios bios-mod container denicid docker Dropbox DVB-C dvb-c2 DVB-S2 id4me Install Installation Kubuntu kvm lga Linux LXC mailcow microcode mSATA nextcloud pin-mod Proxmox proxmox-ve pve ReverseProxy Schlüssel Schlüssel anlernen Schlüsselbatterie Smart Smart451 SSD Thunderbird Ubuntu V3-771 V3-771G VDR vt-d
©2025 TechDudes.de | Theme: Wordly by SuperbThemes