Kompilieren mit clang anstelle von gcc

Heruntergeladen habe ich openssh-6.4p1 für Linux, und ich möchte, um es zu kompilieren mit clang statt gcc. Wie kann ich sagen, die Zusammenstellung der engine zu tun? Muss ich ändern configure?

  • Ausführung: CC=clang ./configure ...
  • Das funktioniert, aber wie kann ich die erzeugt LLVM-Module, die während des Prozesses?
  • Ich weiß nicht viel über LLVM. Ich weiß nicht von irgendeiner Weise, es zu tun, es sei denn, LLVM bauen kann sowohl die .o Datei-und Modul-Datei in den gleichen Befehl. Wenn Sie es kann, Sie können zusätzliche Argumente an die compile-Zeile, um zu erzwingen, dass die Verwendung von CFLAGS. E. g., CC=clang CFLAGS='-emit-llvm' ./configure. Wenn Sie zum ausführen der LLVM getrennt, einmal um das Objekt und einmal für das Modul, dann ist es wahrscheinlich, es gibt keinen Weg, es zu tun, ohne größere änderungen an der build-Umgebung, weil Sie haben, um eine völlig neue Reihe von Regeln.
  • Ich will einfach nur, um die IR-Darstellung der einzelnen C-Quell-Datei, so kann ich eine Analyse durchführen, die auf die IR. Nachdem ich analysieren, soll ich dann kompilieren Sie alle IR-Dateien in das native-code.
  • Verwenden Sie '-flto " - option.
  • Wird das kompilieren nur IR-Dateien, oder wird es zu kompilieren der Binärdateien und lassen Sie die IR-Dateien auch dort? Ich bin mir nicht sicher, ich bin das Verständnis der Anweisungen.
  • mit -flto alle Objekt-Dateien werden in IR. Es gibt auch eine linker-option (wenn Sie gold) zum halten der kombinierten IR-Modul, z.B., -Wl,-plugin-opt=also-emit-llvm
  • Der kombinierte IR-Modul, das eine große Objekt-Datei, nehme ich an?

InformationsquelleAutor RouteMapper | 2013-11-22
Schreibe einen Kommentar