Gibt es Unterschiede in der Leistung / Stabilität?
Sind diese Unterschiede die Zeit wert, um die gesamte Welt neu zu kompilieren?
Ich würde gerne Vorschläge, Erklärungen und bessere Praktiken von erfahrenen Gentoo-Benutzern / Programmierern / Programmierern / Administratoren hören ...
Vielen Dank im Voraus!
Von Ihrem Link aus empfinden Sie es nicht wirklich, sie zu ändern. Sie sagen nur, es sei nicht notwendig. Sie haben sie auch nicht geändert. Die Ausgabe von `emerge --info` ist das, was bereits eingestellt ist. Wenn Sie also den gleichen Wert explizit setzen, ändert sich dadurch nichts. Diese Frage könnte mehr zum Thema auf unix.stackexchange.com sein. Seien Sie also nicht verwirrt, wenn sie dorthin verschoben wird (die Konten beider Sites werden zusammengeführt, wenn Sie sich mit derselben Authentifizierung registrieren).
Tim vor 11 Jahren
0
@Tim Werden Sie "--as-needed" automatisch durch "-Wl, -flto -Wl, -O2" ersetzt?
user2868193 vor 11 Jahren
0
Entschuldigung, ich habe diesen Unterschied übersehen. Du veränderst sie etwas. Übrigens: Sollten Sie LTO nicht auch in den LDFLAGS aktivieren?
Tim vor 11 Jahren
0
Übrigens ist "-march" eine Obermenge von "-mtune". Beides zu haben ist sinnlos.
Daniel B vor 9 Jahren
0
2 Antworten auf die Frage
1
robbat2
Sie müssen Ihre CFLAGS dort nicht ändern, um -Wl, -lfto hinzuzufügen . Wenn es nicht einige Pakete gibt, die CFLAGS fälschlicherweise zum Verknüpfen verwenden, ist dies nicht hilfreich (und diese Pakete sollten bugzilla gemeldet werden).
Sie müssen jedoch LDFLAGS -flto hinzufügen, um den vollen Nutzen von LTO zu erhalten. LDFLAGS = "- Wl, -O1-Wl, - bei Bedarf - Wl, -flto"
Sie erhalten keine LTO-Leistung, bis Sie den Zusatz in Ihrem LDFLAGS haben. Daher müssen Sie alles neu kompilieren, das LTO nicht explizit aktiviert / deaktiviert hat.
1
anonymous
Bei LTO-Builds müssen die gleichen Optimierungsflags sowohl an den Compiler als auch an den LTO-Linker übergeben werden. Dies bedeutet nicht nur -On, sondern eigentlich alle anderen Optimierungsflags.
Wenn Sie die endgültige Binärdatei erstellen und die Verknüpfung mit dem Compiler selbst in einem einzigen Durchgang erstellen, funktioniert alles. Wenn Sie es in zwei Durchgängen machen (libtool, ich schaue Sie an!), Bricht die Hölle los.
Ja, es ist genau richtig zu erzwingen, dass alles, was mit CFLAGS und CXXFLAGS in Bezug auf die Optimierung zu tun hat, auch in LDFLAGS vorhanden ist. Sie müssen übereinstimmen, damit die Ergebnisse korrekt sind. Die Tatsache, dass die gcc-Dokumentation etwas Anderes impliziert, ist ein gemeldeter Fehler gegen gcc.
Ob Sie dies erzwingen müssen, indem Sie nichts Besonderes für LDFLAGS tun oder es in LDFLAGS duplizieren, hängt vom Build-System des Pakets ab und davon, ob eine spätere Verlinkung durch libtool und dessen Eigenschaften auftritt.