selftests/powerpc: fix build error in powerpc ptrace selftests.
PATCH 1/1 selftests/powerpc: fix build error in powerpc ptrace selftests.
From: Simon Guo <[email protected]>
GCC 7 will take "r2" in clobber list as an error will it will get following build errors for powerpc ptrace selftests even with -fno-pic option:
ptrace-tm-vsx.c: In function ‘tm_vsx’:
ptrace-tm-vsx.c:42:2: error: PIC register clobbered by ‘r2’ in ‘asm’
asm __volatile__(
^~~
make[1]: *** [ptrace-tm-vsx] Error 1
ptrace-tm-spd-vsx.c: In function ‘tm_spd_vsx’:
ptrace-tm-spd-vsx.c:55:2: error: PIC register clobbered by ‘r2’ in ‘asm’
asm __volatile__(
^~~
make[1]: *** [ptrace-tm-spd-vsx] Error 1
ptrace-tm-spr.c: In function ‘tm_spr’:
ptrace-tm-spr.c:46:2: error: PIC register clobbered by ‘r2’ in ‘asm’
asm __volatile__(
^~~This patch fix the build error by removing "r2" out of clobber list.
--- tools/testing/selftests/powerpc/ptrace/Makefile | 2 +- tools/testing/selftests/powerpc/ptrace/ptrace-tm-spd-vsx.c | 4 ++-- tools/testing/selftests/powerpc/ptrace/ptrace-tm-spr.c | 3 +-- tools/testing/selftests/powerpc/ptrace/ptrace-tm-vsx.c | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-)
tools/testing/selftests/powerpc/ptrace/Makefile +1 -1
@@ -6,7 +6,7 @@ include ../../lib.mk all: $(TEST_PROGS) -CFLAGS += -m64 -I../../../../../usr/include -I../tm -mhtm +CFLAGS += -m64 -I../../../../../usr/include -I../tm -mhtm -fno-pic $(TEST_PROGS): ../harness.c ../utils.c ../lib/reg.S ptrace.h
tools/testing/selftests/powerpc/ptrace/ptrace-tm-spd-vsx.c +2 -2
@@ -79,8 +79,8 @@ void tm_spd_vsx(void) : [res] "=r" (result), [texasr] "=r" (texasr) : [fp_load] "r" (fp_load), [fp_load_ckpt] "r" (fp_load_ckpt), [sprn_texasr] "i" (SPRN_TEXASR) - : "memory", "r0", "r1", "r2", "r3", "r4", - "r8", "r9", "r10", "r11" + : "memory", "r0", "r1", "r3", "r4", + "r7", "r8", "r9", "r10", "r11" );if (result) {
tools/testing/selftests/powerpc/ptrace/ptrace-tm-spr.c +1 -2
@@ -76,8 +76,7 @@ void tm_spr(void) : [tfhar] "=r" (tfhar), [res] "=r" (result), [texasr] "=r" (texasr), [cptr1] "=r" (cptr1) : [sprn_texasr] "i" (SPRN_TEXASR) - : "memory", "r0", "r1", "r2", "r3", "r4", - "r8", "r9", "r10", "r11", "r31" + : "memory", "r0", "r8", "r31" );/* There are 2 32bit instructions before tbegin. */
tools/testing/selftests/powerpc/ptrace/ptrace-tm-vsx.c +1 -1
@@ -67,7 +67,7 @@ void tm_vsx(void) : [res] "=r" (result), [texasr] "=r" (texasr) : [fp_load] "r" (fp_load), [fp_load_ckpt] "r" (fp_load_ckpt), [sprn_texasr] "i" (SPRN_TEXASR), [cptr1] "r" (&cptr[1]) - : "memory", "r0", "r1", "r2", "r3", "r4", + : "memory", "r0", "r1", "r3", "r4", "r7", "r8", "r9", "r10", "r11" );
Signature · 1 line
1.8.3.1
Michael Ellerman
reviewerQuoted 3 lines · [email protected] writes:
From: Simon Guo <[email protected]>
GCC 7 will take "r2" in clobber list as an error will it will get followi=
ng
Quoted 3 lines
build errors for powerpc ptrace selftests even with -fno-pic option:
ptrace-tm-vsx.c: In function =E2=80=98tm_vsx=E2=80=99:
ptrace-tm-vsx.c:42:2: error: PIC register clobbered by =E2=80=98r2=E2=
=80=99 in =E2=80=98asm=E2=80=99
Quoted 5 lines
asm __volatile__( ^~~make[1]: *** [ptrace-tm-vsx] Error 1
ptrace-tm-spd-vsx.c: In function =E2=80=98tm_spd_vsx=E2=80=99:
ptrace-tm-spd-vsx.c:55:2: error: PIC register clobbered by =E2=80=98r2=
=E2=80=99 in =E2=80=98asm=E2=80=99
Quoted 5 lines
asm __volatile__( ^~~make[1]: *** [ptrace-tm-spd-vsx] Error 1
ptrace-tm-spr.c: In function =E2=80=98tm_spr=E2=80=99:
ptrace-tm-spr.c:46:2: error: PIC register clobbered by =E2=80=98r2=E2=
=80=99 in =E2=80=98asm=E2=80=99
Quoted 4 lines
asm __volatile__( ^~~This patch fix the build error by removing "r2" out of clobber list.
But do any of the blocks clobber r2? If so then it should be in the clobber list.
cheers
Hi Michael,
Quoted 21 lines · Michael Ellerman
Quoted 19 lines · [email protected] writes:
From: Simon Guo <[email protected]>
GCC 7 will take "r2" in clobber list as an error will it will get following build errors for powerpc ptrace selftests even with -fno-pic option:
ptrace-tm-vsx.c: In function ‘tm_vsx’:
ptrace-tm-vsx.c:42:2: error: PIC register clobbered by ‘r2’ in ‘asm’asm __volatile__( ^~~ make[1]: *** [ptrace-tm-vsx] Error 1 ptrace-tm-spd-vsx.c: In function ‘tm_spd_vsx’: ptrace-tm-spd-vsx.c:55:2: error: PIC register clobbered by ‘r2’ in ‘asm’ asm __volatile__( ^~~ make[1]: *** [ptrace-tm-spd-vsx] Error 1 ptrace-tm-spr.c: In function ‘tm_spr’: ptrace-tm-spr.c:46:2: error: PIC register clobbered by ‘r2’ in ‘asm’ asm __volatile__( ^~~
Quoted 4 lines
Quoted 1 line
This patch fix the build error by removing "r2" out of clobber list.
But do any of the blocks clobber r2? If so then it should be in the clobber list.
I see none of them clobbers r2, and neither does those assembly functions which those blocks calls, like "loadvsx".
For the change on tools/testing/selftests/powerpc/ptrace/Makefile, it can be ignored since I noticed recent commit a3c01050584da3 "selftests/powerpc:
Force ptrace tests to build -fno-pie". Please let me know if you want a new v2 to remove that change on ptrace/Makefile.
Thanks,
- Simon
Michael Ellerman
AppliedQuoted 19 lines · On Fri, 2017-09-01 at 02:17:14 UTC, [email protected] wrote:
From: Simon Guo <[email protected]>
GCC 7 will take "r2" in clobber list as an error will it will get following build errors for powerpc ptrace selftests even with -fno-pic option:
ptrace-tm-vsx.c: In function ‘tm_vsx’:
ptrace-tm-vsx.c:42:2: error: PIC register clobbered by ‘r2’ in ‘asm’asm __volatile__( ^~~ make[1]: *** [ptrace-tm-vsx] Error 1 ptrace-tm-spd-vsx.c: In function ‘tm_spd_vsx’: ptrace-tm-spd-vsx.c:55:2: error: PIC register clobbered by ‘r2’ in ‘asm’ asm __volatile__( ^~~ make[1]: *** [ptrace-tm-spd-vsx] Error 1 ptrace-tm-spr.c: In function ‘tm_spr’: ptrace-tm-spr.c:46:2: error: PIC register clobbered by ‘r2’ in ‘asm’ asm __volatile__( ^~~
Quoted 5 lines
This patch fix the build error by removing "r2" out of clobber list.
Reported-by Seth Forshee <[email protected]>Signed-off-by Simon Guo <[email protected]>Tested-by Seth Forshee <[email protected]>
Applied to powerpc next, thanks.
https://git.kernel.org/powerpc/c/f36dbfe1a504b85c7b3bf89fdd9999
cheers