Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'
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'
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'
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'
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'
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'
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'
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'
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'
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'
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