Hello, I've got Java classes from source ("99 bottles of beer") compiled to bytecode and from source or bytecode to a dynamically linked executable working just fine, also Sun's JDK works on the generated bytecode - however, gij does not, even without boehm-gc (which prevented it from working before):
[EMAIL PROTECTED]:/home/tg/tmp $ gdb --args /usr/bin/gij bottles GNU gdb 6.3.50.20050107 Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-ecce-mirbsd8"...(no debugging symbols found) (gdb) r Starting program: /usr/bin/gij bottles (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) Program received signal SIGSEGV, Segmentation fault. 0x02b88fa6 in _Jv_ClassReader::handleFieldsEnd () from /usr/lib/libgcj.so.5.0 (gdb) bt #0 0x02b88fa6 in _Jv_ClassReader::handleFieldsEnd () from /usr/lib/libgcj.so.5.0 #1 0x02b8c408 in _Jv_ClassReader::read_fields () from /usr/lib/libgcj.so.5.0 #2 0x02b8c749 in _Jv_ClassReader::parse () from /usr/lib/libgcj.so.5.0 #3 0x02b8c974 in _Jv_DefineClass () from /usr/lib/libgcj.so.5.0 #4 0x02bab6eb in java::lang::VMClassLoader::defineClass () from /usr/lib/libgcj.so.5.0 #5 0x02bbb57a in java::lang::ClassLoader::defineClass () from /usr/lib/libgcj.so.5.0 #6 0x02cb6e37 in java::security::SecureClassLoader::defineClass () from /usr/lib/libgcj.so.5.0 #7 0x02c9d201 in java::net::URLClassLoader::findClass () from /usr/lib/libgcj.so.5.0 #8 0x02ba34e6 in gnu::gcj::runtime::VMClassLoader::findClass () from /usr/lib/libgcj.so.5.0 #9 0x02bbb748 in java::lang::ClassLoader::loadClass () from /usr/lib/libgcj.so.5.0 #10 0x02babae4 in _Jv_FindClass () from /usr/lib/libgcj.so.5.0 #11 0x02bab32b in java::lang::Class::forName () from /usr/lib/libgcj.so.5.0 #12 0x02bab44d in java::lang::Class::forName () from /usr/lib/libgcj.so.5.0 #13 0x02c27199 in gnu::gcj::runtime::FirstThread::run () from /usr/lib/libgcj.so.5.0 #14 0x02bb1962 in _Jv_ThreadRun () from /usr/lib/libgcj.so.5.0 #15 0x02b7d998 in _Jv_RunMain () from /usr/lib/libgcj.so.5.0 #16 0x1c000ade in ?? () #17 0x1c000870 in ?? () #18 0x00000002 in ?? () #19 0xcfbf4540 in ?? () #20 0xcfbf454c in ?? () #21 0x1c000d40 in ?? () #22 0x00000000 in ?? () (gdb) disas 0x02b88fa6 Dump of assembler code for function _ZN15_Jv_ClassReader15handleFieldsEndEv: 0x02b88ea8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+0>: push %ebp 0x02b88ea9 <_ZN15_Jv_ClassReader15handleFieldsEndEv+1>: mov %esp,%ebp 0x02b88eab <_ZN15_Jv_ClassReader15handleFieldsEndEv+3>: push %edi 0x02b88eac <_ZN15_Jv_ClassReader15handleFieldsEndEv+4>: push %esi 0x02b88ead <_ZN15_Jv_ClassReader15handleFieldsEndEv+5>: sub $0x40,%esp 0x02b88eb0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+8>: mov 0x8(%ebp),%eax 0x02b88eb3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+11>: movl $0x0,0xffffffe0(%ebp) 0x02b88eba <_ZN15_Jv_ClassReader15handleFieldsEndEv+18>: mov %eax,0xffffffe4(%ebp) 0x02b88ebd <_ZN15_Jv_ClassReader15handleFieldsEndEv+21>: mov 0x1c(%eax),%edx 0x02b88ec0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+24>: movswl 0x34(%edx),%eax 0x02b88ec4 <_ZN15_Jv_ClassReader15handleFieldsEndEv+28>: lea 0xffffffff(%eax),%esi 0x02b88ec7 <_ZN15_Jv_ClassReader15handleFieldsEndEv+31>: mov 0x80(%edx),%ecx 0x02b88ecd <_ZN15_Jv_ClassReader15handleFieldsEndEv+37>: cmp %esi,0xffffffe0(%ebp) 0x02b88ed0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+40>: mov 0x2c(%edx),%edi 0x02b88ed3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+43>: mov %ecx,0xffffffdc(%ebp) 0x02b88ed6 <_ZN15_Jv_ClassReader15handleFieldsEndEv+46>: jge 0x2b88fa0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+248> 0x02b88edc <_ZN15_Jv_ClassReader15handleFieldsEndEv+52>: mov 0xffffffe0(%ebp),%eax 0x02b88edf <_ZN15_Jv_ClassReader15handleFieldsEndEv+55>: shl $0x4,%eax 0x02b88ee2 <_ZN15_Jv_ClassReader15handleFieldsEndEv+58>: testb $0x8,0x8(%eax,%edi,1) 0x02b88ee7 <_ZN15_Jv_ClassReader15handleFieldsEndEv+63>: je 0x2b88fc8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+288> 0x02b88eed <_ZN15_Jv_ClassReader15handleFieldsEndEv+69>: incl 0xffffffe0(%ebp) 0x02b88ef0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+72>: cmp %esi,0xffffffe0(%ebp) 0x02b88ef3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+75>: jl 0x2b88edc <_ZN15_Jv_ClassReader15handleFieldsEndEv+52> 0x02b88ef5 <_ZN15_Jv_ClassReader15handleFieldsEndEv+77>: lea 0x0(%esi),%esi 0x02b88ef8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+80>: cmp %esi,0xffffffe0(%ebp) 0x02b88efb <_ZN15_Jv_ClassReader15handleFieldsEndEv+83>: je 0x2b88ff3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+331> 0x02b88f01 <_ZN15_Jv_ClassReader15handleFieldsEndEv+89>: mov 0xffffffe0(%ebp),%edx 0x02b88f04 <_ZN15_Jv_ClassReader15handleFieldsEndEv+92>: shl $0x4,%edx 0x02b88f07 <_ZN15_Jv_ClassReader15handleFieldsEndEv+95>: mov (%edx,%edi,1),%eax 0x02b88f0a <_ZN15_Jv_ClassReader15handleFieldsEndEv+98>: mov %eax,0xffffffe8(%ebp) 0x02b88f0d <_ZN15_Jv_ClassReader15handleFieldsEndEv+101>: mov 0x4(%edx,%edi,1),%eax 0x02b88f11 <_ZN15_Jv_ClassReader15handleFieldsEndEv+105>: mov %eax,0xffffffec(%ebp) 0x02b88f14 <_ZN15_Jv_ClassReader15handleFieldsEndEv+108>: mov 0x8(%edx,%edi,1),%eax 0x02b88f18 <_ZN15_Jv_ClassReader15handleFieldsEndEv+112>: mov %eax,0xfffffff0(%ebp) 0x02b88f1b <_ZN15_Jv_ClassReader15handleFieldsEndEv+115>: mov 0xc(%edx,%edi,1),%eax ---Type <return> to continue, or q <return> to quit--- 0x02b88f1f <_ZN15_Jv_ClassReader15handleFieldsEndEv+119>: mov %eax,0xfffffff4(%ebp) 0x02b88f22 <_ZN15_Jv_ClassReader15handleFieldsEndEv+122>: mov 0xffffffdc(%ebp),%ecx 0x02b88f25 <_ZN15_Jv_ClassReader15handleFieldsEndEv+125>: mov 0xffffffe0(%ebp),%eax 0x02b88f28 <_ZN15_Jv_ClassReader15handleFieldsEndEv+128>: mov (%ecx,%eax,2),%ax 0x02b88f2c <_ZN15_Jv_ClassReader15handleFieldsEndEv+132>: mov %esi,%ecx 0x02b88f2e <_ZN15_Jv_ClassReader15handleFieldsEndEv+134>: shl $0x4,%ecx 0x02b88f31 <_ZN15_Jv_ClassReader15handleFieldsEndEv+137>: mov %ecx,0xffffffc4(%ebp) 0x02b88f34 <_ZN15_Jv_ClassReader15handleFieldsEndEv+140>: mov %ax,0xffffffda(%ebp) 0x02b88f38 <_ZN15_Jv_ClassReader15handleFieldsEndEv+144>: mov (%ecx,%edi,1),%eax 0x02b88f3b <_ZN15_Jv_ClassReader15handleFieldsEndEv+147>: mov %eax,(%edx,%edi,1) 0x02b88f3e <_ZN15_Jv_ClassReader15handleFieldsEndEv+150>: mov 0x4(%ecx,%edi,1),%eax 0x02b88f42 <_ZN15_Jv_ClassReader15handleFieldsEndEv+154>: mov %eax,0x4(%edx,%edi,1) 0x02b88f46 <_ZN15_Jv_ClassReader15handleFieldsEndEv+158>: mov 0x8(%ecx,%edi,1),%eax 0x02b88f4a <_ZN15_Jv_ClassReader15handleFieldsEndEv+162>: mov %eax,0x8(%edx,%edi,1) 0x02b88f4e <_ZN15_Jv_ClassReader15handleFieldsEndEv+166>: mov 0xc(%ecx,%edi,1),%eax 0x02b88f52 <_ZN15_Jv_ClassReader15handleFieldsEndEv+170>: mov %eax,0xc(%edx,%edi,1) 0x02b88f56 <_ZN15_Jv_ClassReader15handleFieldsEndEv+174>: mov 0xffffffdc(%ebp),%eax 0x02b88f59 <_ZN15_Jv_ClassReader15handleFieldsEndEv+177>: mov (%eax,%esi,2),%ax 0x02b88f5d <_ZN15_Jv_ClassReader15handleFieldsEndEv+181>: mov 0xffffffe0(%ebp),%edx 0x02b88f60 <_ZN15_Jv_ClassReader15handleFieldsEndEv+184>: mov 0xffffffdc(%ebp),%ecx 0x02b88f63 <_ZN15_Jv_ClassReader15handleFieldsEndEv+187>: mov %ax,(%ecx,%edx,2) 0x02b88f67 <_ZN15_Jv_ClassReader15handleFieldsEndEv+191>: mov 0xffffffe8(%ebp),%eax 0x02b88f6a <_ZN15_Jv_ClassReader15handleFieldsEndEv+194>: mov 0xffffffc4(%ebp),%edx 0x02b88f6d <_ZN15_Jv_ClassReader15handleFieldsEndEv+197>: mov %eax,(%edx,%edi,1) 0x02b88f70 <_ZN15_Jv_ClassReader15handleFieldsEndEv+200>: mov 0xffffffec(%ebp),%eax 0x02b88f73 <_ZN15_Jv_ClassReader15handleFieldsEndEv+203>: mov %eax,0x4(%edx,%edi,1) 0x02b88f77 <_ZN15_Jv_ClassReader15handleFieldsEndEv+207>: mov 0xfffffff0(%ebp),%eax 0x02b88f7a <_ZN15_Jv_ClassReader15handleFieldsEndEv+210>: mov %eax,0x8(%edx,%edi,1) 0x02b88f7e <_ZN15_Jv_ClassReader15handleFieldsEndEv+214>: mov 0xfffffff4(%ebp),%eax 0x02b88f81 <_ZN15_Jv_ClassReader15handleFieldsEndEv+217>: mov %eax,0xc(%edx,%edi,1) 0x02b88f85 <_ZN15_Jv_ClassReader15handleFieldsEndEv+221>: mov 0xffffffda(%ebp),%ax 0x02b88f89 <_ZN15_Jv_ClassReader15handleFieldsEndEv+225>: mov %ax,(%ecx,%esi,2) 0x02b88f8d <_ZN15_Jv_ClassReader15handleFieldsEndEv+229>: incl 0xffffffe0(%ebp) 0x02b88f90 <_ZN15_Jv_ClassReader15handleFieldsEndEv+232>: dec %esi 0x02b88f91 <_ZN15_Jv_ClassReader15handleFieldsEndEv+233>: cmp %esi,0xffffffe0(%ebp) 0x02b88f94 <_ZN15_Jv_ClassReader15handleFieldsEndEv+236>: jl 0x2b88edc <_ZN15_Jv_ClassReader15handleFieldsEndEv+52> 0x02b88f9a <_ZN15_Jv_ClassReader15handleFieldsEndEv+242>: mov 0xffffffe4(%ebp),%ecx 0x02b88f9d <_ZN15_Jv_ClassReader15handleFieldsEndEv+245>: mov 0x1c(%ecx),%edx 0x02b88fa0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+248>: mov 0xffffffe0(%ebp),%eax ---Type <return> to continue, or q <return> to quit--- 0x02b88fa3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+251>: shl $0x4,%eax 0x02b88fa6 <_ZN15_Jv_ClassReader15handleFieldsEndEv+254>: movzwl 0x8(%eax,%edi,1),%eax 0x02b88fab <_ZN15_Jv_ClassReader15handleFieldsEndEv+259>: shr $0x3,%eax 0x02b88fae <_ZN15_Jv_ClassReader15handleFieldsEndEv+262>: and $0x1,%eax 0x02b88fb1 <_ZN15_Jv_ClassReader15handleFieldsEndEv+265>: cmp $0x1,%al 0x02b88fb3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+267>: sbbl $0xffffffff,0xffffffe0(%ebp) 0x02b88fb7 <_ZN15_Jv_ClassReader15handleFieldsEndEv+271>: mov 0xffffffe0(%ebp),%ecx 0x02b88fba <_ZN15_Jv_ClassReader15handleFieldsEndEv+274>: mov %cx,0x36(%edx) 0x02b88fbe <_ZN15_Jv_ClassReader15handleFieldsEndEv+278>: add $0x40,%esp 0x02b88fc1 <_ZN15_Jv_ClassReader15handleFieldsEndEv+281>: pop %esi 0x02b88fc2 <_ZN15_Jv_ClassReader15handleFieldsEndEv+282>: pop %edi 0x02b88fc3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+283>: leave 0x02b88fc4 <_ZN15_Jv_ClassReader15handleFieldsEndEv+284>: ret 0x02b88fc5 <_ZN15_Jv_ClassReader15handleFieldsEndEv+285>: lea 0x0(%esi),%esi 0x02b88fc8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+288>: cmp %esi,0xffffffe0(%ebp) 0x02b88fcb <_ZN15_Jv_ClassReader15handleFieldsEndEv+291>: jge 0x2b88ef8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+80> 0x02b88fd1 <_ZN15_Jv_ClassReader15handleFieldsEndEv+297>: lea 0x0(%esi),%esi 0x02b88fd4 <_ZN15_Jv_ClassReader15handleFieldsEndEv+300>: mov %esi,%eax 0x02b88fd6 <_ZN15_Jv_ClassReader15handleFieldsEndEv+302>: shl $0x4,%eax 0x02b88fd9 <_ZN15_Jv_ClassReader15handleFieldsEndEv+305>: testb $0x8,0x8(%eax,%edi,1) 0x02b88fde <_ZN15_Jv_ClassReader15handleFieldsEndEv+310>: jne 0x2b88ef8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+80> 0x02b88fe4 <_ZN15_Jv_ClassReader15handleFieldsEndEv+316>: dec %esi 0x02b88fe5 <_ZN15_Jv_ClassReader15handleFieldsEndEv+317>: cmp %esi,0xffffffe0(%ebp) 0x02b88fe8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+320>: jl 0x2b88fd4 <_ZN15_Jv_ClassReader15handleFieldsEndEv+300> 0x02b88fea <_ZN15_Jv_ClassReader15handleFieldsEndEv+322>: cmp %esi,0xffffffe0(%ebp) 0x02b88fed <_ZN15_Jv_ClassReader15handleFieldsEndEv+325>: jne 0x2b88f01 <_ZN15_Jv_ClassReader15handleFieldsEndEv+89> 0x02b88ff3 <_ZN15_Jv_ClassReader15handleFieldsEndEv+331>: mov 0xffffffe4(%ebp),%eax 0x02b88ff6 <_ZN15_Jv_ClassReader15handleFieldsEndEv+334>: mov 0x1c(%eax),%edx 0x02b88ff9 <_ZN15_Jv_ClassReader15handleFieldsEndEv+337>: jmp 0x2b88fa0 <_ZN15_Jv_ClassReader15handleFieldsEndEv+248> 0x02b88ffb <_ZN15_Jv_ClassReader15handleFieldsEndEv+339>: nop End of assembler dump. (gdb) Comparision with source (shortened): /usr/src/gcc/libjava/defineclass.cc:1179 18d: 66 8b 45 da mov 0xffffffda(%ebp),%ax 191: 66 89 04 71 mov %ax,(%ecx,%esi,2) /usr/src/gcc/libjava/defineclass.cc:1182 195: ff 45 e0 incl 0xffffffe0(%ebp) /usr/src/gcc/libjava/defineclass.cc:1181 198: 4e dec %esi /usr/src/gcc/libjava/defineclass.cc:1182 199: 39 75 e0 cmp %esi,0xffffffe0(%ebp) 19c: 0f 8c 42 ff ff ff jl e4 <_ZN15_Jv_ClassReader15handleFieldsEndEv+0x34> 1a2: 8b 4d e4 mov 0xffffffe4(%ebp),%ecx 1a5: 8b 51 1c mov 0x1c(%ecx),%edx /usr/src/gcc/libjava/defineclass.cc:1185 } if ((fields[low].flags & Modifier::STATIC) != 0) 1a8: 8b 45 e0 mov 0xffffffe0(%ebp),%eax 1ab: c1 e0 04 shl $0x4,%eax 1ae: 0f b7 44 38 08 movzwl 0x8(%eax,%edi,1),%eax 1b3: c1 e8 03 shr $0x3,%eax 1b6: 83 e0 01 and $0x1,%eax /usr/src/gcc/libjava/defineclass.cc:1186 low += 1; 1b9: 3c 01 cmp $0x1,%al 1bb: 83 5d e0 ff sbbl $0xffffffff,0xffffffe0(%ebp) /usr/src/gcc/libjava/defineclass.cc:1188 def->static_field_count = low; 1bf: 8b 4d e0 mov 0xffffffe0(%ebp),%ecx 1c2: 66 89 4a 36 mov %cx,0x36(%edx) 1c6: 83 c4 40 add $0x40,%esp 1c9: 5e pop %esi 1ca: 5f pop %edi 1cb: c9 leave 1cc: c3 ret 1cd: 8d 76 00 lea 0x0(%esi),%esi /usr/src/gcc/libjava/defineclass.cc:1167 1d0: 39 75 e0 cmp %esi,0xffffffe0(%ebp) 1d3: 0f 8d 27 ff ff ff jge 100 <_ZN15_Jv_ClassReader15handleFieldsEndEv+0x50> 1d9: 8d 76 00 lea 0x0(%esi),%esi 1dc: 89 f0 mov %esi,%eax 1de: c1 e0 04 shl $0x4,%eax 1e1: f6 44 38 08 08 testb $0x8,0x8(%eax,%edi,1) 1e6: 0f 85 14 ff ff ff jne 100 <_ZN15_Jv_ClassReader15handleFieldsEndEv+0x50> 1ec: 4e dec %esi 1ed: 39 75 e0 cmp %esi,0xffffffe0(%ebp) 1f0: 7c ea jl 1dc <_ZN15_Jv_ClassReader15handleFieldsEndEv+0x12c> /usr/src/gcc/libjava/defineclass.cc:1169 1f2: 39 75 e0 cmp %esi,0xffffffe0(%ebp) 1f5: 0f 85 0e ff ff ff jne 109 <_ZN15_Jv_ClassReader15handleFieldsEndEv+0x59> 1fb: 8b 45 e4 mov 0xffffffe4(%ebp),%eax 1fe: 8b 50 1c mov 0x1c(%eax),%edx 201: eb a5 jmp 1a8 <_ZN15_Jv_ClassReader15handleFieldsEndEv+0xf8> 203: 90 nop 00000204 <_ZN15_Jv_ClassReader18handleMethodsBeginEi>: _ZN15_Jv_ClassReader18handleMethodsBeginEi(): /usr/src/gcc/libjava/defineclass.cc:1195 } A quick look into CVSweb shows me _Jv_ClassReader::handleFieldsEnd () is still the same as in 3.4.4. Does anyone have an idea where this SIGSEGV could come from? Thanks, //mirabile -- > Hi, does anyone sell openbsd stickers by themselves and not packaged > with other products? No, the only way I've seen them sold is for $40 with a free OpenBSD CD. -- Haroon Khalid and Steve Shockley in gmane.os.openbsd.misc