Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-swt-dev] Compiling swt libs on Solaris x86_64

Hi There, 

I'm trying to compile the swt libs on Solaris 10 for AMD64 which is a platform 
not supported by SWT or Eclipse. 
I've managed to modify the various build files to build 64bit Solaris x86_64 
libs but when I try to use the libraries I get a SEGV from my JVM (A sun JVM 
with amd64 support).

The JVM SEGV's when trying to enter: org.eclipse.swt.internal.gtk.OS.memmove()
Initially, I was compiling the whole of eclipse and actually came across this 
problem when I  typed ./eclipse. 
Because I thought eclipse was a bit of a big beast, I created a very small SWT 
application that should just bring up a 
window and say "hello world" when run.  The SWT application has exactly the 
same problem as eclipse did.  

As soon as I launch it:

java -Djava.library.path=/usr/src/swt_test SWTTest

I get a JVM SEGV and a core dump.  I also got a file produced called 
hs_err_pid20338.log.  This file contains many things but most notably:

*********SNIP

Instructions: (pc=0xfffffd7f00402878)
0xfffffd7f00402868:
[error occurred during error reporting, step 100, id 0xb]

Stack: [0xfffffd7fffbff000,0xfffffd7fffe00000),  sp=0xfffffd7fffdfe5b8,  free 
space=2045k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native 
code)
C  0xfffffd7f00402878
j  org.eclipse.swt.internal.gtk.OS.memmove([BJJ)V+0
j  org.eclipse.swt.internal.Converter.wcsToMbcs(Ljava/lang/String;[CZ)[B+73
j  org.eclipse.swt.internal.Converter.wcsToMbcs(Ljava/lang/String;Ljava/lang/String;Z)
[B+23
j  org.eclipse.swt.widgets.Display.<clinit>()V+9
v  ~StubRoutines::call_stub
V  [libjvm.so+0x3eaef8]
V  [libjvm.so+0x3eb178]
V  [libjvm.so+0x3eb43d]
V  [libjvm.so+0x435eaf]
V  [libjvm.so+0x435f59]
V  [libjvm.so+0x3ca260]
V  [libjvm.so+0x3bb565]
V  [libjvm.so+0x411d06]
j  SWTTest.main([Ljava/lang/String;)V+0
v  ~StubRoutines::call_stub
V  [libjvm.so+0x3eaef8]
V  [libjvm.so+0x3eb178]
V  [libjvm.so+0x3eb43d]
V  [libjvm.so+0x4cf9e4]
V  [libjvm.so+0x4d8c84]
C  [java+0x30f2]  main+0x642
C  [java+0x295c]  _PROCEDURE_LINKAGE_TABLE_+0x3d4

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  org.eclipse.swt.internal.gtk.OS.memmove([BJJ)V+0
j  org.eclipse.swt.internal.Converter.wcsToMbcs(Ljava/lang/String;[CZ)[B+73
j  org.eclipse.swt.internal.Converter.wcsToMbcs(Ljava/lang/String;Ljava/lang/String;Z)
[B+23
j  org.eclipse.swt.widgets.Display.<clinit>()V+9
v  ~StubRoutines::call_stub
j  SWTTest.main([Ljava/lang/String;)V+0
v  ~StubRoutines::call_stub

********************* /SNIP

I also did a dbx on the core file to get the native stack trace, here it is:

************ SNIP

(dbx) where
=>[1] _lwp_kill(0x1, 0x6, 0xffffffff90f4e040, 0xfffffd7fff33b9ae, 
0xfffffd7fffdfd220, 0x6), at 0xfffffd7fff33b0ba
  [2] _thr_kill(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff3360e9
  [3] raise(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff2e4dc9
  [4] abort(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff2c7d90
  [5] os::abort(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffeff41f3
  [6] VMError::report_and_die(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 
0xfffffd7fff053a6a
  [7] crash_handler(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff053fcf
  [8] __sighndlr(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff337fe6
  [9] call_user_handler(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff32d472
  [10] sigacthandler(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff32d658
  ---- called from signal handler with signal 11 (SIGSEGV) ------
  [11] os::print_hex_dump(0xfffffd7fff1d6b70, 0xfffffd7fffdfd130, 0x16, 
0xfffffd7fff33b40a, 0xfffffd7fff0da663, 0xf), at 0xfffffd7ffeff3205
  [12] os::print_context(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffeff6b59
  [13] VMError::report(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff052960
  [14] VMError::report_and_die(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 
0xfffffd7fff0538ce
  [15] JVM_handle_solaris_signal(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 
0xfffffd7ffebe7941
  [16] signalHandler(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffebe7ac0
  [17] __sighndlr(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff337fe6
  [18] call_user_handler(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff32d472
  [19] sigacthandler(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff32d658
  ---- called from signal handler with signal 11 (SIGSEGV) ------
  [20] 0xfffffd7f00402878(0xfffffd7fa7ee0fd8, 0x6e4950, 0x10, 0x3, 
0xfffffd7fff1d03b0, 0xfffffd7fff1caa30), at 0xfffffd7f00402877
  [21] Java_org_eclipse_swt_internal_gtk_OS_memmove___3BJJ(0x0, 0x0, 0x0, 0x0, 
0x0, 0x0), at 0xfffffd7f7fa9c448
  [22] 0xfffffd7fba80c742(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fba80c741
  [23] 0xfffffd7fba802efe(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fba802efd
  [24] 0xfffffd7fba802de1(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fba802de0
  [25] 0xfffffd7fba802de1(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fba802de0
  [26] 0xfffffd7fba80032d(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fba80032c
  [27] JavaCalls::call_helper(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 
0xfffffd7ffebeaef8
  [28] os::os_exception_wrapper(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 
0xfffffd7ffebeb178
  [29] JavaCalls::call(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffebeb43d
  [30] instanceKlass::call_class_initializer_impl(0x0, 0x0, 0x0, 0x0, 0x0, 
0x0), at 0xfffffd7ffec35eaf
  [31] instanceKlass::call_class_initializer(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 
0xfffffd7ffec35f59
  [32] instanceKlass::initialize_impl(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 
0xfffffd7ffebca260
  [33] instanceKlass::initialize(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 
0xfffffd7ffebbb565
  [34] InterpreterRuntime::_new(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 
0xfffffd7ffec11d06
  [35] 0xfffffd7fba8175c7(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fba8175c6
  [36] 0xfffffd7fba80032d(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fba80032c
  [37] JavaCalls::call_helper(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 
0xfffffd7ffebeaef8
  [38] os::os_exception_wrapper(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 
0xfffffd7ffebeb178
  [39] JavaCalls::call(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffebeb43d
  [40] jni_invoke_static(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffeccf9e4
  [41] jni_CallStaticVoidMethod(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 
0xfffffd7ffecd8c84
  [42] main(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x4030f2
  [43] 0x40295c(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x40295b

************** /SNIP

Does anyone have any idea what could be going wrong here?  I'm not exactly a 
serious C programmer and am mildly befuddled!

Kind Regards,

Ben Staniford


-- 
Ben Staniford
http://www.staniford.net


Back to the top