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]

Re: cross compiling for PPC7400/Linux on Solaris 8


So it appears that this -many is added by the following patch file:

crosstool-0.28-rc25/patches/gcc-3.4.0/gcc-3.3.3h-ppc-asm-spec.patch

The comment in the patch file states:

<quote>
(I'm not so sure about the unconditional -many it sends to binutils;
that seems redundant?)
</quote>

Is this really required? It seems to cause some trouble (at least to
me). I'll try to regenerate it without this option.

Regards

JC

On Mon, 2004-06-28 at 14:41, Jean-Christophe Dubois wrote:
> 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]