RE: [tcljava-user] problems installing tclBlend on Linux
Brought to you by:
mdejong
From: Cargo, D. <Dav...@Xi...> - 2005-10-19 16:34:42
|
Thanks to Mo and Patrick for their responses. I was able to trace back the failure to at least a certain circumstance. config.log was proceeding normally until it got to the JNI test. Here there are two files that could not be found (libjsig.so and libdbgmalloc.so) even though they are in the /usr/lib/IBMJava2-1-2.3/jre/bin directory. I've included the failed section of the log, and then the cache variables and output variables. (We did download the tcl/tk 8.4.11 sources and rebuild everything from source.) configure:4585: checking to see if we can link a JNI application configure:4620: gcc -pipe -o conftest -g -O2 -I/usr/lib/IBMJava2-1.4.2/include conftest.c -lpthread -L/usr/lib/IBMJava2-1.4.2/jre/bin -ljava -L/usr/lib/IBMJava2-1.4.2/jre/bin/classic -ljvm -lhpi >&5 /usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/l d: warning: libjsig.so, needed by /usr/lib/IBMJava2-1.4.2/jre/bin/libjava.so, not found (try using -rpath or -rpath-link) /usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/l d: warning: libdbgmalloc.so, needed by /usr/lib/IBMJava2-1.4.2/jre/bin/libhpi.so, not found (try using -rpath or -rpath-link) /usr/lib/IBMJava2-1.4.2/jre/bin/libjava.so: undefined reference to `jsig_primary_sigaction' /usr/lib/IBMJava2-1.4.2/jre/bin/libjava.so: undefined reference to `jsig_handler' /usr/lib/IBMJava2-1.4.2/jre/bin/libhpi.so: undefined reference to `dbgRealloc' /usr/lib/IBMJava2-1.4.2/jre/bin/libhpi.so: undefined reference to `dbgMalloc' /usr/lib/IBMJava2-1.4.2/jre/bin/libhpi.so: undefined reference to `dbgFree' /usr/lib/IBMJava2-1.4.2/jre/bin/libhpi.so: undefined reference to `dbgCalloc' collect2: ld returned 1 exit status configure:4623: $? = 1 configure: failed program was: | #line 4601 "configure" | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | /* end confdefs.h. */ | | #include <jni.h> | | int | main () | { | JNI_GetCreatedJavaVMs(NULL,0,NULL); | ; | return 0; | } configure:4649: result: no configure:4726: error: could not link file that includes jni.h Either the configure script does not know how to deal with this JVM configuration or the JVM install is broken or corrupted. ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_c_compiler_gnu=yes ac_cv_env_CC_set= ac_cv_env_CC_value= ac_cv_env_CFLAGS_set= ac_cv_env_CFLAGS_value= ac_cv_env_CPPFLAGS_set= ac_cv_env_CPPFLAGS_value= ac_cv_env_LDFLAGS_set= ac_cv_env_LDFLAGS_value= ac_cv_env_build_alias_set= ac_cv_env_build_alias_value= ac_cv_env_host_alias_set= ac_cv_env_host_alias_value= ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_exeext= ac_cv_objext=o ac_cv_path_DDD=/usr/bin/ddd ac_cv_path_GDB=/usr/bin/gdb ac_cv_path_JAR=/usr/lib/IBMJava2-1.4.2/bin/jar ac_cv_path_JAVA=/usr/lib/IBMJava2-1.4.2/bin/java ac_cv_path_JAVAH=/usr/lib/IBMJava2-1.4.2/bin/javah ac_cv_path_JDB=/usr/lib/IBMJava2-1.4.2/bin/jdb ac_cv_path_JIKES= ac_cv_prog_ac_ct_CC='gcc -pipe' ac_cv_prog_cc_g=yes ac_cv_prog_cc_stdc= ## ----------------- ## ## Output variables. ## ## ----------------- ## BUILD_DIR='' BUILD_DIR_NATIVE='' CC='gcc -pipe' CFLAGS='-g -O2' CPPFLAGS='' DDD='/usr/bin/ddd' DEFS='' ECHO_C='' ECHO_N='-n' ECHO_T='' EXEC_PREFIX_NATIVE='' EXEEXT='' GDB='/usr/bin/gdb' JAR='/usr/lib/IBMJava2-1.4.2/bin/jar' JAR_COMPRESS_FLAGS='' JAR_EXTRACT_FLAGS='' JAR_NOCOMPRESS_FLAGS='' JAVA='/usr/lib/IBMJava2-1.4.2/bin/java' JAVAC='/usr/lib/IBMJava2-1.4.2/bin/javac' JAVAC_D_FLAG='-d' JAVAC_FLAGS='-g' JAVAH='/usr/lib/IBMJava2-1.4.2/bin/javah' JAVA_CLASSPATH='' JAVA_CLASSPATH_NATIVE='' JAVA_FLAGS='' JAVA_G='/usr/lib/IBMJava2-1.4.2/bin/java' JAVA_G_FLAGS='-Xdebug -Xrunjdwp:transport=dt_socket,address=8757,server=y,suspend=n -Xbootclasspath/a:/usr/lib/IBMJava2-1.4.2/lib/tools.jar' JAVA_INCLUDE_FLAGS='' JAVA_LIB_FLAGS='' JAVA_LIB_RUNTIME_PATH='' JAVA_LIB_RUNTIME_PATH_NATIVE='' JAVA_NATIVE='' JDB='/usr/lib/IBMJava2-1.4.2/bin/jdb' JDB_ATTACH_FLAGS='-attach 8757' JIKES='' LDFLAGS='' LIBOBJS='' LIBS='' LTLIBOBJS='' OBJEXT='o' PACKAGE_BUGREPORT='' PACKAGE_NAME='' PACKAGE_STRING='' PACKAGE_TARNAME='' PACKAGE_VERSION='' PATH_SEPARATOR=':' PREFIX_NATIVE='' SHELL='/bin/sh' SHLIB_CFLAGS='-fPIC' SHLIB_LD='gcc -pipe -shared' SHLIB_LD_LIBS='${LIBS}' SHLIB_PREFIX='lib' SHLIB_SUFFIX='.so' SHLIB_VERSION='' TCLBLEND_LD_BIND_NOW='' TCLBLEND_LD_PRELOAD='' TCLJAVA='tclblend' TCLJAVA_DBGX='' TCLJAVA_NODOT_VERSION='132' TCLJAVA_VERSION='1.3.2' TCLSH='/usr/local/bin/tclsh8.4' TCLSH_NATIVE='' TCL_BIN_DIR='/usr/local/src/tcl8.4.11/unix' TCL_BIN_TCLSH='' TCL_BUILD_LIB_SPEC='-L/usr/local/src/tcl8.4.11/unix -ltcl8.4${TCL_DBGX}' TCL_CFLAGS='-O2' TCL_DBGX='' TCL_DEFS=' -DTCL_THREADS=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_PTHREAD_ATFORK=1 -DHAVE_READDIR_R=1 -DHAVE_THREE_ARG_READDIR_R=1 -DPEEK_XCLOSEIM=1 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_STRUCT_STAT64=1 -DHAVE_OPEN64=1 -DHAVE_LSEEK64=1 -DHAVE_TYPE_OFF64_T=1 -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_STRTOLL=1 -DHAVE_STRTOULL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_LANGINFO=1 -DHAVE_SYS_IOCTL_H=1 ' TCL_INSTALL_LIB_DIR='/usr/local/lib' TCL_LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' TCL_LIBS='-ldl -lpthread -lieee -lm' TCL_SRC_DIR='/usr/local/src/tcl8.4.11' TCL_VERSION='8.4' THREAD_BIN_DIR='/usr/local/src/thread2.6.2' THREAD_BIN_DIR_NATIVE='' TOP_DIR='' TOP_DIR_NATIVE='' WISH='/usr/local/bin/wish8.4' ac_ct_CC='gcc -pipe' bindir='${exec_prefix}/bin' build_alias='' datadir='${prefix}/share' exec_prefix='NONE' host_alias='' includedir='${prefix}/include' infodir='${prefix}/info' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localstatedir='${prefix}/var' mandir='${prefix}/man' oldincludedir='/usr/include' prefix='NONE' program_transform_name='s,x,x,' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' sysconfdir='${prefix}/etc' target_alias='' ## ----------- ## ## confdefs.h. ## ## ----------- ## #define PACKAGE_BUGREPORT "" #define PACKAGE_NAME "" #define PACKAGE_STRING "" #define PACKAGE_TARNAME "" #define PACKAGE_VERSION "" configure: exit 1 --- David Cargo Sr. Principal Engineer Email: Dav...@Xi... Office: 952 983 2372 Fax: 952 983 2320 Xiotech Corporation 6455 Flying Cloud Drive Eden Prairie, MN 55344 www.xiotech.com : www.xiotech.com/demo : Toll-Free 866 472 6764 -----Original Message----- From: tcl...@li... [mailto:tcl...@li...] On Behalf Of Mo DeJong Sent: Tuesday, October 18, 2005 3:42 PM To: tcl...@li... Subject: Re: [tcljava-user] problems installing tclBlend on Linux On Tue, 18 Oct 2005 15:04:23 -0500 "Cargo, David" <Dav...@Xi...> wrote: > I'm trying to install tclBlend (and therefore tcl and the thread > package) > on the following Linux system: > > Because SUSE had Tcl 8.4.6 installed, I went with Tcl/Tk 8.4.6. The > java JDK used is the IBMJava2-1.4.2 package from SUSE's repository. Hello David Please use Tcl/Tk 8.4.11, 8.4.6 is very old by now. It does not matter what version of Tcl the system comes with since Tcl Blend depends on Tcl being compiled with thread support anyway. See: http://wiki.tcl.tk/9993 > Using the following JNI include flags -I/usr/lib/java/include checking > to see if jni.h can be included... yes Using the following JNI library > flags -lpthread -L/usr/lib/java/jre/bin -ljava > -L/usr/lib/java/jre/bin/classic -ljvm -lhpi Using the following > runtime library path > /usr/lib/java/jre/bin:/usr/lib/java/jre/bin/classic > checking to see if we can link a JNI application... no > configure: error: could not link file that includes jni.h > Either the configure script does not know how to deal with > this JVM configuration or the JVM install is broken or The Tcl Blend configure script does not know how to find the libs it needs for your JVM layout. See the file tcljava.m4 and the AC_JAVA_JNI_LIBS function. I know it looks scary, but I need you to take a look at the directory layout of JVM files on your system, and add some checks that look for the specific layout to the AC_JAVA_JNI_LIBS method. If you need some help, please post the results of 'find .' run from the root of the JDK dir and I will help you get started. Also note that you will need to run the autogen.sh script after changing the tcljava.m4 to get a new configure script. cheers Mo DeJong |