This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, So the problem seems to come from some functions defined in asm-ppc/time.h extern __inline__ unsigned long get_tbl(void) { unsigned long tbl; #if defined(CONFIG_403GCX) asm volatile("mfspr %0, 0x3dd" : "=r" (tbl)); #else asm volatile("mftb %0" : "=r" (tbl)); #endif return tbl; } extern __inline__ unsigned long get_tbu(void) { unsigned long tbl; #if defined(CONFIG_403GCX) asm volatile("mfspr %0, 0x3dc" : "=r" (tbl)); #else asm volatile("mftbu %0" : "=r" (tbl)); #endif return tbl; } These functions will generate different ASM code for different PPC processors. And it seems mftbX functions are not valid for PPC403 processors. Therefore assembling with -many does fail (because PPC403 doens't support it). So is there a way to prevent -many to be passed to the assembler? Thanks JC On Mon, 2004-06-28 at 12:06, Jean-Christophe Dubois wrote: > Hi, > > I manage to generate the cross tool chain for GCC 3.4.0/GLIBC > 2.3.2/Binutils 2.14 on my Solaris 8 systems. All seems to be well. > > But I then tried to cross-compile the linux kernel and ran into some > problem. You can find the verbose trace bellow. It looks like there is a > problem in the way gcc calls as. In my case as is called with "-mppc > -maltivec -many". While the 2 first one seems OK, the last one "-many" > prevent as from decoding correctly the "mftbX" operation that are > generated under #APPS #NO_HAPPS in the assembly file. > > Would anybody have an idea on what can cause this problem or how to > prevent gcc to pass -many to as. > > Thanks > > JC > > powerpc-7400-linux-gnu-gcc: warning: -pipe ignored because -save-temps > specified > Reading specs from > /vobs/target_tools/sparc-unknown-solaris-gnu/powerpc-7400-linux-gnu/gcc-3.4.0-glibc-2.3.2/lib/gcc/powerpc-7400-linux-gnu/3.4.0/specs > Configured with: > /export/home/jdubois/crosstool-0.28-rc25/build/powerpc-7400-linux-gnu/gcc-3.4.0-glibc-2.3.2/gcc-3.4.0/configure --target=powerpc-7400-linux-gnu --host=sparc-host_sun-solaris2.8 --prefix=/vobs/target_tools/sparc-unknown-solaris-gnu/powerpc-7400-linux-gnu/gcc-3.4.0-glibc-2.3.2 --with-cpu=7400 --enable-altivec --with-headers=/vobs/target_tools/sparc-unknown-solaris-gnu/powerpc-7400-linux-gnu/gcc-3.4.0-glibc-2.3.2/powerpc-7400-linux-gnu/include --with-local-prefix=/vobs/target_tools/sparc-unknown-solaris-gnu/powerpc-7400-linux-gnu/gcc-3.4.0-glibc-2.3.2/powerpc-7400-linux-gnu --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long > Thread model: posix > gcc version 3.4.0 > > /vobs/target_tools/sparc-unknown-solaris-gnu/powerpc-7400-linux-gnu/gcc-3.4.0-glibc-2.3.2/libexec/gcc/powerpc-7400-linux-gnu/3.4.0/cc1 -E -quiet -nostdinc -v -Iinclude -Iarch/ppc -Iinclude -Iarch/ppc -Iarch/ppc -D__unix__ -D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux -Asystem=linux -Asystem=unix -Asystem=posix -D__KERNEL__ -D__KERNEL__ -DKBUILD_BASENAME=time -DKBUILD_MODNAME=time -iwithprefix include -MD arch/ppc/kernel/.time.o.d arch/ppc/kernel/time.c -msoft-float -mcpu=7400 -Wall -Wstrict-prototypes -Wno-trigraphs -Wno-uninitialized -Wdeclaration-after-statement -fno-strict-aliasing -fno-common -ffixed-r2 -fomit-frame-pointer -O2 -o time.i > ignoring duplicate directory "include" > ignoring duplicate directory "arch/ppc" > ignoring duplicate directory "arch/ppc" > #include "..." search starts here: > #include <...> search starts here: > include > arch/ppc > > /vobs/target_tools/sparc-unknown-solaris-gnu/powerpc-7400-linux-gnu/gcc-3.4.0-glibc-2.3.2/lib/gcc/powerpc-7400-linux-gnu/3.4.0/include > End of search list. > > /vobs/target_tools/sparc-unknown-solaris-gnu/powerpc-7400-linux-gnu/gcc-3.4.0-glibc-2.3.2/libexec/gcc/powerpc-7400-linux-gnu/3.4.0/cc1 -fpreprocessed time.i -quiet -dumpbase time.c -msoft-float -mcpu=7400 -auxbase-strip arch/ppc/kernel/.tmp_time.o -O2 -Wall -Wstrict-prototypes -Wno-trigraphs -Wno-uninitialized -Wdeclaration-after-statement -version -fno-strict-aliasing -fno-common -ffixed-r2 -fomit-frame-pointer -o time.s > GNU C version 3.4.0 (powerpc-7400-linux-gnu) > compiled by GNU C version 3.3.2. > GGC heuristics: --param ggc-min-expand=100 --param > ggc-min-heapsize=131072 > arch/ppc/kernel/time.c: In function `timer_interrupt': > arch/ppc/kernel/time.c:199: warning: use of compound expressions as > lvalues is deprecated > arch/ppc/kernel/time.c: In function `time_init': > arch/ppc/kernel/time.c:348: warning: use of compound expressions as > lvalues is deprecated > > /vobs/target_tools/sparc-unknown-solaris-gnu/powerpc-7400-linux-gnu/gcc-3.4.0-glibc-2.3.2/lib/gcc/powerpc-7400-linux-gnu/3.4.0/../../../../powerpc-7400-linux-gnu/bin/as -mppc -maltivec -many -V -Qy -o arch/ppc/kernel/.tmp_time.o time.s > GNU assembler version 2.14 (powerpc-7400-linux-gnu) using BFD version > 2.14 20030612 > time.s: Assembler messages: > time.s:158: Error: Unrecognized opcode: `mftb' > time.s:376: Error: Unrecognized opcode: `mftb' > time.s:500: Error: Unrecognized opcode: `mftb' > time.s:685: Error: Unrecognized opcode: `mftb' > time.s:802: Error: Unrecognized opcode: `mftb' > time.s:1016: Error: Unrecognized opcode: `mftbu' > time.s:1017: Error: Unrecognized opcode: `mftb' > time.s:1018: Error: Unrecognized opcode: `mftbu' ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |