Ich habe einen neuen LLVM-Optimierungspass geschrieben. Ich habe diesen Pass hinzugefügt, indem ich ein neues Verzeichnis an folgendem Ort erstellt habe: llvm / lib / Transform / AddSub
Ich folge den in der llvm-Dokumentation genannten Schritten: http://llvm.org/docs/WritingAnLLVMPass.html
Beim Kompilieren bekomme ich aber Verbindungsfehler. Möglicherweise sind meine Build- und Makefile-Einstellungen nicht korrekt.
Relocation R_X86_64_PC32 gegen undefiniertes Symbol `_ZTVN12_GLOBAL__N_18AddSubE" kann nicht verwendet werden, wenn ein Shared Object erstellt wird; Rekompilieren mit -fPIC
Wenn ich einen unabhängigen llvm-Pass geschrieben und in ein neues Verzeichnis in llvm eingefügt habe: llvm / lib / transform /
Welche Makefile oder Build-Änderungen muss ich beim Schreiben eines unabhängigen Passes vornehmen?
Antworten:
0 für die Antwort № 1Ich bin auf den gleichen Fehler gestoßen, als ich versuchte, die Anleitung zum Schreiben eines LLVM-Passes zu befolgen. Für mich war das Update eine Zeile wie diese:
char MyPassName :: ID = 0;
(Ich hatte diesen Schritt in den Richtungen übersprungen.)