This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'
- From: Andrew Haley <aph at redhat dot com>
- To: Chen Gang <gang dot chen dot 5i5j at gmail dot com>, Mike Stump <mikestump at comcast dot net>
- Cc: Michael Eager <eager at eagerm dot com>, Jeff Law <law at redhat dot com>, davem at redhat dot com, gcc-patches List <gcc-patches at gcc dot gnu dot org>, java-patches at gcc dot gnu dot org
- Date: Mon, 06 Oct 2014 15:28:34 +0100
- Subject: Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'
- Authentication-results: sourceware.org; auth=none
- References: <bekwguasixaphab5pghrhbxp dot 1411603920412 at email dot android dot com> <5430B7E8 dot 1060001 at gmail dot com> <5430BBBE dot 8050905 at gmail dot com> <543215AE dot 7080206 at gmail dot com> <543254DB dot 9020600 at redhat dot com> <54329EEC dot 8040609 at gmail dot com> <54329F17 dot 7050107 at redhat dot com> <5432A6C5 dot 8040205 at gmail dot com>
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.