Muß die libc6 zur GCC Version passen ??

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Jogibär
Beiträge: 149
Registriert: 11.09.2002 22:43:37

Muß die libc6 zur GCC Version passen ??

Beitrag von Jogibär » 20.10.2003 18:57:06

Hallo,

ich habe zwar schon seit Jahren Linux laufen, aber jetzt habe ich ein Problem
wo ich nicht weiter komme.

ich habe mal vor ca. 1 Jahr bei meinen Rechnern Tripwire installiert, d.h.
entpackt, selber compiliert und dann eingerichtet.

Vor einigen Wochen habe ich meine libc6 auf Version 2.3.2-8 geändert,
um einige neuerer Programme installieren zu können.
Seit dem meldet mir Tripwire ständig diesen Fehler:

---

*** Processing Unix File System ***
Software interrupt forced exit: Segmentation Faul

--

Da Tripwire nicht zu überzeugen war wieder zu funktioniern,
wollte ich es einfach neu compilieren.
Doch auf einmal geht das nicht mehr.
Beim Compilieren bekomme ich folgende Fehlermeldungen: ( Auszüge)

--

../../lib/i686-pc-linux_r/libstlport_gcc.a(complex.o)(._STL::__node_alloc<true, 0>::gnu.linkonce.t.deallocate(void *, unsigned int)+0x32): In function `_STL::__node_alloc<true, 0>::deallocate(void *, unsigned int)':
: undefined reference to `pthread_mutex_lock'


--

/usr/lib/gcc-lib/i386-linux/2.95.4/libgcc.a(frame.o)(.text+0xc8d): In function `__deregister_frame_info':
: undefined reference to `pthread_mutex_unlock'
collect2: ld returned 1 exit status
gmake[4]: *** [../../bin/i686-pc-linux_r/twprint] Fehler 1

--

Es bricht also anscheinend beim Linker ld ab


Mein installierter GCC ist 2.95.4 20011002 (Debian prerelease).

Dazu meine Fragen:

1. warum will auf einmal Tripwire nicht mehr ?

2. greifen compilierte programme auf die libc6 zu ?

3. was muß ich tun, damit ich es wieder zum laufen bekomme ?

Ich habe zwar gcc-3.2 installiert, aber dies ist nur über gcc-3.2 aufrufbar.

Ich weiß, es gibt fertige Binaries, die laufen aber auch nicht, und
bei Sicherheitssoftware ( Tripwire, GPG, LoopAES) verwende ich
grundsätzlich nur selbstkompilierte Software.

Ich bin ehrlichgesagt langsam ratlos.

Hat da einer vielleicht eine Idee ?

Jogibär

Benutzeravatar
asac
Beiträge: 23
Registriert: 01.10.2003 21:03:21
Wohnort: Germany, Hamburg
Kontaktdaten:

Beitrag von asac » 21.10.2003 12:21:43

1. warum will auf einmal Tripwire nicht mehr ?
Das kann ich Dir nicht beantworten ... doch Deine Erklaerung mit der libc ist schluessig und ich wuerde der gleichen Vermutung nachgehen
2. greifen compilierte programme auf die libc6 zu ?
denifiniv:

Code: Alles auswählen

[alex@hanson 12:13:31 alex]#> strace gcc  2>&1| grep so | grep lib
  open("/lib/libdl.so.2", O_RDONLY)       = 3
  open("/lib/libm.so.6", O_RDONLY)        = 3
  open("/lib/libpthread.so.0", O_RDONLY)  = 3
  open("/lib/libc.so.6", O_RDONLY)        = 3
  open("/lib/libcrypt.so.1", O_RDONLY)    = 3
  open("/lib/libc.so.6", O_RDONLY)        = 3
3. was muß ich tun, damit ich es wieder zum laufen bekomme ?
Ich kenne Tripwire nicht ... denke aber es sollte funktionieren, wenn DU sicherstellst, dass alle Teile der libc bei der Kompilation dieselbe Version haben ... ALSO: Es ist wichtig, dass sowohl die neuen Libraries, als auch die neuen Headers gezogen werden. Wenn dem so ist, weiss ich auch nicht woran es liegt :(

Benutzeravatar
zyta2k
Beiträge: 2446
Registriert: 14.03.2003 09:18:00
Kontaktdaten:

Beitrag von zyta2k » 21.10.2003 12:30:04

probier mal

Code: Alles auswählen

./configure --enable-pthreads --prefix=/usr
make
Scheint als hättest du ein Problem mit den pthreads...

Benutzeravatar
Jogibär
Beiträge: 149
Registriert: 11.09.2002 22:43:37

Beitrag von Jogibär » 21.10.2003 17:31:20

Danke für eure Antworten,

aber ein ./configure Sript habe ich nicht im scr Verzeichnis.

Laut Readme soll man mit make release die Binäries bauen.

Dabei sollte ich noch erwähnen, daß dabei gmake aufgerufen wird.
Bei Suse war das aber nur ein link auf make, und somit habe ich das unter Debian aus so gemacht, und es hat damals so funktioniert.

Das einzige, was mir noch einfällt wäre vielleicht mit Partimage mein
System zu sichern, komplett auf unstable zu wechseln und es dann noch
mal zu probieren.

Das Image kann ich dann jederzeit zurückspiele.

Jogibär

Benutzeravatar
asac
Beiträge: 23
Registriert: 01.10.2003 21:03:21
Wohnort: Germany, Hamburg
Kontaktdaten:

Beitrag von asac » 21.10.2003 18:10:43

In der non-US debian unstable distribution is ein tripwire paket enthalten.
Wenn Du also unstable hast, kannst Du auch dieses benutzen :lol:

Antworten