Hallo,
ich habe es so verstanden, dass clang der neue Standard beim Kompilieren sein soll und dass es ab 9.1 standardmäßig installiert ist. Also habe ich mir gedacht, dass ich zuerst mein frisch installiertes System mit clang neu baue, eventuell später meinen Kernel abspecke und danach erst anfange, meine benötigte Software aus den Ports zu installieren.
Gesagt, getan, https://wiki.freebsd.org/BuildingFreeBSDWithClang gibt eigentlich eine ganz gute Anleitung, sie hat aber so ihre Tücken.
Deswegen stelle ich heute einige Verständnisfragen:
Ich setze mir vorsichtshalber schon mal den
auf... Danke für eure Antworten! 
ich habe es so verstanden, dass clang der neue Standard beim Kompilieren sein soll und dass es ab 9.1 standardmäßig installiert ist. Also habe ich mir gedacht, dass ich zuerst mein frisch installiertes System mit clang neu baue, eventuell später meinen Kernel abspecke und danach erst anfange, meine benötigte Software aus den Ports zu installieren.
Gesagt, getan, https://wiki.freebsd.org/BuildingFreeBSDWithClang gibt eigentlich eine ganz gute Anleitung, sie hat aber so ihre Tücken.
Deswegen stelle ich heute einige Verständnisfragen:
- aus dem Artikel wird nicht ersichtlich, dass man die sources mit
installiert, ich habe es jedoch mittlerweile herausgefundenCode:
svn checkout svn://svn.freebsd.org/base/releng/9.1/ /usr/src -
verstehe ich nicht so recht. Ist das jetzt eine andere Version der Sources, oder gibt es so etwas ähnliches, wie "headers", wie man das auch von Linux her kennt? Mein allergrößtes Problem ist hier aber, von welchem Verzeichnis aus man den Befehl starten muss, weil er ja offensichtlich ein Unterverzeichnis "src" erstellt. Ich habe mich noch nicht getraut, ihn unter /usr/ auszuführen, um mir nicht meine mühsamen heruntergeladenen sources (in China läuft das Internet oft seeeehr laaaaangsaaaaam) zu zerschießen. Ich komme an dieser Stelle nicht weiter.Code:
svn co http://svn.freebsd.org/base/head srcsteigt mir mit der Fehlermeldung "make: don't know how to make kernel. Stop" aus. Verstehe ich auch, der Befehl wird ja als chroot in meiner eben neu erstellten Welt ausgeführt und darin gibt es keine sources. Nur sagt die Anleitung nichts, dass man die Sources auch dorthinein kopieren muss.Code:make kernel KERNCONF=GENERIC INSTKERNNAME=clang - Ich habe noch keine Jails eingerichtet, plane es aber in Zukunft, z.B. für den Apache22. Ist es richtig, diese Einstellungen auch schon in der make.conf zu setzen.
- Grundsatzfrage: Ist es generell ratsam, überhaupt schon auf clang umzustellen, oder sollte man als Anfänger besser die Finger von lassen?
- Benutzt man bei der Analyse entweder den "static analyzer" oder den analyzer aus den vanilla sources oder muss ich die Befehle aus beiden Sektionen ausführen? Was ist das eigentlich?
- Sind die Link Time Optimizations optional oder obligatorisch?
- Wozu braucht man KLEE?
Ich setze mir vorsichtshalber schon mal den
auf... Danke für eure Antworten! 