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)

Reply via email to