Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Chen Gang
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, 


Thanks
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Andrew Haley
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.

Andrew.



Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Chen Gang
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.

For me, whether Darwin kernel supports or not, we have to improve
current implementation (may be testsuite configure or Makefile) to
avoid testsuite breaking.


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Andrew Haley
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.




Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Chen Gang
On 10/6/14 22:28, Andrew Haley wrote:
 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.


OK, thanks, I shall also notice about glibc when I try to analyze it,
e.g. need try to build and install upstream glibc instead of the Darwin
glibc (I am not quite sure whether I can do that, I guess I can).

 
 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.
 

Sorry it is breaked, at present, I temporarily skipped it and then can
let make check finish, the related temporarily skip diff may like
below (in real action, I modify the related Makefile, directly):

diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in
index 28fc102..d1e77de 100644
--- a/libjava/testsuite/Makefile.in
+++ b/libjava/testsuite/Makefile.in
@@ -390,7 +390,7 @@ check-DEJAGNU: site.exp
if $(SHELL) -c $$runtest --version  /dev/null 21; then \
  exit_status=0; l='$(DEJATOOL)'; for tool in $$l; do \
if $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) 
$(RUNTESTFLAGS); \
-   then :; else exit_status=1; fi; \
+   then :; else exit_status=0; fi; \
  done; \
else echo WARNING: could not find \`runtest' 12; :;\
fi; \
ba

Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Andrew Haley
On 10/06/2014 04:00 PM, Chen Gang wrote:
 On 10/6/14 22:28, Andrew Haley wrote:
 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.

 
 OK, thanks, I shall also notice about glibc when I try to analyze it,
 e.g. need try to build and install upstream glibc instead of the Darwin
 glibc (I am not quite sure whether I can do that, I guess I can).
 
  
 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.

 
 Sorry it is breaked, at present, I temporarily skipped it and then can
 let make check finish, the related temporarily skip diff may like
 below (in real action, I modify the related Makefile, directly):

You're missing what I'm saying.  The testuite is not broken.

You should be running make -k check.

Andrew.



Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Chen Gang
On 10/6/14 22:59, Andrew Haley wrote:
 On 10/06/2014 04:00 PM, Chen Gang wrote:
 On 10/6/14 22:28, Andrew Haley wrote:
[...]
 The testsuite isn't breaking: it's telling you something useful.


 Sorry it is breaked, at present, I temporarily skipped it and then can
 let make check finish, the related temporarily skip diff may like
 below (in real action, I modify the related Makefile, directly):
 
 You're missing what I'm saying.  The testuite is not broken.
 
 You should be running make -k check.
 

For me, make -k check is suitable for one sub-system (e.g. for cross
building, and mainly focus on gcc), but not for global check (full
non-cross building check):

 - make check is the standard check for global, so when find new
   issues (include environment construction), need stop in time.

 - If one sub-system wants to skip the known issue, it can mark it as
   'unexpected', or just simply return 0 to Makefile to let checking
   continue (I guess, most of other sub-system do in this way).

 - Or for other members (especially for newbies, e.g. me), he/she can
   not sure whether the environment construction for testsuite is OK or
   not:

 e.g. For our case, after build upstream glibc and let testsuite use
 it instead of Darwin glibc, all things may go OK. If really it is,
 it is environments construction (not testsuite or code) issue.


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Mike Stump
On Oct 6, 2014, at 8:36 AM, Chen Gang gang.chen.5...@gmail.com wrote:
 For me, make -k check is suitable for one sub-system (e.g. for cross
 building, and mainly focus on gcc), but not for global check (full
 non-cross building check):

In our world, there is no sub-system, so, talk of such is outside the scope of 
gcc.

Let me repeat what he said differently.

You have two choices, fixing the port so that there are no unexpected failures 
or running check with -k.

I’d like to get to the point where all primary/secondary platforms can use make 
check directly, we’re not there yet.

The idea is that the single return value tells if if the suite passed or not.  
This is an absolute measure, that, when achieved means one never has to compare 
previous/present results, just know that the suite passed.  Sometimes simple is 
better.

 - make check is the standard check for global,

No sub-system, no global.

Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Chen Gang
On 10/7/14 1:29, Mike Stump wrote:
 On Oct 6, 2014, at 8:36 AM, Chen Gang gang.chen.5...@gmail.com wrote:
 For me, make -k check is suitable for one sub-system (e.g. for cross
 building, and mainly focus on gcc), but not for global check (full
 non-cross building check):
 
 In our world, there is no sub-system, so, talk of such is outside the scope 
 of gcc.
 
 Let me repeat what he said differently.
 
 You have two choices, fixing the port so that there are no unexpected 
 failures or running check with -k.
 
 I’d like to get to the point where all primary/secondary platforms can use 
 make check directly, we’re not there yet.
 
 The idea is that the single return value tells if if the suite passed or not. 
  This is an absolute measure, that, when achieved means one never has to 
 compare previous/present results, just know that the suite passed.  Sometimes 
 simple is better.
 
 - make check is the standard check for global,
 
 No sub-system, no global.
 

Theoretically, in each system (include gcc), always can be separated
into several 'sub-systems', and then 'global' means the system itself.

In our case, we say let 'global' pass checking means let gcc, gfortran,
g++, libjava ... all pass checking. But for mainly focus on constructing
environments, I will try to use upstream glibc instead of Darwin glibc:

 - If fix Throw_2, we know it is environments construction issue.

 - Else, I shall skip it (since make -k check should be OK).

And after finish testsuite under Darwin, within this month, I shall try
to find and send a patch for gcc, and pass testsuite under Darwin (it
seems it is not quite difficult to me).


Thanks
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Chen Gang
On 10/7/14 7:18, Chen Gang wrote:
 On 10/7/14 1:29, Mike Stump wrote:
 On Oct 6, 2014, at 8:36 AM, Chen Gang gang.chen.5...@gmail.com wrote:
 For me, make -k check is suitable for one sub-system (e.g. for cross
 building, and mainly focus on gcc), but not for global check (full
 non-cross building check):

 In our world, there is no sub-system, so, talk of such is outside the scope 
 of gcc.

 Let me repeat what he said differently.

 You have two choices, fixing the port so that there are no unexpected 
 failures or running check with -k.

 I’d like to get to the point where all primary/secondary platforms can use 
 make check directly, we’re not there yet.

 The idea is that the single return value tells if if the suite passed or 
 not.  This is an absolute measure, that, when achieved means one never has 
 to compare previous/present results, just know that the suite passed.  
 Sometimes simple is better.

 - make check is the standard check for global,

 No sub-system, no global.

 
 Theoretically, in each system (include gcc), always can be separated
 into several 'sub-systems', and then 'global' means the system itself.
 
 In our case, we say let 'global' pass checking means let gcc, gfortran,
 g++, libjava ... all pass checking. But for mainly focus on constructing
 environments, I will try to use upstream glibc instead of Darwin glibc:
 
  - If fix Throw_2, we know it is environments construction issue.
 
  - Else, I shall skip it (since make -k check should be OK).
 
 And after finish testsuite under Darwin, within this month, I shall try
 to find and send a patch for gcc, and pass testsuite under Darwin (it
 seems it is not quite difficult to me).
 
 

It is really unlucky, The upstream glibc does not support Darwin! And
sorry, send patches to glibc is really out of my current border, so I
have to give up. :-(

  bash-3.2# ../glibc/configure --with-prefix=/release/Darwin/ 
--with-sysroot=/release/Darwin
  checking build system type... x86_64-apple-darwin13.4.0
  checking host system type... x86_64-apple-darwin13.4.0
  checking for gcc... gcc
  checking for suffix of object files... o
  checking whether we are using the GNU C compiler... yes
  checking whether gcc accepts -g... yes
  checking for g++... g++
  checking whether we are using the GNU C++ compiler... yes
  checking whether g++ accepts -g... yes
  checking for readelf... no
  checking for sysdeps preconfigure fragments... aarch64 alpha arm hppa i386 
m68k microblaze mips powerpc s390 sh sparc tile x86_64 checking whether gcc 
compiles in -mx32 mode by default... no
  
  configure: running configure fragment for add-on libidn
  *** The GNU C library is currently not available for this platform.
  *** So far nobody cared to port it and if there is no volunteer it
  *** might never happen.  So, if you have interest to see glibc on
  *** this platform visit
  ***   http://www.gnu.org/software/libc/porting.html
  *** and join the group of porters


And I guess, this thread can be ended, and next, I shall try to find a
patch for gcc, and let it pass testsuite under Darwin.


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed