Thread: Re: [tcljava-user] TclBlend on SuSE7.0 with JDK1.1.8 (or JDK1.2.2)
Brought to you by:
mdejong
From: Christian K. <chr...@so...> - 2000-11-08 10:22:54
|
Hello, Mo told me, how to improve the configure script: > If you open up tcljava.m4 and look at the AC_JAVA_JNI_LIBS > macro, you will find the place where it tries to find > the JNI libs for a given system configuration. It does > this by looking for "known layouts". It works on most > configurations but it would seem that yours needs to > be added to the script. [...] > You might also want to put in an extra check > to see if ac_java_jvm_jni_lib_flags is "" > and then raise an error of print a better > message like "Your JVM configuration is > not known, please edit the AC_JAVA_JNI_LIBS > macro in tcljava.m4 to add support for it." But he forgot, that configure.in insists on having autoconf version 2.14, and that almost all people (but perhaps some lucky guys at RedHat???) have only 2.13 :-( So should I just change line 6 of configure.in or are there some reasons to require a version which is not yet released? Greetings, Krischan -- Christian Krone, SQL Datenbanksysteme GmbH Mail mailto:chr...@so... |
From: Christian K. <chr...@so...> - 2000-11-14 18:53:48
|
Hello, Mo DeJong wrote: > > when I start to configure TclBlend (1.3 from SourceForge) > > the configuration stops with the following last words: [...] > > > configure: error: could not link file that includes jni.h > > > It is likely that your JVM install is broken or corrupted > Yeah, it looks like the configure script does not know where to > find your JNI libs. Perhaps that error message about > "your JVM install is broken or corrupted" is not all > that helpful in the case where the libs can not even > be found. [...] > So first, cd to /usr/lib/java and run > find . -name "libjava*.so*" > find . -name "libjvm*.so*" > find . -name "libhpi*.so*" > And see what that prints. That should tell you > where the libs for your system live. If you > have both native and green thread libs, make > sure you use the native thread ones. The problem was that the configure script expects to find the libjvm in a subdirectory linux, e.g. /usr/lib/jdk1.1.8/lib/linux/native_threads/libjava.so But on SuSE7.0 (and before) this subdirectory is called i386! So I created a softlink: ln -s i386 /usr/lib/jdk1.1.8/lib/linux and now it works! > You might also want to put in an extra check > to see if ac_java_jvm_jni_lib_flags is "" > and then raise an error of print a better > message like "Your JVM configuration is > not known, please edit the AC_JAVA_JNI_LIBS > macro in tcljava.m4 to add support for it." Sorry but I don't get autoconf 2.14 up and running. The generated configure script creates error messages one after the other. So here is only the workaround for SuSE users, but no patch for the configure.in (or tcljava.m4) Greetings, Krischan -- Christian Krone, SQL Datenbanksysteme GmbH Mail mailto:chr...@so... |
From: Mo D. <md...@cy...> - 2000-11-15 00:22:17
|
On Tue, 14 Nov 2000, Christian Krone wrote: > Hello, > > Mo DeJong wrote: > > > > when I start to configure TclBlend (1.3 from SourceForge) > > > the configuration stops with the following last words: > [...] > > > > configure: error: could not link file that includes jni.h > > > > It is likely that your JVM install is broken or corrupted > > Yeah, it looks like the configure script does not know where to > > find your JNI libs. Perhaps that error message about > > "your JVM install is broken or corrupted" is not all > > that helpful in the case where the libs can not even > > be found. > [...] > > So first, cd to /usr/lib/java and run > > find . -name "libjava*.so*" > > find . -name "libjvm*.so*" > > find . -name "libhpi*.so*" > > And see what that prints. That should tell you > > where the libs for your system live. If you > > have both native and green thread libs, make > > sure you use the native thread ones. > > The problem was that the configure script expects to find > the libjvm in a subdirectory linux, e.g. > /usr/lib/jdk1.1.8/lib/linux/native_threads/libjava.so > But on SuSE7.0 (and before) this subdirectory is called i386! > So I created a softlink: > ln -s i386 /usr/lib/jdk1.1.8/lib/linux > and now it works! This is that code that is meant to check for that case, from tcljava.m4. # Blackdown JDK 1.1 for Linux (this one can get a little wacky) F=README.linux if test "x$ac_java_jvm_jni_lib_flags" = "x" && test -f $ac_java_jvm_dir/$F ; then # Figure out if it is 1.1.8 and not 1.1.7 AC_GREP_FILE([JDK 1.1.8], $ac_java_jvm_dir/$F, IS118=1) F=lib/`uname --machine`/native_threads/libjava.so AC_MSG_LOG([Looking for $ac_java_jvm_dir/$F], 1) if test -f $ac_java_jvm_dir/$F ; then AC_MSG_LOG([Found $ac_java_jvm_dir/$F], 1) D=`dirname $ac_java_jvm_dir/$F` ac_java_jvm_jni_lib_runtime_path=$D ac_java_jvm_jni_lib_flags="-lpthread -L$D -ljava" On my system. % uname --machine i686 Is there no symlink for i686 -> i386 on that box? Is this a Sun JVM on Linux or a blackdown one? > > You might also want to put in an extra check > > to see if ac_java_jvm_jni_lib_flags is "" > > and then raise an error of print a better > > message like "Your JVM configuration is > > not known, please edit the AC_JAVA_JNI_LIBS > > macro in tcljava.m4 to add support for it." > > Sorry but I don't get autoconf 2.14 up and running. The generated > configure script creates error messages one after the other. > So here is only the workaround for SuSE users, but no patch > for the configure.in (or tcljava.m4) Well, the patch for tcljava.m4 is what we need in the long run. I just did an update from the autoconf CVS and it looks like something related the AC_FD_LOG macro was changed. I just checked in a change that fixes that problem. It should work with the CVS version of autoconf now. Mo DeJong Red Hat Inc |
From: Mo D. <md...@cy...> - 2000-11-08 10:33:21
|
On Wed, 8 Nov 2000, Christian Krone wrote: > Hello, > > Mo told me, how to improve the configure script: ... > But he forgot, that configure.in insists on having > autoconf version 2.14, and that almost all people > (but perhaps some lucky guys at RedHat???) have > only 2.13 :-( Sorry, I forgot to mention that. You need autoconf out of the CVS. The info on how to get it is at the bottom of this email. > So should I just change line 6 of configure.in or > are there some reasons to require a version which > is not yet released? No, it does not work with 2.13, that is why it is locked down to require the newer version. Version 2.13 is years old and badly broken. Here is how to get the CVS autoconf. % setenv CVSROOT :pserver:an...@su...:/cvs % cvs login (password is "") % cvs co autoconf Then just run ./configure --prefix=${HOME}/myautoconf ; make install and then put ${HOME}/myautoconf (or whatever you call it) on your PATH. You should then be able to go into the tcljava directory and run the ./autogen.sh script to regen the ./configure script. (the script just runs autoconf) Mo DeJong Red Hat Inc |