sablevm-user Mailing List for SableVM (Page 5)
Brought to you by:
egagnon
You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
(30) |
Aug
(13) |
Sep
|
Oct
|
Nov
(11) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(5) |
Dec
(2) |
2002 |
Jan
(2) |
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(18) |
Sep
|
Oct
|
Nov
|
Dec
(5) |
2003 |
Jan
(12) |
Feb
(7) |
Mar
(19) |
Apr
(1) |
May
(5) |
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
2004 |
Jan
|
Feb
|
Mar
(12) |
Apr
(16) |
May
(6) |
Jun
(6) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Vladimir G. I. <vla...@ba...> - 2002-08-21 06:29:28
|
I built sablevm-debug using the build-many script on my up-to-date Red Hat 7.3 system (gcc-2.96-112, glibc-2.2.5-39, jikes 1.15, libffi-1.20, popt-1.6.4-7x.18, libtool-1.4.2-7). I get a SEGV when I run $ sablevm-debug HelloWorld When I run $ gdb $BUILD/bin/sablevm-debug (gdb) run HelloWorld I get ... Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1024 (LWP 11551)] 0x400edf26 in lt_dlsym () from /usr/lib/libltdl.so.3 [stack trace below] Is there another version of libtool that I should be using? BTW, I did an strace of sablevm-debug and I noticed this just before it SEGV'd: open("/usr/local/src/sablevm-build/lib/sablevm-debug/sablevm/libjava-lang-1.20.so", O_RDONLY) = -1 ENOENT (No such file or directory) There *is* a file called .../libjava-lang-1.0.3.so, but I don't know if looking for libjava-lang-1.20 is normal or not. What should I do next to debug this? Thanks. --- Vladimir -------- Vladimir G. Ivanovic http://leonora.org/~vladimir 2770 Cowper St. vla...@ac... Palo Alto, CA 94306-2447 +1 650 678 8014 -------- (gdb) where #0 0x400edf26 in lt_dlsym () from /usr/lib/libltdl.so.3 #1 0x400873de in Java_java_lang_Runtime_nativeLoad (_env=0x804d568, this=0x80609f8, _filename=0x80609a8) at java_lang_Runtime.c:230 #2 0x400e8e99 in ffi_call_SYSV () at /tmp/cc77uIC1.s:39 #3 0x400e8e5a in ffi_call (cif=0x64616f, fn=0x400872ac <Java_java_lang_Runtime_nativeLoad>, rvalue=0xff63606e, avalue=0x0) at x86/ffi.c:184 #4 0x40036d38 in _svmf_invoke_native_nonstatic (env=0x804d568) at native.c:1171 #5 0x40071058 in _svmf_interpreter (_env=0x804d568) at instructions_switch.c:9839 #6 0x4002c291 in _svmh_invoke_specific_static_clinit (env=0x804d568, method=0x41454ee4) at method_invoke.c:5061 #7 0x4008707d in Java_java_lang_Class_step8 (_env=0x804d568, _class=0x8060640, vmData=0x80608a8) at java_lang_Class.c:936 #8 0x400e8e99 in ffi_call_SYSV () at /tmp/cc77uIC1.s:39 #9 0x400e8e5a in ffi_call (cif=0x64616f, fn=0x40086fdc <Java_java_lang_Class_step8>, rvalue=0xff63606e, avalue=0x0) at x86/ffi.c:184 #10 0x40036568 in _svmf_invoke_native_static (env=0x804d568) at native.c:834 #11 0x40070fb0 in _svmf_interpreter (_env=0x804d568) at instructions_switch.c:9791 #12 0x40025127 in _svmh_invoke_nonvirtual_jlclass_initialize (env=0x804d568, this=0x8060a80, param_1=1) at method_invoke.c:352 #13 0x40040963 in _svmf_class_initialization (env=0x804d568, class=0x41453880) at initialization.c:24 #14 0x40078034 in _svmf_interpreter (_env=0x804d568) at instructions_switch.c:16329 #15 0x4002ab05 in _svmh_invoke_static_stringcreator_createinternedstring (env=0x804d568, param_1=0x8060898, ret=0x8060aa0) at method_invoke.c:4072 #16 0x4002d09d in _svmf_get_interned_string (env=0x804d568, value=0x4144c4f8 "java-lang", str=0x8060aa0) at util2.c:1018 #17 0x4002e411 in _svmf_resolve_CONSTANT_String (env=0x804d568, stringref=0x4144c4e0) at resolve.c:743 #18 0x4007361c in _svmf_interpreter (_env=0x804d568) at instructions_switch.c:12740 #19 0x4002c291 in _svmh_invoke_specific_static_clinit (env=0x804d568, method=0x4144e344) at method_invoke.c:5061 #20 0x4008707d in Java_java_lang_Class_step8 (_env=0x804d568, _class=0x8060868, vmData=0x8060858) at java_lang_Class.c:936 #21 0x400e8e99 in ffi_call_SYSV () at /tmp/cc77uIC1.s:39 #22 0x400e8e5a in ffi_call (cif=0x64616f, fn=0x40086fdc <Java_java_lang_Class_step8>, rvalue=0xff63606e, avalue=0x0) at x86/ffi.c:184 #23 0x40036568 in _svmf_invoke_native_static (env=0x804d568) at native.c:834 #24 0x40070fb0 in _svmf_interpreter (_env=0x804d568) at instructions_switch.c:9791 #25 0x40025127 in _svmh_invoke_nonvirtual_jlclass_initialize (env=0x804d568, this=0x8060398, param_1=1) at method_invoke.c:352 #26 0x40040963 in _svmf_class_initialization (env=0x804d568, class=0x4144ad48) at initialization.c:24 #27 0x40078034 in _svmf_interpreter (_env=0x804d568) at instructions_switch.c:16329 #28 0x4002ab05 in _svmh_invoke_static_stringcreator_createinternedstring (env=0x804d568, param_1=0x8060878, ret=0x8060418) at method_invoke.c:4072 #29 0x4002d09d in _svmf_get_interned_string (env=0x804d568, value=0x41430ef0 "SSʼNJÌ\214Î\231Ì\210Ì\201Î¥Ì\210Ì\201ÔµÕ\222H̱TÌ\210WÌ\212YÌ\212AʾΥÌ\223Î¥Ì\223Ì\200Î¥Ì\223Ì\201Î¥Ì\223Í\202á¼\210Î\231á¼\211Î\231á¼\212Î\231á¼\213Î\231á¼\214Î\231á¼\215Î\231á¼\216Î\231á¼\217Î\231á¼\210Î\231á¼\211Î\231á¼\212Î\231á¼\213Î\231á¼\214Î\231á¼\215Î\231á¼\216Î\231á¼\217Î\231ἨÎ\231ἩÎ\231ἪÎ\231ἫÎ\231ἬÎ\231á¼Î\231á¼®Î\231ἯÎ\231ἨÎ\231ἩÎ\231ἪÎ\231ἫÎ"..., str=0x8060418) at util2.c:1018 #30 0x4002e411 in _svmf_resolve_CONSTANT_String (env=0x804d568, stringref=0x41430ed8) at resolve.c:743 #31 0x4007361c in _svmf_interpreter (_env=0x804d568) at instructions_switch.c:12740 #32 0x4002c291 in _svmh_invoke_specific_static_clinit (env=0x804d568, method=0x41432ffc) at method_invoke.c:5061 #33 0x4008707d in Java_java_lang_Class_step8 (_env=0x804d568, _class=0x805f460, vmData=0x805f450) at java_lang_Class.c:936 #34 0x400e8e99 in ffi_call_SYSV () at /tmp/cc77uIC1.s:39 #35 0x400e8e5a in ffi_call (cif=0x64616f, fn=0x40086fdc <Java_java_lang_Class_step8>, rvalue=0xff63606e, avalue=0x0) at x86/ffi.c:184 #36 0x40036568 in _svmf_invoke_native_static (env=0x804d568) at native.c:834 #37 0x40070fb0 in _svmf_interpreter (_env=0x804d568) at instructions_switch.c:9791 #38 0x40025127 in _svmh_invoke_nonvirtual_jlclass_initialize (env=0x804d568, this=0x80600f0, param_1=1) at method_invoke.c:352 #39 0x40040963 in _svmf_class_initialization (env=0x804d568, class=0x4142e3a0) at initialization.c:24 #40 0x40065b8d in FindClass (_env=0x804d568, name=0x804b649 "java/lang/String") at native_interface.c:23706 #41 0x0804a901 in main (argc=2, argv=0xbffff394) at sablevm.c:1391 #42 0x42017589 in __libc_start_main () from /lib/i686/libc.so.6 (gdb) |
From: Archie C. <ar...@de...> - 2002-08-15 23:18:49
|
Hi, Updating the java/sablevm FreeBSD port for 1.0.2, I ran into an interesting situation. First, note these warnings when building sablevm: > cc -DHAVE_CONFIG_H -I. -I. -I../../src/include -I./include -DBOOT_CLASS_PATH=\"/usr/local/lib/sablevm/classes-1.0.2\" -DBOOT_LIBRARY_PATH=\"/usr/local/lib/sablevm\" -O -pipe -g -D_P1003_1B_VISIBLE -pthread -I/usr/local/include -L/usr/local/lib -Wall -fno-gcse -Wno-unused -c libsablevm.c -Wp,-MD,.deps/libsablevm.TPlo -fPIC -DPIC -o libsablevm.lo In file included from /usr/local/include/ffi.h:35, > from libsablevm.c:17: > /usr/local/include/fficonfig.h:37: warning: `PACKAGE' redefined > ../../src/include/config.h:74: warning: this is the location of the previous definition > /usr/local/include/fficonfig.h:40: warning: `VERSION' redefined > ../../src/include/config.h:98: warning: this is the location of the previous definition The "fficonfig.h" defines PACKAGE and VERSION, and these conflict with (and override) these macros defined by sablevm. The unfortunate result is visible in this ktrace: 6032 sablevm NAMI "/usr/local/lib/sablevm/libjava-lang-1.20.so" 6032 sablevm RET open -1 errno 2 No such file or directory 6032 sablevm CALL sigprocmask(0x3,0x2805d6f0,0) 6032 sablevm RET sigprocmask 0 6032 sablevm CALL sigprocmask(0x1,0x2805d6e0,0xbfbfcc18) 6032 sablevm RET sigprocmask 0 6032 sablevm CALL sigprocmask(0x3,0x2805d6f0,0) 6032 sablevm RET sigprocmask 0 6032 sablevm CALL write(0x2,0xbfbfef70,0x1f) 6032 sablevm GIO fd 2 wrote 31 bytes "java/lang/UnsatisfiedLinkError " Notice the "1.20", which is the libffi version, in the filename instead of "1.0.2", which is the sablevm version. So sablevm never works, instead always dying with a UnsatisfiedLinkError. I'm curious why doesn't this happen under Linux too? In any case, it seems dangerous to have these conflicting macros with the same name. Cheers, -Archie __________________________________________________________________________ Archie Cobbs * Packet Design * http://www.packetdesign.com |
From: Etienne M. G. <eti...@uq...> - 2002-08-15 23:12:36
|
On Thu, Aug 15, 2002 at 02:49:36PM -0700, Archie Cobbs wrote: > > I'm curious why doesn't this happen under Linux too? In any case, it > seems dangerous to have these conflicting macros with the same name. This is a bug in libffi. Tha PACKAGE and VERSION macros are autoconf/automake generated ones which should NEVER be exported outside a package. It works on Linux because many people complained and submitted bug reports. I did under Debian GNU/Linux, and they fixed it. The fast solution is to comment theses macro definitions in the libffi headers of your system. OK, I'm off the Internet for a while. See the last messages I sent on the sablevm-devel list. Have fun! Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Archie C. <ar...@de...> - 2002-08-15 22:30:03
|
Hi, Updating the java/sablevm FreeBSD port for 1.0.2, I ran into an interesting bug. First, note these warnings when building sablevm: > cc -DHAVE_CONFIG_H -I. -I. -I../../src/include -I./include -DBOOT_CLASS_PATH=\"/usr/local/lib/sablevm/classes-1.0.2\" -DBOOT_LIBRARY_PATH=\"/usr/local/lib/sablevm\" -O -pipe -g -D_P1003_1B_VISIBLE -pthread -I/usr/local/include -L/usr/local/lib -Wall -fno-gcse -Wno-unused -c libsablevm.c -Wp,-MD,.deps/libsablevm.TPlo -fPIC -DPIC -o libsablevm.lo In file included from /usr/local/include/ffi.h:35, > from libsablevm.c:17: > /usr/local/include/fficonfig.h:37: warning: `PACKAGE' redefined > ../../src/include/config.h:74: warning: this is the location of the previous definition > /usr/local/include/fficonfig.h:40: warning: `VERSION' redefined > ../../src/include/config.h:98: warning: this is the location of the previous definition The "fficonfig.h" defines PACKAGE and VERSION, and these conflict with (and override) these macros defined by sablevm. The unfortunate result is visible in this ktrace: 6032 sablevm NAMI "/usr/local/lib/sablevm/libjava-lang-1.20.so" 6032 sablevm RET open -1 errno 2 No such file or directory 6032 sablevm CALL sigprocmask(0x3,0x2805d6f0,0) 6032 sablevm RET sigprocmask 0 6032 sablevm CALL sigprocmask(0x1,0x2805d6e0,0xbfbfcc18) 6032 sablevm RET sigprocmask 0 6032 sablevm CALL sigprocmask(0x3,0x2805d6f0,0) 6032 sablevm RET sigprocmask 0 6032 sablevm CALL write(0x2,0xbfbfef70,0x1f) 6032 sablevm GIO fd 2 wrote 31 bytes "java/lang/UnsatisfiedLinkError " Notice the "1.20", which is the libffi version, in the filename instead of "1.0.2", which is the sablevm version. So sablevm never works, instead always dying with a UnsatisfiedLinkError. I'm curious why doesn't this happen under Linux too? In any case, it seems dangerous to have these conflicting macros with the same name. Cheers, -Archie __________________________________________________________________________ Archie Cobbs * Packet Design * http://www.packetdesign.com |
From: Vladimir G. I. <vla...@ac...> - 2002-08-13 05:36:36
|
OK, obviously I missed it. (I don't expect build instructions to be in anything other than the INSTALL file.) --- Vladimir -------- Vladimir G. Ivanovic http://leonora.org/~vladimir 2770 Cowper St. vla...@ac... Palo Alto, CA 94306-2447 +1 650 678 8014 "EMG" == Etienne M Gagnon <eti...@uq...> writes: EMG> On Mon, Aug 12, 2002 at 04:36:04PM -0700, Vladimir G. Ivanovic wrote: >> No, I do not have libffi installed on my system. There was no indication >> that I saw either on the web site or in the INSTALL document of the >> distribution that libffi was needed. >> >> Perhaps a note about this could be added to a README somewhere (or made >> more visible if I missed it.) I've also noticed that the build script >> requires `jikes'. That dependency should also be noted somewhere. EMG> Hmmm... EMG> In the INSTALL file: EMG> ... EMG> SableVM specific instructions EMG> ============================= EMG> Please find these in the README file. EMG> ... EMG> In the README file: EMG> ... EMG> INSTALLATION INSTRUCTIONS EMG> ========================= EMG> First, you must make sure that the following libraries are installed EMG> on your system (along with their development header files): EMG> - libpopt EMG> - libffi EMG> - libltdl EMG> Note that the "sablevm-native-library" (which is a customized build of EMG> the GNU Classpath JNI native libraries) might have additional EMG> dependencies. Look at the documentation in its "classpath-docs" EMG> directory. EMG> You also need GCC (I've tested with version 3.1) and Jikes (tested EMG> with 1.15, 1.16 is known to be buggy at this point), as well as the EMG> usual GNU make tools. EMG> ... EMG> Unfortunately, plain text doesn't have colors to put these in red. EMG> Maybe I should write identical files in HTML eventually. ;-) >> I've noticed another problem with the build process: >> >> The build script is created by untarring sablevm-1.0.1.tar.gz. But the >> last step in that script is to untar sablevm-$VERSION.tar.gz. There is no >> need to untar it twice, and there is no need to `cd' into the resulting >> directory. EMG> I agree with the no "2 untarring" thing, but I have serious doubts EMG> about the "cd" one. Maybe I should provide the build scripts EMG> separately, instead. >> Thanks for your help. EMG> You're welcome. EMG> Etienne EMG> -- EMG> Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ EMG> SableVM: http://www.sablevm.org/ EMG> SableCC: http://www.sablecc.org/ |
From: Etienne M. G. <eti...@uq...> - 2002-08-13 00:18:24
|
On Mon, Aug 12, 2002 at 04:36:04PM -0700, Vladimir G. Ivanovic wrote: > No, I do not have libffi installed on my system. There was no indication > that I saw either on the web site or in the INSTALL document of the > distribution that libffi was needed. > > Perhaps a note about this could be added to a README somewhere (or made > more visible if I missed it.) I've also noticed that the build script > requires `jikes'. That dependency should also be noted somewhere. Hmmm... In the INSTALL file: ... SableVM specific instructions ============================= Please find these in the README file. ... In the README file: ... INSTALLATION INSTRUCTIONS ========================= First, you must make sure that the following libraries are installed on your system (along with their development header files): - libpopt - libffi - libltdl Note that the "sablevm-native-library" (which is a customized build of the GNU Classpath JNI native libraries) might have additional dependencies. Look at the documentation in its "classpath-docs" directory. You also need GCC (I've tested with version 3.1) and Jikes (tested with 1.15, 1.16 is known to be buggy at this point), as well as the usual GNU make tools. ... Unfortunately, plain text doesn't have colors to put these in red. Maybe I should write identical files in HTML eventually. ;-) > I've noticed another problem with the build process: > > The build script is created by untarring sablevm-1.0.1.tar.gz. But the > last step in that script is to untar sablevm-$VERSION.tar.gz. There is no > need to untar it twice, and there is no need to `cd' into the resulting > directory. I agree with the no "2 untarring" thing, but I have serious doubts about the "cd" one. Maybe I should provide the build scripts separately, instead. > Thanks for your help. You're welcome. Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Vladimir G. I. <vla...@ac...> - 2002-08-12 23:36:19
|
No, I do not have libffi installed on my system. There was no indication that I saw either on the web site or in the INSTALL document of the distribution that libffi was needed. Perhaps a note about this could be added to a README somewhere (or made more visible if I missed it.) I've also noticed that the build script requires `jikes'. That dependency should also be noted somewhere. I've installed and built the libffi-1.20 version, and it appears that I can build SableVM now. I've noticed another problem with the build process: The build script is created by untarring sablevm-1.0.1.tar.gz. But the last step in that script is to untar sablevm-$VERSION.tar.gz. There is no need to untar it twice, and there is no need to `cd' into the resulting directory. Thanks for your help. --- Vladimir -------- Vladimir G. Ivanovic http://leonora.org/~vladimir 2770 Cowper St. vla...@ac... Palo Alto, CA 94306-2447 +1 650 678 8014 "EMG" == Etienne M Gagnon <eti...@uq...> writes: EMG> On Mon, Aug 12, 2002 at 01:23:39PM -0700, Vladimir G. Ivanovic wrote: >> I get the following error message (after a lot of output, including some >> compiles): >> >> checking for ffi_prep_cif in -lffi... no >> ***ERROR: libffi is missing EMG> It seems you don't have libffi installed on your system. There's EMG> surely some rpm for it (you need the -dev version with header files, EMG> if applicable). EMG> Here's a URL: sources.redhat.com/libffi/ EMG> Check the README file for other potential dependency problems EMG> (specially with the native library). EMG> Etienne EMG> -- EMG> Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ EMG> SableVM: http://www.sablevm.org/ EMG> SableCC: http://www.sablecc.org/ |
From: Etienne M. G. <eti...@uq...> - 2002-08-12 21:06:50
|
On Mon, Aug 12, 2002 at 01:23:39PM -0700, Vladimir G. Ivanovic wrote: > I get the following error message (after a lot of output, including some > compiles): > > checking for ffi_prep_cif in -lffi... no > ***ERROR: libffi is missing It seems you don't have libffi installed on your system. There's surely some rpm for it (you need the -dev version with header files, if applicable). Here's a URL: sources.redhat.com/libffi/ Check the README file for other potential dependency problems (specially with the native library). Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Archie C. <ar...@de...> - 2002-08-12 20:45:07
|
Vladimir G. Ivanovic writes: > I downloaded sablevm-1.0.1.tar.gz and unpacked it into /usr/local/src. I > then downloaded into /usr/local/src/sablevm-1.0.1 the libraries > sablevm-{class,native}-library-1.0.1.tar.gz. > > When I execute > > $ CC=gcc3 ./build > > I get the following error message (after a lot of output, including some > compiles): > > checking for ffi_prep_cif in -lffi... no > ***ERROR: libffi is missing > make: *** No targets specified and no makefile found. Stop. > make: *** No rule to make target `install'. Stop. > > It appears that only the native library has been made because no > makefiles have been created except in and underneath the > ./sablevm-native-library directory. Let me ask the obvious stupid question: do you have libffi installed on your system? -Archie __________________________________________________________________________ Archie Cobbs * Packet Design * http://www.packetdesign.com |
From: Vladimir G. I. <vla...@ac...> - 2002-08-12 20:23:46
|
I downloaded sablevm-1.0.1.tar.gz and unpacked it into /usr/local/src. I then downloaded into /usr/local/src/sablevm-1.0.1 the libraries sablevm-{class,native}-library-1.0.1.tar.gz. When I execute $ CC=gcc3 ./build I get the following error message (after a lot of output, including some compiles): checking for ffi_prep_cif in -lffi... no ***ERROR: libffi is missing make: *** No targets specified and no makefile found. Stop. make: *** No rule to make target `install'. Stop. It appears that only the native library has been made because no makefiles have been created except in and underneath the ./sablevm-native-library directory. I am running Red Hat 7.3 with the latest released kernel (2.4.18-5smp). The gcc I'm using is: $ gcc3 -v Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.1/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --host=i386-redhat-linux --with-system-zlib Thread model: posix gcc version 3.1 (Red Hat Linux 7.3 3.1-1) Any ideas? --- Vladimir -------- Vladimir G. Ivanovic http://leonora.org/~vladimir 2770 Cowper St. vla...@ac... Palo Alto, CA 94306-2447 +1 650 678 8014 |
From: Etienne M. G. <eti...@uq...> - 2002-08-09 01:12:59
|
Changes: ======== - SableVM now waits until all non-daemon threads are died before quitting. - SableVM is now known to run all SPECjvm98 benchmarks, SableCC 2.17.3, and Soot 1.2.3. - Convenient build scripts have been added. Notes: ====== To install SableVM, you must download the three files: - sablevm-x.y.z.tar.gz - sablevm-class-library-x.y.z.tar.gz - sablevm-native-library-x.y.z.tar.gz Then, uncompress the sablevm-x.y.z.tar.gz file (tar -xzf) and follow the instructions in the README file. You can change many options in SableVM throught the configure script. For example, you can type "./configure -with-object-layout=traditional". Try "./configure --help" and read the generic INSTALL file for more information. Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Etienne M. G. <eti...@uq...> - 2002-08-06 12:54:54
|
I am pleased to announce the official release of SableVM version 1.0.0. This version includes all of the promised features: 3 flavors of threading, bidirectional/traditional object layout, sparse interface vtables, spinlock-free thinlocks, low cost maps for precise GC, grow as needed Java stack, signal (or not) based null checks, and much more. As usual, you can download the sources from http://www.sablevm.org/ . To the pleasure of hearing from you on the sablevm-user list! Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Archie C. <ar...@de...> - 2002-07-09 22:45:04
|
Hi, I'm new to this list... doesn't seem like there's much going on though. I've been wanting to play with SableVM a little bit, and the first step in doing that of course is getting it to work on FreeBSD :-) So I've added FreeBSD ports for sablevm-0.1.6 and sablepath-0.1.3. Doing this has required some patches to fix some Linux-centric assumptions. I thought it might be useful to summarize these here. Just a few patches were necessary, so in general portability is not far away if the SableVM developers are interested. FYI the patches are visible here: http://www.freebsd.org/cgi/cvsweb.cgi/ports/java/sablepath/files/ http://www.freebsd.org/cgi/cvsweb.cgi/ports/java/sablevm/files/ I tried half-heartedly to make these patches portable (rather than simply breaking Linux compatbility in favor of FreeBSD), so some of those changes are candidates for mergeing into the source while others aren't. The changes required were: - FreeBSD needs these additional CFLAGS: -pthread Link with the reentrant version of libc (libc_r). This flag replaces the "-lpthread" flag on Linux. -I/usr/local/include -L/usr/local/lib FreeBSD does not automatically search /usr/local for include files and libraries when compiling and linking. -D_P1003_1B_VISIBLE Required when compiling sablevm to have 'siginfo_t' defined when including <signal.h>. - FreeBSD does not have a libdl; dlopen() et.al. are part of libc. - FreeBSD does not have a "malloc.h"; malloc() is declared in <stdlib.h>. - FreeBSD has <machine/endian.h> instead of <endian.h> and the macro to use is BYTE_ORDER rather than WORDS_BIGENDIAN Finally, I found what appears to be a bug or at least inconsistency between Linux and FreeBSD. When running HelloWorld, the first SIGSEGV comes from the first call to _svmf_interpreter(), at line 97, because 'frame' is NULL: 88 { 89 /* This causes a sigfault for _svmv_instructions initialization, as 90 env->stack.frame->method is NULL at that point. 91 This way, we do not introduce overhead to normal _svmf_interpreter 92 execution path. */ 93 94 _svmt_stack_frame *frame = env->stack.current_frame; 95 _svmt_method_info *method = frame->method; 96 97 locals = (_svmt_stack_value *) (((char *) frame) - method->locals_size); 98 stack = (_svmt_stack_value *) (((char *) frame) + method->stack_offset); 99 100 /* printf ("- %s.%s %s\n", 101 method->class_info->name, 102 DREF (method->name, value), 103 DREF (method->descriptor, value)); */ 104 } When the signal is handled however, info->si_addr is 0x3c (presumably because the 'locals_size' field of 'method' has that offset). This causes the (commented out) code below to be executed, leading to an abort(). When this patch is added however HelloWorld works: --- sablevm-0.1.6.orig/src/libsablevm/error.c Sun Apr 15 03:52:45 2001 +++ sablevm-0.1.6/src/libsablevm/error.c Tue Jul 9 13:11:04 2002 @@ -202,11 +202,13 @@ { /* probably NULL pointer exception. Let's check... */ +#if 0 if (info->si_addr != NULL) { /* not a NULL memory access. We don't handle this. */ goto delegate_0; } +#endif signal_throw (NULL_POINTER_EXCEPTION); } I don't understand how this can work under Linux unless info->si_addr is always NULL, which would seem like a Linux bug. Cheers, -Archie __________________________________________________________________________ Archie Cobbs * Packet Design * http://www.packetdesign.com |
From: Etienne M. G. <eti...@uq...> - 2002-03-18 14:29:05
|
Erik Corry wrote: > Hi, > > I'm looking for a Java VM where I can add a lot of logging to I can > get a trace file of allocations, call/returns and pointer writes > for a largish application. > > I tried to compile sablepath-classes with jikes 1.14-1 from RedHat > 7.2. It crashed on about 10-15 of the files. I installed 1.13 from > RedHat 7.1 and now it seems to compile. So that was nice. > > I'm a little confused about sablepath and sablepath-libs. Do I need > both? I can't compile sablepath-libs, since there is no file named > configure, so the instructions in the README don't work. Sablepath-classes/libs are the Java and native C parts, respectively, of the class libraries. They have not been tested with the public SableVM version (see below). > > I'm using stuff from anonymous CVS: > The stuff in CVS (sablepath-libs) requires the whole GNU auto* program suite. You need to type something like: $ aclocal ; autoconf ; autoheader ; automake -a $ aclocal ; autoconf ; autoheader ; automake -a $ ./configure $ make $ make install > Also I can't get the sablevm directory to work. I typed > > aclocal > automake > > which worked, but then > > ./configure > > gave the error: > Same as above. Be aware that the CVS SableVM code is not up to date with the CVS sablepath code. I haven't uploaded my work in progress SableVM copy into the public CVS repository. I'll send a message on this list when I'll check-in a fresh SableVM snapshot. (Over the last year, SableVM has undergone major structural changes, and I did not want to break the SableVM build process with unstable code.) > creating cache ./config.cache > configure: error: can not find install-sh or install.sh in . ./.. ./../.. > > and automake was even worse: > > automake: configure.in: required file `./install-sh' not found > automake: configure.in: required file `./mkinstalldirs' not found > automake: configure.in: required file `./missing' not found > configure.in: 149: required file `./ltmain.sh' not found > configure.in: 149: required file `./config.guess' not found > configure.in: 149: required file `./config.sub' not found > automake: configure.in: required file `./config.guess' not found > automake: configure.in: required file `./config.sub' not found > configure.in: 18: required file `src/include/config.h.in' not found > > What should I be doing here? I have > > automake-1.4p5-2 > autoconf-2.13-14 > libtool-1.4-8 I use the following: automake 1.5 autoconf 2.53 libtool 1.4.2a Debian GNU/Linux (tested under both woody & sid versions) Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Erik C. <er...@ar...> - 2002-03-15 23:58:45
|
Hi, I'm looking for a Java VM where I can add a lot of logging to I can get a trace file of allocations, call/returns and pointer writes for a largish application. I tried to compile sablepath-classes with jikes 1.14-1 from RedHat 7.2. It crashed on about 10-15 of the files. I installed 1.13 from RedHat 7.1 and now it seems to compile. So that was nice. I'm a little confused about sablepath and sablepath-libs. Do I need both? I can't compile sablepath-libs, since there is no file named configure, so the instructions in the README don't work. I'm using stuff from anonymous CVS: Also I can't get the sablevm directory to work. I typed aclocal automake which worked, but then ./configure gave the error: creating cache ./config.cache configure: error: can not find install-sh or install.sh in . ./.. ./../.. and automake was even worse: automake: configure.in: required file `./install-sh' not found automake: configure.in: required file `./mkinstalldirs' not found automake: configure.in: required file `./missing' not found configure.in: 149: required file `./ltmain.sh' not found configure.in: 149: required file `./config.guess' not found configure.in: 149: required file `./config.sub' not found automake: configure.in: required file `./config.guess' not found automake: configure.in: required file `./config.sub' not found configure.in: 18: required file `src/include/config.h.in' not found What should I be doing here? I have automake-1.4p5-2 autoconf-2.13-14 libtool-1.4-8 Any insights? Yours, -- Erik Corry er...@ar... |
From: Etienne M. G. <eti...@uq...> - 2002-01-15 14:21:46
|
lx...@cs... wrote: > Hello, All, > > I am new to the autoconf tools, so can anyone tell me what is the command > line for the ./configure to build sablevm when the ffi and popt lib are > in non-standard directory? I already build the libffi and > popt successfully on Sun Sparc, but I don't know how to tell the > configure to use those libraries as it complains cannot find libffi, etc. > You need to set the following environment variables: LIBRARY_PATH LD_LIBRARY_PATH LD_RUN_PATH If you are using "bash", this means: $ export LIBRARY_PATH=/path-to-ffi... Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: <lx...@cs...> - 2002-01-15 00:01:15
|
Hello, All, I am new to the autoconf tools, so can anyone tell me what is the command line for the ./configure to build sablevm when the ffi and popt lib are in non-standard directory? I already build the libffi and popt successfully on Sun Sparc, but I don't know how to tell the configure to use those libraries as it complains cannot find libffi, etc. Thanks a lot for help. Larry Xu |
From: Karl T. K. <ka...@pr...> - 2001-12-17 18:20:49
|
Hi. I recently compiled and installed the 0.1.6 version of sablevm. I am running a Linux system with the 2.4.14 kernel and glibc-2.2.4. Sablevm decides pretty early on to exit with a SIGSEGV. Some gdb tracing tells me that libsablevm/interpreter.c, line 97: locals = (_svmt_stack_value *) (((char *) frame) - method->locals_size); is the culprit, as method is NULL. Encasing this and the next assignment in an if(method) results in a new segfault later on (same file, around line 114: dispatch: NEXT(); as pc is 0. Inserting an explicit siglongjmp() if method is NULL at line 97 gets me a bit further: class_loader.c:892 892 (vm, *class_instance, vm->boot_loader.fields.jlclass_data->offset, *data); But here jlclass_data is 0, so a new SIGSEGV occurs. From reading the sources, it appears that the idea is that sigsegvs should be caught by the program itself and handled gracefully somehow. Is it the intention that sigsetjmp() handles this ? If so, has this function's semantics changed from 2.2 to 2.4 ? Has this problem been reproduced elsewhere ? Kind regards, Karl T |
From: Sean C. S. <se...@se...> - 2001-12-12 05:14:16
|
Intel's Open Runtime Platform http://orp.sourceforge.net/ http://www.usenix.org/events/jvm01/ http://www.usenix.org/events/jvm02/ http://research.sun.com/jtech/ http://www.japhar.org/ http://www.sablevm.org/ http://www-106.ibm.com/developerworks/java/library/jalapeno/ IBM's Jikes RVM (Research Virtual Machine) http://www-124.ibm.com/developerworks/oss/jikesrvm/ http://www.research.ibm.com/jalapeno/ http://www.gnu.org/software/classpath/ http://www.javagrande.org/ http://www.kaffe.org http://wonka.acunia.com/ http://www.go-mono.com |
From: Etienne M. G. <eti...@uq...> - 2001-11-26 14:33:06
|
Ian Rogers wrote: > java.lang.reflect is missing from the current CVS tree of > sablepath-libs. Is there a reason? This part is really VM dependent. Unless you see some reusable code in there? Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Etienne M. G. <eti...@uq...> - 2001-11-26 14:25:04
|
Hi Chris. First, I tried sometime ago migrating to GCC 3.0, but I discovered that GDB would not support debugging through GCC 3.0 binary code. So, I decided to wait until GCC 3.x was mature engouh, with an appropriate complementary tools suite, to migrate to it. Second, I have not looked at any SUN JVM source code; this requires signing a license and getting access to proprietary/confidential source code and know-how, etc. I do "open" development and research, and I do not wish to get "infected" by company-owned confidential information. If you have signed such a license, you can still use SableVM, but you can't contribute anything to it (same for any other open JVM). Finally, the current public version of SableVM is outdated. It has know bugs, and it has some semantic problems (involving class initialization). If you are in a hurry and you need access to a "Free" (as in freedom [free speech, not free beer]) bytecode interpreter, look at www.kaffe.org. The Kaffe VM is much more stable, and it contains both an interpreter and a JIT. The license of Kaffe is the GNU GPL, without any "exception" to it. So, if you want to write proprietary software with it, you might have to negotiate a different license agreement with Transvirtual (the company developing Kaffe). I encourage you to stay tuned for the upcoming release of a new SableVM version, as preliminary experiments show that SableVM's interpreter is much faster than Kaffe's interpreter [not JIT]. Etienne Chris Sears wrote: > I talked to one the CVM engineers and he > suggested using 2.95.3 which worked. > FWIW, he mentioned that the next release > of CVM has a workaround to allow later > compiler releases. > > Chris > > __________________________________________________ > Do You Yahoo!? > Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month. > http://geocities.yahoo.com/ps/info1 > > _______________________________________________ > Sablevm-user mailing list > Sab...@li... > https://lists.sourceforge.net/lists/listinfo/sablevm-user > > . > > -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Chris S. <cbs...@ya...> - 2001-11-26 03:45:45
|
I talked to one the CVM engineers and he suggested using 2.95.3 which worked. FWIW, he mentioned that the next release of CVM has a workaround to allow later compiler releases. Chris __________________________________________________ Do You Yahoo!? Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month. http://geocities.yahoo.com/ps/info1 |
From: Chris S. <cbs...@ya...> - 2001-11-24 21:24:17
|
I'm using gcc 3.0.2. I was using 2.96 but I saw your note that this wasn't a real release so I upgraded to 3.0.2 with the same problem. This is the compile line for native_interface.c gcc -DHAVE_CONFIG_H -I. -I. -I../../src/include -I./include -g -O2 -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wwrite-strings -Wsign-compare -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wlong-long -O3 -finline-functions -funroll-loops -c native_interface.c -fPIC -DPIC -o .libs/native_interface.lo In file included from includes.h:33, from native_interface.c:8: include/jni.h:489: warning: declaration of `index' shadows global declaration include/jni.h:491: warning: declaration of `index' shadows global declaration native_interface.c:322: warning: declaration of `index' shadows global declaration native_interface.c:324: warning: declaration of `index' shadows global declaration native_interface.c:860: warning: declaration of `index' shadows global declaration native_interface.c: In function `SetObjectArrayElement': native_interface.c:862: warning: declaration of `index' shadows global declaration native_interface.c: In function `CallVoidMethodV': native_interface.c:1374: `jbyte' is promoted to `int' when passed through `...' native_interface.c:1374: (so you should pass `int' not `jbyte' to `va_arg') ... This is line 1374: ALL_METHODS (CALL_METHOD_V) And if I unravel it all, this is the first offending line: locals[i++].jint = __builtin_va_arg (args, jbyte); } break; case (_svmt_u8) 'C': { But here's the funny part. I really just want a Java interpreter. So I tried building Sun's CVM (j2me) interpreter and got basically the same problem, va_arg in the jni handler. Well, I thought it was funny. Any clue? thanks, Chris Sears cbs...@ya... __________________________________________________ Do You Yahoo!? Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month. http://geocities.yahoo.com/ps/info1 |
From: Ian R. <ir...@cs...> - 2001-11-21 18:14:01
|
Hi, java.lang.reflect is missing from the current CVS tree of sablepath-libs. Is there a reason? Ta, Ian |
From: Etienne M. G. <eti...@uq...> - 2001-10-12 03:33:26
|
On Thu, Oct 11, 2001 at 04:23:04PM -0700, Jim Jensen wrote: > Am running RH Linux 7.1 with gcc 2.96 on an i386. Any suggestions? The same > error occurs attempting to complie sablepath-libs-0.1.3 The GCC project has never released a 2.96 version. This is a snapshot that Redhat took out of the "unstable" CVS development tree of GCC. So, please try first to compile Sablepath using an officially released version of GCC. You can find then on the official GCC site: http://www.gnu.org/software/gcc/releases.html Have fun! Etienne PS: If you are a RedHat customer, you could ask their technical support for help to install a "sane" gcc version... -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |