https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104090
Bug ID: 104090
Summary: [10/11/12 Regression] powerpc: asm machine directive
wrong for FSL processors
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: [email protected]
Target Milestone: ---
The latest GCC 10/11/12 branches do not build the powerpc-rtems target due to a
build error in the -mcpu=8540 multilib:
/tmp/sh/b-gcc-powerpc-rtems6/./gcc/xgcc -B/tmp/sh/b-gcc-powerpc-rtems6/./gcc/
-nostdinc -B/tmp/sh/b-gcc-powerpc-rtems6/powerpc-rtems6/m8540/nof/newlib/
-isystem
/tmp/sh/b-gcc-powerpc-rtems6/powerpc-rtems6/m8540/nof/newlib/targ-include
-isystem /home/EB/sebastian_h/src/gcc/newlib/libc/include
-B/tmp/sh/i-powerpc-rtems6/powerpc-rtems6/bin/
-B/tmp/sh/i-powerpc-rtems6/powerpc-rtems6/lib/ -isystem
/tmp/sh/i-powerpc-rtems6/powerpc-rtems6/include -isystem
/tmp/sh/i-powerpc-rtems6/powerpc-rtems6/sys-include -mcpu=8540 -msoft-float -g
-O2 -O2 -I/home/EB/sebastian_h/src/gcc/libgcc/../newlib/libc/sys/rtems/include
-g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing
-Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition -isystem ./include -g -DIN_LIBGCC2 -fbuilding-libgcc
-fno-stack-protector -Dinhibit_libc -I. -I. -I../../../.././gcc
-I/home/EB/sebastian_h/src/gcc/libgcc -I/home/EB/sebastian_h/src/gcc/libgcc/.
-I/home/EB/sebastian_h/src/gcc/libgcc/../gcc
-I/home/EB/sebastian_h/src/gcc/libgcc/../include -DHAVE_CC_TLS -o _negvdi2.o
-MT _negvdi2.o -MD -MP -MF _negvdi2.dep -DL_negvdi2 -c
/home/EB/sebastian_h/src/gcc/libgcc/libgcc2.c -fvisibility=hidden
-DHIDE_EXPORTS
/tmp/ccZJ18fW.s: Assembler messages:
/tmp/ccZJ18fW.s:24: Error: unrecognized opcode: `isel'
make: *** [Makefile:501: _negvdi2.o] Error 1
The assembler is called like this:
/tmp/sh/b-gcc-powerpc-rtems6/./gcc/as -I
/home/EB/sebastian_h/src/gcc/libgcc/../newlib/libc/sys/rtems/include -I . -I .
-I ../../../.././gcc -I /home/EB/sebastian_h/src/gcc/libgcc -I
/home/EB/sebastian_h/src/gcc/libgcc/. -I
/home/EB/sebastian_h/src/gcc/libgcc/../gcc -I
/home/EB/sebastian_h/src/gcc/libgcc/../include -a32 -me500 -mbig -o _negvdi2.o
_negvdi2.s
Using -me500 seems to be all right, however, the file contains a machine
directive:
.file "libgcc2.c"
.machine ppc
.section ".text"
If I remove the ".machine ppc" by hand, the file can be assembled with the
above command line.
The affect of the patch for PR100108 is:
diff -u _negvdi2.s.before _negvdi2.s.after
--- _negvdi2.s.before 2022-01-11 09:07:43.313828636 +0100
+++ _negvdi2.s.after 2022-01-11 08:54:08.424946502 +0100
@@ -1,5 +1,5 @@
.file "libgcc2.c"
- .machine power9
+ .machine ppc
.section ".text"
.Ltext0:
.align 2