Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Gentoo: Statisches Linken, Paketzugehörigkeit einer Datei

  1. #1
    Alphageek
    Registriert seit
    Nov 2002
    Ort
    Berlin
    Beiträge
    1.122

    Gentoo: Statisches Linken, Paketzugehörigkeit einer Datei

    Hallo!

    Man könnte sich sicherlich streiten, dieses Post in einem anderen Bereich unterzubringen. Steinigt mich, wenn ihr denkt, es ehört woanders hin.

    Gentoo baut mittels emerge Pakete selbst. Wenn ich ein Paket statisch linken will, kann ich entweder prelink nutzen oder den ebuild editieren. Beides erscheint mir nicht so durchdacht. Gibt es keinen simplen export oder Flag für emerge, der statisch linkt? Hm, ich glaube, falls es ein Schalter für emerge ist, sollte ich den lieber rausfinden. export-Flag würde mich interessieren.

    Wie kann ich herausfinden, zu welchem Gentoo-Paket eine bestimmte Datei auf meinem Systen (/usr/lib/libc.a) gehört?

    Danke,

    AD!
    1 L Randal wrote a book, a 2 L Llama for the look,
    but the one we owe it all is the 3 L Larry Wall.
    Confucius: He who play in root, eventually kill tree.

  2. #2
    - - - - - - - - - - Avatar von zander
    Registriert seit
    Mar 2001
    Beiträge
    6.144
    Die Operation, die prelink durchführt, entspricht nicht dem statischen Linken, bei dem sämtliche benötigten Bibliotheken (bzw. die benutzten Routinen) unmittelbar Bestandteil einer (neuen) ausführbaren Datei werden. Letzteres wirkt sich schnell in hohem Speicherbedarf (sowohl auf der Festplatte als auch im Hauptspeicher) aus. Du willst das ganz sicher nicht mit umfangreichen Softwarepaketen wie KDE/GNOME machen...

  3. #3
    Premium Mitglied Avatar von Stage
    Registriert seit
    Jun 2002
    Beiträge
    810
    einige Pakete unterstützen das USEFlag static

    vielleicht hilft dir das weiter
    Kernel (2.6.x) Konfigurations-Howto
    Gentoo Optimierungs-Howto
    IRC: irc.freenode.org - #gentoo-anfaenger

  4. #4
    Alphageek
    Registriert seit
    Nov 2002
    Ort
    Berlin
    Beiträge
    1.122
    Original geschrieben von zander
    Die Operation, die prelink durchführt, entspricht nicht dem statischen Linken... Du willst das ganz sicher nicht mit umfangreichen Softwarepaketen wie KDE/GNOME machen...
    Da hast du wohl Recht. Ich habe dies jetzt auch gelesen, klingt trickreich, was prelink da macht.

    Original geschrieben von stage
    einige Pakete unterstützen das USEFlag static. vielleicht hilft dir das weiter
    Ja, das tut es theoretisch. Ich habe mich auch schon fast damit abgefunden, das emerge dieses Feature nicht an den User heranträgt. Tut es glibc || Wo kann ich herausfinden, welches Paket dies tut?

    Danke für die Hilfe,

    AD!
    1 L Randal wrote a book, a 2 L Llama for the look,
    but the one we owe it all is the 3 L Larry Wall.
    Confucius: He who play in root, eventually kill tree.

  5. #5
    - - - - - - - - - - Avatar von zander
    Registriert seit
    Mar 2001
    Beiträge
    6.144
    Die meisten Anwendungen lassen sich prinzipiell statisch linken, vorrausgesetzt die jeweils benötigten Bibliotheken liegen (auch) in statischer Form vor (siehe weiter unten). Da in der Regel die Umgebungsvariablen CFLAGS und LDFLAGS respektiert werden, kann man diese durch -static und -Bstatic respektive ergänzen um die Erstellung von statisch gelinkten, ausführbaren Dateien zu erzwingen (das kann aber auch fehlschlagen). Bei C++ Anwendungen ginge es analog mit CXXFLAGS. glibc läßt sich als statische Bibliothek übersetzen, ist so aber zunächst nutzlos und wird in dieser Form daher häufig als Bestandteil des glibc Entwicklerpaketes geliefert.

  6. #6
    Alphageek
    Registriert seit
    Nov 2002
    Ort
    Berlin
    Beiträge
    1.122
    Kann es möglich sein, daß durch die Empfindlichkeit der Kompilierung von glibc gegenüber Compileroptimierungen > -O2 die Variable CFLAGS aus der Kompilierung entfernt wurde? Ich habe gestern nach auf gut Glück in meine /etc/make.conf in die CFLAGS "-static" eingetragen und neu kompiliert, aber heute morgen war meine /usr/lib/libc.a noch dynamisch gelinkt.

    AD!
    1 L Randal wrote a book, a 2 L Llama for the look,
    but the one we owe it all is the 3 L Larry Wall.
    Confucius: He who play in root, eventually kill tree.

  7. #7
    - - - - - - - - - - Avatar von zander
    Registriert seit
    Mar 2001
    Beiträge
    6.144
    Ich weiß nicht, wie glibc auf CFLAGS/LDFLAGS reagiert; libc.a ist aber sicherlich nicht dynamisch gelinkt; .a Dateien sind ar Archive (statische Bibliotheken) mit einer Reihe von .o Dateien (object files), die nur für die Erstellung von statisch gelinkten, ausführbaren Dateien benötigt werden. Noch einmal zur Verdeutlichung: libc.a und andere statische Bibliotheken haben auf bestehende, dynamisch oder statisch gelinkte Anwendungen keinerlei Einfluß.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •