TOP
SSV Software Systems Register  Register
Log in to check your private messages  Log in to check your private messages
Startseite FAQ Search Mitglieder Profile  Log in 
SSV Support-Forum
Probleme mit toolchain-lib libpthread.so.0 und Kernel 2.6

 
Post new topic   Reply to topic    SSV-Forum Forum Index >>> DNP/9200
<<< Previous topic - Next topic >>>  
Display posts from previous:   
Author Message
emmerlin



Joined: 26 Jul 2006
Posts: 7
Location: Coburg

PostPosted: 28.07.2006, 12:15    Post subject: Probleme mit toolchain-lib libpthread.so.0 und Kernel 2.6 Reply with quote

Hallo zusammen,

ich habe mit dem "alten" DNP9200-Image die pthread-Bibliotheken der CDROM-toolchain einfach benutzen können, um Threads für einen auf dem EVA-Board laufenden Socket-Server zu programmieren.

Das geht unter dem neuen Kernel leider nicht mehr. Ich krieg da die Fehlermeldung

./socket_server: relocation error: /lib/libpthread.so.0: symbol __on_exit, version GLIBC_2.0 not defined in file libc.so.6 with link time reference,

wenn ich die libpthread.so.0 einfach auf's Board rüberschiebe.

Scheint ne andere libc-Version zu sein. Gibt es da ne neue arm-linux Version für den neuen Kernel?

Viele Grüße
Peter
Back to top
View user's profile Send private message Visit poster's website
Lucky B



Joined: 25 Jul 2006
Posts: 35

PostPosted: 28.07.2006, 12:52    Post subject: Re: Probleme mit toolchain-lib libpthread.so.0 und Kernel 2. Reply with quote

Hallo,

ich weis nicht ob dir das weiterhilft, aber ich verwende auch die libpthread in meinem Projekt, hatte auch zuvor Linux 2.4 verwendet und jetzt 2.6.
Läuft soweit alles problemlos (auch ohne aktuallisierte toolchain), allerdings hab ich die libpthread statisch zu meinem Programm dazugelinkt, vielleicht funktioniert das bei Dir auch.

Ich weis aber nicht ob das eventuell andere Nachteile mit sich bringt.


Gruß
Björn
Back to top
View user's profile Send private message
emmerlin



Joined: 26 Jul 2006
Posts: 7
Location: Coburg

PostPosted: 28.07.2006, 17:20    Post subject: Re: Probleme mit toolchain-lib libpthread.so.0 und Kernel 2. Reply with quote

Hi Björn,

danke für deine Antwort.

Wie sieht denn bei dir das Makefile mit den statischen Bibliotheken ungefähr aus. Hab's leider bisher noch nicht hingekriegt.

Gruß
Peter
Back to top
View user's profile Send private message Visit poster's website
Lucky B



Joined: 25 Jul 2006
Posts: 35

PostPosted: 31.07.2006, 07:52    Post subject: Re: Probleme mit toolchain-lib libpthread.so.0 und Kernel 2. Reply with quote

Hi Peter,

einfach als gcc (CCFLAGS) option folgende Parameter verwenden:

Code:

-static -lpthread


Alles nach static wird dann statisch gelinkt.
Hoffe das hilft Dir weiter.

gruß
Björn
Back to top
View user's profile Send private message
emmerlin



Joined: 26 Jul 2006
Posts: 7
Location: Coburg

PostPosted: 08.08.2006, 06:44    Post subject: Reply with quote

Hallo Björn,

in der Form habe ich es schon probiert, leider der gleiche Fehler.

Komisch, dass es bei dir funktioniert, obwohl ja die gleichen libc-Versionen vorliegen. Question

Viele Grüße
Peter
Back to top
View user's profile Send private message Visit poster's website
emmerlin



Joined: 26 Jul 2006
Posts: 7
Location: Coburg

PostPosted: 08.08.2006, 07:48    Post subject: Reply with quote

Ich bekomme bei Ausführung von make folgende Fehlermeldung mit statischem Linken:
Quote:

/usr/local/arm-linux/bin/arm-linux-gcc -Wall -O2 -march=armv4 -static -lpthread -o switch_emg2 switch.o init.o
switch.o: In function `main':
switch.o(.text+0x184): undefined reference to `pthread_create'
switch.o(.text+0x184): relocation truncated to fit: R_ARM_PC24 pthread_create
switch.o(.text+0x198): undefined reference to `pthread_create'
switch.o(.text+0x198): relocation truncated to fit: R_ARM_PC24 pthread_create
collect2: ld returned 1 exit status
make: *** [switch_emg2] Fehler 1


Vielleicht noch einmal mein Makefile zur Verdeutlichung des Problems mit dem statischen Linken:
Quote:

CROSS = /usr/local/arm-linux/bin/arm-linux-
CC = $(CROSS)gcc
CCFLAGS = -march=armv4
THREADS = -static -lpthread
CFLAGS = -Wall -O2 $(CCFLAGS)
PROJ = switch

switch_emg2: $(PROJ).o init.o
$(CC) $(CFLAGS) $(THREADS) -o $@ $^

$(PROJ).o: $(PROJ).c init.h
$(CC) $(CFLAGS) -c $(PROJ).c

init.o: init.c init.h
$(CC) $(CFLAGS) -c init.c

clean:
]rm -f $(PROJ)


Grüße
Peter Confused
Back to top
View user's profile Send private message Visit poster's website
Lucky B



Joined: 25 Jul 2006
Posts: 35

PostPosted: 08.08.2006, 08:03    Post subject: Reply with quote

Hi,

wie Du bereits gesagt hattest, verwende ich die gleiche libc, also solte das nicht das problem sein, leider hab ich im Moment kein Zugriff auf meine Linux Entwicklungssystem.

Ich werde das heute nachmittag (spätestens morgen) mal mit meinem make file vergleichen, vielleicht gibts ja doch noch irgendein Unterschied. Aber aufden ersten Blick sieht das ganze ähnlich aus wie bei mir.


gruß
Björn
Back to top
View user's profile Send private message
Lucky B



Joined: 25 Jul 2006
Posts: 35

PostPosted: 09.08.2006, 13:48    Post subject: Reply with quote

Hi,

hab meine Make Einstellungen nochmals angesehen.

Der einzige Unterschied ist das ich auch die c libs statisch linke:

Code:

-static -lstdc++ -lgcc -lc -lpthread


Ist glaub ich nicht ganz sauber, aber vielleicht hilfts ja.


gruß
Björn
Back to top
View user's profile Send private message
emmerlin



Joined: 26 Jul 2006
Posts: 7
Location: Coburg

PostPosted: 09.08.2006, 14:33    Post subject: Pthreads statisch linken funktioniert! Reply with quote

Hi Björn,

sieht jetzt.sehr gut aus.

Bleibt nur zu hoffen, dass demnächst eine toolchain für gcc3... bzw. gcc4... zur Verfügung steht, damit man das dann auch dynamisch linken kann. Ich hab mal versucht eine toolchain zu builden, bin aber kläglich gescheitert.

Vielen Dank für deine Tipps, Björn. Wink

Grüße
Peter
Back to top
View user's profile Send private message Visit poster's website
sTm



Joined: 17 Jul 2006
Posts: 26

PostPosted: 10.08.2006, 07:11    Post subject: Reply with quote

Hi Peter,

ich habe hier eine eigene Toolchain am laufen da der gdbserver von SSV nicht mit Threads umgehen konnte. Basiert leider noch auf dem 2.4er Kernel, aber ich denke mit 2.6 sollte das genau so gehen.

Wenn du interesse hast sende mit eine PM vielleicht kann ich helfen.

Gruß
Stefan
Back to top
View user's profile Send private message
dl7bj



Joined: 10 Jul 2006
Posts: 18
Location: Rotenburg, JO43PC

PostPosted: 05.09.2006, 21:02    Post subject: Re: Pthreads statisch linken funktioniert! Reply with quote

emmerlin wrote:


Verfügung steht, damit man das dann auch dynamisch linken kann. Ich hab mal versucht eine toolchain zu builden, bin aber kläglich gescheitert.



Falls das Thema noch aktuell ist, unter

http://www.emdebian.org/tools/crosstools.html

gibt es eine Anleitung zum Bau einer Toolchain. Das hat bei mir gut
funktioniert. Ich habe eine Debian Sarge Netzinstallation in Minimal-
Ausstattung unter VMWare installiert und dann nach dieser Anleitung
die Toolchain gebaut. Das ganze soll mal ein Entwicklungs-Linux mit
nur 128 MByte RAM unter VMWare für die Nutzung auf dem Notebook
mit dem VMPlayer werden. Zur Zeit bin ich dabei, die aktuellen Kernel-
Sources mit einzubinden, so dass auch ein Kernel gebaut werden kann.

Gruss,
Thomas
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
emmerlin



Joined: 26 Jul 2006
Posts: 7
Location: Coburg

PostPosted: 04.10.2006, 12:46    Post subject: Reply with quote

Danke für die Tipps, ich hab' mir mittlerweile die SSV-CD mit Kernel 2.6.16-Quellen für 37,50€ zukommen lassen, da sind die erforderlichen Bibliotheken mit drauf.
Wohl die einfachste (wenn auch nicht kostenfreie) Lösung. Eine einfache Anwendung für Socket-Thread-I/O-Programmierung findet Ihr unter Arrow http://www.fh-coburg.de/arm9

Motivation: Der direkte Zugriff auf die I/O-Ports scheint nicht direkt über ein cgi-bin-Programm zu funktionieren (Sicherheitsaspekt des Webservers!?), deswegen der Umweg über Sockets.

Grüße
Peter
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    SSV-Forum Forum Index >>> DNP/9200 All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

SSV Software Systems GmbH

Dünenweg 5
30419 Hannover

Fon: +49(0)511  ·  40 000-0
Fax: +49(0)511  ·  40 000-40

sales@ssv-embedded.de


Impressum    ·    Datenschutz    ·    AGB

© 2023 SSV SOFTWARE SYSTEMS GmbH. Alle Rechte vorbehalten.

ISO 9001:2015