linken von speziellen ssl libraries

  • Hallo zusammen,


    ich weiß das das Ganze hier recht off-topic ist.
    Aber vielleicht kann mir ja einer weiterhelfen.
    Kurz: Ich versuche den bitcoind (Bitcoin Core Demon) auf meinem CentOS 7 zu bauen.
    Leider hat die mitgelieferte openSSL Version nicht die nötigen ECC Kurven an bord.
    Daher habe ich das aktuelle OpenSSL Release einfach selbst gebaut.
    Nur jetzt versuche ich bitcoin-core dazu zu bekommen gegen die neue zu linken und nicht gegen die (alte) system libssl.


    Näheres hier -> linkl

  • Hm, also entweder statisch reinlinken (gegen eine libssl.a) oder die Libraries beim Programmstart extra angeben.


    Code
    1. LD_PRELOAD=/path/to/my/malloc.so /bin/ls


    läd die /path/to/my/malloc.so in den Speicher und dann alle restlichen Libraries, die ls benötigt

  • Ok, ich habe jetzt statisch die libcrypto.a und libssl.a gelinked.
    Aber ich bekomme einmal folgende Meldung:

    Code
    1. *** Warning: Linking the shared library libbitcoinconsensus.la against the
    2. *** static library /opt/ssl/lib/libcrypto.a is not portable!


    was bedeutet das ?

  • Da ist nicht genau sagen kann, was du gemacht hast, schwierig.


    So auf Anhieb würde ich OpenSSL mit -fPIC kompilieren. Der Fehler ist mir aber auch so noch nicht unter gekommen.

  • nun openssl habe ich mit -fPIC kompiliert ...


    In bitcoin-0.10.2 habe ich folgendes in den Makefiles geändert:


    ... der bitcond läuft ... aber was soll dan die WARNUNG ... (keine Fehler, sonst hätte er den Kompilierungsvorgang abgebrochen)

  • Vorsicht gefährliches Halbwissen: (keine Lust zu suchen) ;)


    Ich deute es mal so, dass mit portable ... portierbar gemeint ist, also auf andere Systeme HP-UX, MacOS, Win übertragbar gemeint ist.


    Das heißt:


    Wenn es auf deinem System läuft, hast du Glück. Wenn du deine Änderung des Makefiles auf einem anderen System ausprobieren würdest, ist die Chance groß, dass nix läuffähiges rauskommt.
    So zumindest meine Deutung durch die Glaskugel.