From: Subrata Modak <[email protected]> Subject: Re: [LTP] fork05 test case fails due to optimization Date: Mon, 13 Apr 2009 19:37:23 +0530
> On Sun, 2009-04-12 at 13:37 +0800, CAI Qian wrote: >> From: CAI Qian <[email protected]> >> Subject: Re: [LTP] fork05 test case fails due to optimization >> Date: Sat, 11 Apr 2009 04:02:41 -0700 (PDT) >> >> > >> > >> > >> > --- On Tue, 4/7/09, rohit verma <[email protected]> wrote: >> > >> >> From: rohit verma <[email protected]> >> >> Subject: [LTP] fork05 test case fails due to optimization >> >> To: [email protected] >> >> Date: Tuesday, April 7, 2009, 5:57 PM >> >> There is a change in compilation >> >> mechanism in LTP from Feb 09 >> >> distribution.The previous Make mechanism did not provide >> >> any >> >> optimization while compiling the fork05 test program and >> >> the test used >> >> to Pass . However the newer Makefile uses optimization >> >> level 2 while >> >> compiling, if this file is executed the test case fails .. >> >> >> > >> > This is definitely a case. I can reproduce it on Fedora 10, so I have >> > created a bug of it, and copied the author Ulrich Drepper, >> > >> > https://bugzilla.redhat.com/show_bug.cgi?id=495296 >> > >> >> Ulrich Drepper has pointed out in the above bug report that this failure >> was due to incorrect test code. >> >> The test code isn't correct. The compiler cannot look inside the asm >> statements in main() and see that they are really necessary. Based on >> the information given the compiler can drop some of them. >> >> Change all asms in main from >> >> asm(...) >> >> to >> >> asm volatile(...) >> >> and the code works fine. >> >> With the following patch, it works fine with and without compilation >> optimization. >> >> Signed-off-by: CAI Qian <[email protected]> > > Thanks for the fix. But doesn´t apply for me :-) > > patching file testcases/kernel/syscalls/fork/fork05.c > Hunk #1 FAILED at 178. > 1 out of 1 hunk FAILED -- saving rejects to file > testcases/kernel/syscalls/fork/fork05.c.rej > > Regards-- > Subrata > Please try to new patch. --- testcases/kernel/syscalls/fork/fork05.c.orig 2009-04-12 13:24:48.000000000 +0800 +++ testcases/kernel/syscalls/fork/fork05.c 2009-04-12 13:26:28.000000000 +0800 @@ -178,23 +178,23 @@ modify_ldt (1, &ldt0, sizeof (ldt0)); - asm ("movw %w0, %%fs" : : "q" (7)); + asm volatile ("movw %w0, %%fs" : : "q" (7)); - asm ("movl %%fs:0, %0" : "=r" (lo)); + asm volatile ("movl %%fs:0, %0" : "=r" (lo)); tst_resm(TINFO,"a = %d", lo); - asm ("pushl %%fs; popl %0" : "=q" (lo)); + asm volatile ("pushl %%fs; popl %0" : "=q" (lo)); tst_resm(TINFO,"%%fs = %#06hx", lo); - asm ("movl %0, %%fs:0" : : "r" (99)); + asm volatile ("movl %0, %%fs:0" : : "r" (99)); pid = fork (); if (pid == 0) { - asm ("pushl %%fs; popl %0" : "=q" (lo)); + asm volatile ("pushl %%fs; popl %0" : "=q" (lo)); tst_resm(TINFO,"%%fs = %#06hx", lo); - asm ("movl %%fs:0, %0" : "=r" (lo)); + asm volatile ("movl %%fs:0, %0" : "=r" (lo)); tst_resm(TINFO,"a = %d", lo); if (lo != 99) >> >> --- ltp/testcases/kernel/syscalls/fork/fork05.c.orig 2009-04-12 >> 13:24:48.000000000 +0800 >> +++ ltp/testcases/kernel/syscalls/fork/fork05.c 2009-04-12 >> 13:26:28.000000000 +0800 >> @@ -178,23 +178,23 @@ >> >> modify_ldt (1, &ldt0, sizeof (ldt0)); >> >> - asm ("movw %w0, %%fs" : : "q" (7)); >> + asm volatile ("movw %w0, %%fs" : : "q" (7)); >> >> - asm ("movl %%fs:0, %0" : "=r" (lo)); >> + asm volatile ("movl %%fs:0, %0" : "=r" (lo)); >> tst_resm(TINFO,"a = %d", lo); >> >> - asm ("pushl %%fs; popl %0" : "=q" (lo)); >> + asm volatile ("pushl %%fs; popl %0" : "=q" (lo)); >> tst_resm(TINFO,"%%fs = %#06hx", lo); >> >> - asm ("movl %0, %%fs:0" : : "r" (99)); >> + asm volatile ("movl %0, %%fs:0" : : "r" (99)); >> >> pid = fork (); >> >> if (pid == 0) { >> - asm ("pushl %%fs; popl %0" : "=q" (lo)); >> + asm volatile ("pushl %%fs; popl %0" : "=q" (lo)); >> tst_resm(TINFO,"%%fs = %#06hx", lo); >> >> - asm ("movl %%fs:0, %0" : "=r" (lo)); >> + asm volatile ("movl %%fs:0, %0" : "=r" (lo)); >> tst_resm(TINFO,"a = %d", lo); >> >> if (lo != 99) >> >> >> > CAI Qian >> > >> >> With Older Make mechanism >> >> cc -Wall -I../../include -g -Wall >> >> -I../../../../include -Wall >> >> fork05.c -L../../../../lib -lltp -o fork05 >> >> >> >> With Newer Make mechanism >> >> gcc -g -O2 -I../../include -g -Wall -I../../../../include >> >> -Wall >> >> fork05.c -L../../../../lib -lltp -o fork05 >> >> >> >> Note: If we compile the program in the same >> >> directory(/testcases/kernel/syscalls/fork) ,the >> >> optimization flag do >> >> not come into picture and the test case passes. The >> >> optimization is >> >> set by some top level Makefile >> >> >> >> Regards, >> >> Rohit >> >> >> >> ------------------------------------------------------------------------------ >> >> This SF.net email is sponsored by: >> >> High Quality Requirements in a Collaborative Environment. >> >> Download a free trial of Rational Requirements Composer >> >> Now! >> >> http://p.sf.net/sfu/www-ibm-com >> >> _______________________________________________ >> >> Ltp-list mailing list >> >> [email protected] >> >> https://lists.sourceforge.net/lists/listinfo/ltp-list >> >> >> > >> > ------------------------------------------------------------------------------ >> > This SF.net email is sponsored by: >> > High Quality Requirements in a Collaborative Environment. >> > Download a free trial of Rational Requirements Composer Now! >> > http://p.sf.net/sfu/www-ibm-com >> > _______________________________________________ >> > Ltp-list mailing list >> > [email protected] >> > https://lists.sourceforge.net/lists/listinfo/ltp-list >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by: >> High Quality Requirements in a Collaborative Environment. >> Download a free trial of Rational Requirements Composer Now! >> http://p.sf.net/sfu/www-ibm-com >> _______________________________________________ >> Ltp-list mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/ltp-list > ------------------------------------------------------------------------------ This SF.net email is sponsored by: High Quality Requirements in a Collaborative Environment. Download a free trial of Rational Requirements Composer Now! http://p.sf.net/sfu/www-ibm-com _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
