Re: Linux_base und shared libs ...

From: Volker <VJ(at)Trendsetter.de>
Date: Mon, 20 Oct 2003 11:51:49 +0200

Hi Peter,

vielen Dank, dass Du mir die Fragen recht ausführlich beantwortest.

Da Du offensichtlich nicht nur mit FreeBSD sehr gut vertraut bist, sondern
auch gute Einblicke in Linux_Emulation und Java hast, würde ich gerne die
Gelegenheit nutzen und noch ein paar Fragen loswerden:

1)
Ich hatte in meinem Ausgangsbeitrag noch folgendes Verständnis-Problem
beschrieben und kann mir diese Frage leider immer noch nicht beantworten:

"...
Angewandt auf mein ldd-Eingangsbeispiel auf die java binary:
/compat/linux/usr/bin/ldd /usr/local/jdk118_v3/bin/i686/green_threads/java
erhalte ich nun folgende Meldung:
/compat/linux/usr/bin/ldd: /lib/ld-linux.so.2: not found

Bei "normalem" ldd (vgl. oben) wurde /lib/ld-linux.s0.2 ausgegeben und
auch gefunden, gleichzeitig aber das Fehlen von libjava.so bemeckert.
Bei dem linux ldd wird libjava.so nicht erwähnt, dagegen aber
/lib/ld-linux.so.2 nicht gefunden. ..."

WELCHES LDD ist denn nun eigentlich fuer mich ausschlaggebend?
Und warum wird bei ldd "/usr/local/jdk118_v3/bin/i686/green_threads/java"
ausgegeben, dass "/lib/ld-linux.so.2" nicht gefunden würde, obwohl dieses in
dem angegeben Verzeichnis existiert?

2)
Wenn ich unter FreeBSD.org Blackdown Java Ports suche, erhalte ich in diesem
Zusammenhang u.a. stets den Hinweis auf
"Requires: javavmwrapper-1.4, linux_base-7.1_5 etc." ...

Bisher war für mich ein Java-Wrapper DAS ".java_wrapper" im BIN-Verzeichnis
des jeweiligen JDK.

Das ist aber ja wohl nicht identisch mit dem, was mit "javavmwrapper-1.4"
gemeint ist!?

3)

ls -l /compat/linux/lib/libc.so.6 zeigt bei mir an: libc-2.2.4.so

Angenommen ich habe ein Programm, dass libc-2.2.5 benötigt, muss ich dann
schauen, ob eine aktuellere Linux_Base (bspw .8.x) diese enthält, oder was ist
dann zu tun?

Vor allem ist mir noch nicht ganz klar, wie zu verfahren ist, wenn
verschiedene Linux-Binaries, die ich unter FreeBSD laufen lassen möchte,
unterschiedliche libc-Versionen benötigen? libc.so.6 (warum heisst die
eigentlich so und nicht gleich libc-2.2.4.so ?) zeigt ja nun einmal nur auf
eine bestimmte libc-Version. Oder stelle ich auch mit ldd speziell für jede
Applikation ein, wo die für sie notwendige libc-version liegt und kopiere die
betreffende libc-2.x.x Version dann in den eingestellten Ordner (wenn ja,
einfach als libc-2.x.x ?)

Die o.a. Fragen tauchen u.a. bei mir u.a. deswegen auf, weil ich gerne den JIT
shujt einsetzen will, mit dem ich bisher die besten Erfahrungen gemacht habe.
Schaut man sich allerdings die aktuellen Versionen von shujit an, setzen diese
bspw. bei bei shujit-0_7_11-bin-linux-glibc2-jdk131 für die Compilierung glibc
2.2.5 voraus:

shujit-0_7_11-bin-linux-glibc2-jdk131_tar.gz
  - Blackdown JDK 1.3.1_02a, GCC 3.1 20020307, glibc 2.2.5, Linux 2.4.19-pre2
  - Blackdown JDK 1.2.2, GCC 3.1 20020307, glibc 2.2.5 and Linux 2.4.19-pre2
  - JDK 1.1.8v3, GCC 3.1 20020307, glibc 2.2.5 and Linux 2.4.19-pre2

Allerdings habe ich ja in der Linux_Base wie o.a. nur die libc-2.2.4.so.

Welche Folgen ergeben sich denn nun für mich daraus? Dass ich den
shujit-sourcecode auf jeden Fall selbst kompilieren muss mit der bei mir
installierten glibc 2.2.4? Oder ist es völlig egal, wenn ich die betreffende
shuJIT-Binary verwende, da diese ja bereits unter Verwendung von glibc 2.2.5
erstellt wurde und zur Laufzeit nicht mehr benötigt wird?

Ganz herzlichen Dank im voraus!!!

Volker

To Unsubscribe: send mail to majordomo.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 20 Oct 2003 - 11:59:35 CEST

search this site