https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65341
Bug ID: 65341 Summary: [5 Regression] glibc build failure on ppc64le: setcontext.S:367: Error: junk at end of line: `1,0' Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org CC: dje at gcc dot gnu.org, meissner at gcc dot gnu.org glibc doesn't build anymore on ppc64le: % gcc ../sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S -c -I../include -I/home/trippels/glibc_build/stdlib -I/home/trippels/glibc_build -I../sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu -I../sysdeps/unix/sysv/linux/powerpc/powerpc64 -I../sysdeps/unix/sysv/linux/wordsize-64 -I../sysdeps/unix/sysv/linux/powerpc -I../sysdeps/powerpc/nptl -I../sysdeps/unix/sysv/linux/include -I../sysdeps/unix/sysv/linux -I../sysdeps/nptl -I../sysdeps/pthread -I../sysdeps/gnu -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/powerpc -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/powerpc/powerpc64/fpu -I../sysdeps/powerpc/powerpc64 -I../sysdeps/wordsize-64 -I../sysdeps/powerpc/fpu -I../sysdeps/powerpc -I../sysdeps/ieee754/ldbl-128ibm -I../sysdeps/ieee754/ldbl-opt -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic -I.. -I../libio -I. -nostdinc -isystem /home/trippels/gcc_test/usr/local/bin/../lib/gcc/powerpc64le-unknown-linux-gnu/5.0.0/include -isystem /home/trippels/gcc_test/usr/local/bin/../lib/gcc/powerpc64le-unknown-linux-gnu/5.0.0/include-fixed -isystem /usr/include -D_LIBC_REENTRANT -include /home/trippels/glibc_build/libc-modules.h -DMODULE_NAME=libc -include ../include/libc-symbols.h -DASSEMBLER -g -Werror=undef -Wa,--noexecstack -o /home/trippels/glibc_build/stdlib/setcontext.o -MD -MP -MF /home/trippels/glibc_build/stdlib/setcontext.o.dt -MT /home/trippels/glibc_build/stdlib/setcontext.o ../sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: Assembler messages: ../sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S:367: Error: junk at end of line: `1,0' This happens because the _ARCH_PWR6 macro is now defined with gcc-5: trippels@gcc2-power8 gcc % gcc -dM -E - < /dev/null | grep _ARCH_PWR6 #define _ARCH_PWR6 1 and sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S contains: 365 # ifdef _ARCH_PWR6 366 /* Use the extended four-operand version of the mtfsf insn. */ 367 mtfsf 0xff,fp0,1,0 368 # else 369 .machine push 370 .machine "power6" 371 /* Availability of DFP indicates a 64-bit FPSCR. */ 372 andi. r6,r5,PPC_FEATURE_HAS_DFP 373 beq 7f 374 /* Use the extended four-operand version of the mtfsf insn. */ 375 mtfsf 0xff,fp0,1,0 376 b 8f 377 /* Continue to operate on the FPSCR as if it were 32-bits. */ 378 7: 379 mtfsf 0xff,fp0 380 8: 381 .machine pop 382 # endif /* _ARCH_PWR6 */ trippels@gcc2-power8 stdlib % diff -u setcontext.s setcontext.s_bad --- setcontext.s 2015-03-07 08:20:19.902444301 +0000 +++ setcontext.s_bad 2015-03-07 07:57:46.171055684 +0000 @@ -285,22 +285,8 @@ - - - .machine push - .machine "power6" - - andi. 6,5,0x00000400 - beq 7f - mtfsf 0xff,0,1,0 - b 8f - -7: - mtfsf 0xff,0 -8: - .machine pop - +# 383 "../sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S" lfd 29,(616 +(29*8))(31) lfd 28,(616 +(28*8))(31) lfd 27,(616 +(27*8))(31)