On 10/06/2014 03:27 PM, Chen Gang wrote: > On 10/6/14 21:54, Andrew Haley wrote: >> On 10/06/2014 02:53 PM, Chen Gang wrote: >>> On 10/6/14 16:37, Andrew Haley wrote: >>>> On 06/10/14 05:08, Chen Gang wrote: >>>>> After try normal configure, get almost the same result, I guess, our >>>>> testsuite under Darwin x86_64 is OK. >>>>> >>>>> If no any additional reply within a week, I shall continue to try to >>>>> analyze the libjava Throw_2 issue. >>>> >>>> Throw_2 is a test specially contrived to detect segfaults that are >>>> not being correctly detected and turned into NullPointerException()s. >>>> A failure indicates that the segfault signal handler is broken. >>> >>> OK, thank, at present, it passes compiling (can generate 'Throw_2.exe'), >>> and after run it without any parameters, "1" is printed, but "2" is not >>> printed. >>> >>> Under Fedora 20 x86_64, the same gcc code, it is OK ("2" can be printed), >>> but under Darwin x86_64, it is "Abort trap: 6" instead of. The related >>> code: "try{Double.parseDouble(str());}catch", and "str(){return null;}". >>> >>> And I shall continue to try to analyze it (within this month), and >>> welcome any additional ideas, suggestions, and completion for it, >> >> Not every platform supports unwinding through signal handlers. In x86 >> Linux there is some very clever code which interacts with the kernel to >> allow this. > > Excuse me, I am not quite familiar with Java, I guess what you said is: > > - The related feature need OS kernel support, if OS kernel does not > support, it may report "Abort trap: 6" or others. > > - And OS kernel has feature to support "1" printed does not mean it > also has feature to support "2" printed. > > - And I need try to make sure that my current Darwin kernel whether > supports it or not. > > If what I guess is incorrect, please let me know, thanks.
That sounds approximately right, but it's changed a lot since I last looked. It may be that the magic is in glibc rather than the kernel. > For me, whether Darwin kernel supports or not, we have to improve > current implementation (may be testsuite configure or Makefile) to > avoid testsuite breaking. The testsuite isn't breaking: it's telling you something useful. Andrew.