I have been trying to run busybox-1.00 ( also rc3) on my powerpc board (MPC
8540 processor ) and about half
the applets do not run and die with the message "Illegal instruction". I have
ppc_82xx-gcc Montavista compiler
for the power pc board. These compilers are cross compiled version of gcc
3.3.1 compiler. We are using the
cross compiled glibc-2.3.2.
Some critical applets which are failing with Illegal instruction message are :
ar ash bunzip2 bzcat cat chgrp chown cmp cp cpio crond install ln ls mkdir tty
wc cut date df du
egrep env expr fgrep find modprobe mount rm rmdir route uname wget ftpget
ftpput grep gunzip
halt head httpd id ifconfig inetd sh sort syslogd uniq xargs tee telnetd touch
tr vi yes zcat.
About half the commands are broken. When I compile with no optimization or
optimize for speed i.e. -O2
instead for size -Os, everything works fine.
Seems like an optimzation bug to me.
--
Atul
The configure command for cross compiling gcc was as below ( output of
ppc_82xx-gcc -v ) ::
Reading specs from /opt/montavista/pro/devkit/ppc/82xx/bin/../lib/gcc-
lib/powerpc-hardhat-linux/3.3.1/specs
Configured with: ../configure --host=i686-pc-linux-gnu --target=powerpc-
hardhat-linux
--prefix=/opt/montavista/devkit/ppc/82xx --exec-
prefix=/opt/montavista/devkit/ppc/82xx
--bindir=/opt/montavista/devkit/ppc/82xx/bin --
sbindir=/opt/montavista/devkit/ppc/82xx/sbin
--sysconfdir=/opt/montavista/devkit/ppc/82xx/etc --
datadir=/opt/montavista/devkit/ppc/82xx/share
--includedir=/opt/montavista/devkit/ppc/82xx/include --
libdir=/opt/montavista/devkit/ppc/82xx/lib
--libexecdir=/opt/montavista/devkit/ppc/82xx/libexec --
localstatedir=/opt/montavista/devkit/ppc/82xx/var
--sharedstatedir=/opt/montavista/devkit/ppc/82xx/share --
mandir=/opt/montavista/devkit/ppc/82xx/man
--infodir=/opt/montavista/devkit/ppc/82xx/info --program-transform-
name=s,^,ppc_82xx-, --enable-cross
--with-sysroot=/opt/montavista/devkit/ppc/82xx/target --enable-shared --enable-
languages=c,c++ --enable-__cxa_atexit
--enable-threads=posix --disable-multilib --with-gxx-include-
dir='$'{gcc_tooldir}/../target/usr/include/c++/3.3.1
--with-cpu=603
Thread model: posix
gcc version 3.3.1 (MontaVista 3.3.1-3.0.10.0300532 2003-12-24)
--
Summary: FW: gcc 3.3.1 for Powerpc optimzation flag -Os generates
bad code
Product: gcc
Version: 3.3.1
Status: UNCONFIRMED
Severity: critical
Priority: P2
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: atul dot sabharwal at tek dot com
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18912