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

mastertester

Mitglied
Mitglied seit
26 Sep 2004
Beiträge
498
Punkte für Reaktionen
0
Punkte
0
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
 

danisahne

Aktives Mitglied
Mitglied seit
30 Jul 2005
Beiträge
1,493
Punkte für Reaktionen
0
Punkte
0
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.
 

mastertester

Mitglied
Mitglied seit
26 Sep 2004
Beiträge
498
Punkte für Reaktionen
0
Punkte
0
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:

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
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
 

mastertester

Mitglied
Mitglied seit
26 Sep 2004
Beiträge
498
Punkte für Reaktionen
0
Punkte
0
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
 

danisahne

Aktives Mitglied
Mitglied seit
30 Jul 2005
Beiträge
1,493
Punkte für Reaktionen
0
Punkte
0
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?
 

mastertester

Mitglied
Mitglied seit
26 Sep 2004
Beiträge
498
Punkte für Reaktionen
0
Punkte
0
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:
[email protected]:~/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
 

danisahne

Aktives Mitglied
Mitglied seit
30 Jul 2005
Beiträge
1,493
Punkte für Reaktionen
0
Punkte
0
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.
 

mastertester

Mitglied
Mitglied seit
26 Sep 2004
Beiträge
498
Punkte für Reaktionen
0
Punkte
0
Geht nur per LDFLAGS.....
 

danisahne

Aktives Mitglied
Mitglied seit
30 Jul 2005
Beiträge
1,493
Punkte für Reaktionen
0
Punkte
0
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
 

mastertester

Mitglied
Mitglied seit
26 Sep 2004
Beiträge
498
Punkte für Reaktionen
0
Punkte
0
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:

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
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
 

maceis

Mitglied
Mitglied seit
9 Apr 2006
Beiträge
639
Punkte für Reaktionen
3
Punkte
18
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:

mastertester

Mitglied
Mitglied seit
26 Sep 2004
Beiträge
498
Punkte für Reaktionen
0
Punkte
0
Da wirst Du wohl den DS-Mod brauchen....


Gruß
mastertester
 

maceis

Mitglied
Mitglied seit
9 Apr 2006
Beiträge
639
Punkte für Reaktionen
3
Punkte
18
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:

danisahne

Aktives Mitglied
Mitglied seit
30 Jul 2005
Beiträge
1,493
Punkte für Reaktionen
0
Punkte
0
Da das Dateisystem ein read only Squashfs ist, mußt du zumindest das ganze Dateisystem neu erstellen um Dateien reinzubekommen.

Mfg,
danisahne
 

maceis

Mitglied
Mitglied seit
9 Apr 2006
Beiträge
639
Punkte für Reaktionen
3
Punkte
18
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"?
 

maceis

Mitglied
Mitglied seit
9 Apr 2006
Beiträge
639
Punkte für Reaktionen
3
Punkte
18
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 ?
 

mastertester

Mitglied
Mitglied seit
26 Sep 2004
Beiträge
498
Punkte für Reaktionen
0
Punkte
0
Für welches Programm brauchst Du das eigentlich?

Gruß
mastertester
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
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:

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,029
Beiträge
2,018,043
Mitglieder
349,304
Neuestes Mitglied
Jokazza