Cross Compiler Problem: can't load library 'libgcc_s.so.1'

Ich habe es jetzt von den Sourcen probiert. Wie kann man es denn aus den Sourcen openssl compilen, ohne LFS??

Sonst probiere ich mal per menuconfig den LFS zu aktivieren!??

Gruß
mastertester
 
mastertester schrieb:
Ich habe es jetzt von den Sourcen probiert. Wie kann man es denn aus den Sourcen openssl compilen, ohne LFS??
Du wirst noch einiges mehr machen müssen. Schau dir das Makefile ./make/libs/openssl.mk an.
 
danisahne schrieb:
Du wirst noch einiges mehr machen müssen. Schau dir das Makefile ./make/libs/openssl.mk an.

Habe das toolchain noch mal neu erstellen lassen, und dieses mal dann mit LFS.

OpenSSL lief auch per:
Code:
./config --openssldir=/home/kara/ds-0.2.5/toolchain/target  os:mipsel-linux-gcc 386 
make 
make install
ohne Probleme durch, aber weiter komme ich nicht.

Mein ./configure für ctorrent sieht so aus:

Code:
./configure --target=mipsel-linux-strip --host=mipsel-linux --build=i386 LDFLAGS=" -L/home/kara/ds-0.2.5/toolchain/target/lib -L/home/kara/ds-0.2.5/toolchain/target/include"

Habe auch schon diverse andere Parameter probiert, aber er meldet immer:
Code:
checking for SHA1_Init in -lssl... no
checking for SHA1_Init in -lcrypt... no
checking for SHA1_Init in -lmd... no
configure: error: error, Please install OpenSSL first!

Gruß
mastertester

EDIT:

Ich habe mein anderes toolchain noch mal ausprobiert, und dort findet er openssl. Wenn ich aber beim configure -static angebe, dann findet er auch kein openssl mehr. Woran kann das liegen, bzw was muss man machen?
 
Zuletzt bearbeitet:
Hi.
Schau mal in "/home/kara/ds-0.2.5/toolchain/target/lib", ob du da Dateien mit dem Namen "libssl*" findest. Die Dateien mit *.so.* sind die dynamischen Libs. Die statischen Libs haben ".a" als Endung. Wenn du statisch linken willst, dann brauchst du unbedingt die statische Lib. Normalerweise kann man beim Bauen angeben welche Version(en) compiliert werden sollen...

MfG Oliver
 
Hallo Oliver,

im Verzeichnis /home/kara/ds-0.2.5/toolchain/target/lib habe ich eine Datei mit dem Namen libssl.a

Mein Problem ist allergings, dass wenn ich per:

Code:
export PATH=/home/kara/ds-0.2.5/toolchain/target/bin:$PATH

Dieses Toolchain nehme, openssl nicht gefunden wird. Weder statisch, noch dynamisch verlinkt.

Wenn ich es aber per:
Code:
export PATH=/home/kara/buildroot_openssl_usw/build_mipsel/staging_dir/bin:$PATH

probiere, wird so lange ich nicht -static angebe openssl gefunden. Unter /home/kara/buildroot_openssl_usw/build_mipsel/staging_dir/lib liegen folgende dateien mit ssl*:

libssl.a
libssl.so
libssl.so.0
libssl.so.0.9.7

Auf der FritzBox unter /usr/lib liegt leider auch nur die libssl.so.0.9.8, und ich hätte das Programm gerne so, dass es auf jeder Box ohne weiters funktioniert....

Komischer weise hat configure so funktioniert, aber nicht statisch gelinkt:

Code:
./configure --target=mipsel-linux-strip --host=mipsel-linux --build=i386 CFLAGS="-g -02 -march=4kc" LDFLAGS="-static-libgcc" -libdir=/home/kara/usr/lib -libexecdir=/home/kara/usr/lib --oldinclude=/home/kara/ds-0.2.5/toolchain/target

make lief auch nur per:
Code:
make LDFLAGS="-all-static"

durch, aber war dann doch nicht statisch verlinkt. Nur wie komme ich jetzt weiter? Und warum findet er im /home/kara/ds-0.2.5/toolchain/target die openssl libs nicht?

Und wenn ich sie angebe, baut er sie nicht ein.....

Für weitere Hilfe wäre ich sehr dankbar...

Gruß
mastertester
 
Die OpenSSL Libs sind in ./toolchain/target/usr/lib/

Bringt es eventuell etwas, wenn du beim ./configure
Code:
-L/path/to/toolchain/target/usr/lib/
mit angibst?
 
danisahne schrieb:
Die OpenSSL Libs sind in ./toolchain/target/usr/lib/

Bringt es eventuell etwas, wenn du beim ./configure
Code:
-L/path/to/toolchain/target/usr/lib/
mit angibst?


Code:
kara@debian:~/ctorrent-1.3.2$ ./configure --host=mipsel-linux --target=mipsel-linux --build=i386 CFLAGS="-L/home/kara/ds-0.2.5/toolchain/target/usr/lib"

Geht leider auch nicht, openssl wird nicht gefunden. Weder statisch, noch dynamisch. Habt ihr noch eine Idee? (Außer das ich zu blöd bin...)


Gruß
mastertester
 
Nicht
Code:
./configure CFLAGS="-L/home/kara/ds-0.2.5/toolchain/target/usr/lib" ...
sondern
Code:
./configure -L/home/kara/ds-0.2.5/toolchain/target/usr/lib ...

Kommt aber auch ein wenig auf das Makefile an.
 
Geht nur per LDFLAGS.....
 
Per LDFLAGS mach ich es meistens so:
Code:
LDFLAGS="-L/home/kara/ds-0.2.5/toolchain/target/usr/lib" \
./configure ...
Die configure Skripte werten meist die Umgebungsvaribalen aus (kann man mit ./configure --help nachschauen, welche er auswertet)

Mfg,
danisahne
 
Ich kann machen was ich will, er findet -lssl nicht....

-lcrypt findet er auch nicht, dafür aber -lcrypto....

Woran kann das denn liegen???


Gruß
mastertester
 
Zuletzt bearbeitet:
mastertester schrieb:
-lcrypt findet er auch nicht, aber er findet -lcrypto....
Die eine ist von der uClibc und die andere vom Openssl!
Findet er eigentlich die Lib nicht, oder die Header-Datei?

MfG Oliver
 
danisahne schrieb:
...
Lass es doch dynamisch und pack sie mit auf die Box ins /usr/lib/ Verzeichnis, dann können sich die Lib noch andere Programme teilen.
...
Kann man das (a) irgendwie im laufenden Betrieb machen, oder muss ich da (b) eine neues Image bauen?

Falls (a), wie gehts das?
Falls (b), kann ich ein vorhandenes Image entpacken (tar x... ; lzma), die Datei reinkopieren und wieder packen, oder ist da mit Problemen zu rechnen?
 
Zuletzt bearbeitet:
Da wirst Du wohl den DS-Mod brauchen....


Gruß
mastertester
 
mastertester schrieb:
Da wirst Du wohl den DS-Mod brauchen....
Okay, ich geb's zu: ich hab mich nicht präzise ausgedrückt (und die Signatur war nicht aktuell).
Ich hab den mod schon drauf.
Die Frage ist, ob ich den jetzt komplett neu bauen muss.
 
Zuletzt bearbeitet:
Da das Dateisystem ein read only Squashfs ist, mußt du zumindest das ganze Dateisystem neu erstellen um Dateien reinzubekommen.

Mfg,
danisahne
 
danisahne schrieb:
Da das Dateisystem ein read only Squashfs ist, mußt du zumindest das ganze Dateisystem neu erstellen um Dateien reinzubekommen.
...
Ja, das dachte ich mir schon fast.
Wie macht man das am einfachsten? Gibt es da einen target im Makefile oder macht man das am besten "von Hand"?
 
Ich schaff's leider nicht.

Im HOWTO steht:
"(außer ./root/lib/ und ./root/usr/lib/, welche seperat behandelt werden)"

Ich weiss aber nicht wie bzw. wo sie separat behandelt werden.

Wie bekomm ich nun die libgcc_s.so.1 nach /usr/lib ?
 
Für welches Programm brauchst Du das eigentlich?

Gruß
mastertester
 
Im Betrieb musst du die Datei nach "/mod/lib" packen.
Code:
/ # set |grep LIBRARY
LD_LIBRARY_PATH='/mod/lib'
/ #
Wenn du sie fest einbauen willst, dann kommt sie nach "ds-0.2.6/root/lib".
edit: Kommando zurück. Dateien unter /ds-0.2.6/root/lib werden nicht ins Image gepackt. Wobei du die Datei gar nicht dahinpacken musst, weil sie ja schon da ist. Du musst im menuconfig nur aktivieren, dass sie auch ins Image kommt...

MfG Oliver
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.