qeldroma75
12.04.04, 15:03
Neulich habe ich einen Artikel entdeckt, der als Kurztipp erwähnte, das man mit "strip" eine binary-Datei entscheidend verkleinern kann, da alle "String-Symbole" durch einfache Symbole ersetzt würden. Am Beispiel Kmail hat das glatte 400 kB (!!) Unterschied ausgemacht.
Nun führt mich das natürlich in Versuchung, alle executables und libraries zu "strippen", jedoch stellen sich mir da drei Fragen:
1. Als Optionen kann ich wählen, Wie ich "strippe". Doch habe ich leider keine genaue Ahnung, was welcher Weg für Konsequenzen hat.
-s --strip-all Remove all symbol and relocation information
-g -S -d --strip-debug Remove all debugging symbols & sections
--strip-unneeded Remove all symbols not needed by relocations
-x --discard-all Remove all non-global symbols
-X --discard-locals Remove any compiler-generated symbols
Also ist nun die Frage, was ich von "-s, -g -S -d, --strip-unneeded, -x, -X" tatsächlich anwenden kann, ohne mein System zu beeinträchtigen (könnte mir denken, das es bei statischen Libs Ärger geben könnte)
2. Wie kann ich in einem Script, welches ich dann über die Verzeichnisse laufen lasse, sagen, wie es herausfindet, ob eine Datei binär ist, oder nicht?
3. Welche Compiler(gcc)-Option muß ich setzen, damit das von selbst gleich beim kompilieren gemacht wird?
Nun führt mich das natürlich in Versuchung, alle executables und libraries zu "strippen", jedoch stellen sich mir da drei Fragen:
1. Als Optionen kann ich wählen, Wie ich "strippe". Doch habe ich leider keine genaue Ahnung, was welcher Weg für Konsequenzen hat.
-s --strip-all Remove all symbol and relocation information
-g -S -d --strip-debug Remove all debugging symbols & sections
--strip-unneeded Remove all symbols not needed by relocations
-x --discard-all Remove all non-global symbols
-X --discard-locals Remove any compiler-generated symbols
Also ist nun die Frage, was ich von "-s, -g -S -d, --strip-unneeded, -x, -X" tatsächlich anwenden kann, ohne mein System zu beeinträchtigen (könnte mir denken, das es bei statischen Libs Ärger geben könnte)
2. Wie kann ich in einem Script, welches ich dann über die Verzeichnisse laufen lasse, sagen, wie es herausfindet, ob eine Datei binär ist, oder nicht?
3. Welche Compiler(gcc)-Option muß ich setzen, damit das von selbst gleich beim kompilieren gemacht wird?