Help wanted: Problem with rtems-CVS-050130 build for ARM i.MX/MX1/csb336 board + GCC-3.4.3 BUG
Pavel Pisa
ppisa4lists at pikron.com
Sun Jan 30 20:56:54 UTC 2005
Hello All,
please, help me with next bellow described problem
with CVS RTEMS sources for i.MX/MX1/csb336 board.
=============================================================================================================================
Problems manifests by next error message
...
arm-rtems-gcc --pipe -B../../../../../../lib/ -B../../../../../../csb336/lib/ -specs bsp_specs -qrtems -isystem ../../../../../../csb336/lib/include -DASM -mcpu=arm920 -mstructure-size-boundary=8 -O3 -c ../../../../../../../../rtems/c/src/lib/libcpu/arm/mc9328mxl/../../../libbsp/arm/shared/irq/irq_asm.S
arm-rtems-gcc --pipe -B../../../../../../lib/ -B../../../../../../csb336/lib/ -specs bsp_specs -qrtems -Wall -mcpu=arm920 -mstructure-size-boundary=8 -O3 -o irq.rel -qnolinkcmds -nostdlib -Wl,-r irq/irq_rel-irq.o irq/irq_rel-bsp_irq_init.o ../../../libbsp/arm/shared/irq/irq_rel-irq_init.o irq/bsp_irq_asm.o ../../../libbsp/arm/shared/irq/irq_asm.o
arm-rtems-gcc: irq/bsp_irq_asm.o: No such file or directory
arm-rtems-gcc: ../../../libbsp/arm/shared/irq/irq_asm.o: No such file or directory
gmake[6]: *** [irq.rel] Error 1
gmake[6]: Leaving directory `/mnt/hda8/usr/src/rtems/arm-rtems/arm-rtems/c/csb336/lib/libcpu/arm/mc9328mxl'
gmake[5]: *** [all-recursive] Error 1
gmake[5]: Leaving directory `/mnt/hda8/usr/src/rtems/arm-rtems/arm-rtems/c/csb336/lib/libcpu/arm'
gmake[4]: *** [all-recursive] Error 1
gmake[4]: Leaving directory `/mnt/hda8/usr/src/rtems/arm-rtems/arm-rtems/c/csb336/lib/libcpu'
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory `/mnt/hda8/usr/src/rtems/arm-rtems/arm-rtems/c/csb336/lib'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/mnt/hda8/usr/src/rtems/arm-rtems/arm-rtems/c/csb336'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/mnt/hda8/usr/src/rtems/arm-rtems/arm-rtems/c'
make: *** [all-recursive] Error 1
RTEMS are configured with next command
../rtems/configure --target=arm-rtems --prefix=/opt/rtems \
--enable-rtems-inlines --disable-multiprocessing --enable-cxx \
--disable-rdbg --enable-maintainer-mode --disable-tests \
--enable-networking --enable-posix --enable-itron --disable-ada \
--disable-expada --disable-multilib --disable-docs \
--enable-rtemsbsp=csb336
GCC-3.4.3 NEWLIB-1.13 binutils-2.15
I have investigated a little, which Makefile.a controls build of
"bsp_irq_asm.o" and "irq_asm.o" and I have found, that there are
difference between ARM BSPs Makefile.am files. What is correct
way and place to build "bsp_irq_asm.o" and "irq_asm.o".
c/src/lib/libcpu/arm/mc9328mxl/Makefile.am:
noinst_PROGRAMS += irq.rel
irq_rel_SOURCES = irq/irq.c irq/bsp_irq_init.c \
../../../libbsp/arm/shared/irq/irq_init.c irq/bsp_irq_asm.S \
../../../libbsp/arm/shared/irq/irq_asm.S irq/irq.h
c/src/lib/libcpu/arm/at91rm9200/Makefile.am:
noinst_PROGRAMS += irq.rel
irq_rel_SOURCES = irq/irq.c irq/bsp_irq_init.c \
../../../libbsp/arm/shared/irq/irq_init.c irq/bsp_irq_asm.S \
../../../libbsp/arm/shared/irq/irq_asm.S irq/irq.h
c/src/lib/libbsp/arm/arm_bare_bsp/Makefile.am:
noinst_PROGRAMS += irq.rel
irq_rel_SOURCES = irq/irq.c ../../arm/shared/irq/irq_init.c \
irq/bsp_irq_init.c ../../arm/shared/irq/irq_asm.S irq/bsp_irq_asm.S \
irq/irq.h
c/src/lib/libbsp/arm/edb7312/Makefile.am:
noinst_PROGRAMS += irq.rel
irq_rel_SOURCES = irq/irq.c irq/bsp_irq_init.c \
../../arm/shared/irq/irq_init.c irq/bsp_irq_asm.S \
../../arm/shared/irq/irq_asm.S irq/irq.h
c/src/lib/libbsp/arm/vegaplus/Makefile.am:
noinst_PROGRAMS += irq.rel
irq_rel_SOURCES = irq/irq.c ../../arm/shared/irq/irq_init.c \
irq/bsp_irq_init.c ../../arm/shared/irq/irq_asm.S irq/bsp_irq_asm.S \
irq/irq.h
=============================================================================================================================
There seems to be ICE bug present in all GCC-3.4.x, when used for ARM targets
when building "librpc".
cd arm-rtems/c/csb336/cpukit/librpc
if arm-rtems-gcc --pipe -DHAVE_CONFIG_H -I.. -I../../cpukit/../../../csb336/lib/include -D_RPC_read=read -D_RPC_write=write -D_RPC_close=close -D_RTEMS_RPC_INTERNAL_ -Wall -fasm -mcpu=arm920 -mstructure-size-boundary=8 -O3 -MT src/rpc/librpc_a-clnt_tcp.o -MD -MP -MF "src/rpc/.deps/librpc_a-clnt_tcp.Tpo" -c -o src/rpc/librpc_a-clnt_tcp.o ../../../../../../rtems/c/src/../../cpukit/librpc/src/rpc/clnt_tcp.c; \
then mv -f "src/rpc/.deps/librpc_a-clnt_tcp.Tpo" "src/rpc/.deps/librpc_a-clnt_tcp.Po"; else rm -f "src/rpc/.deps/librpc_a-clnt_tcp.Tpo"; exit 1; fi
../../../../../../rtems/c/src/../../cpukit/librpc/src/rpc/clnt_tcp.c: In function `clnttcp_call':
../../../../../../rtems/c/src/../../cpukit/librpc/src/rpc/clnt_tcp.c:328: internal compiler error: in verify_local_live_at_start, at flow.c:546
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Simple workaround is to build that file with -O2 instead of -O3.
I have already noticed that bug when I have been compiling my
own sources. It seems to be present not only for ARM RTEMS GCC 3.4.x,
but I have confirmed it even on ARM Linux GCC.
I have reported this bug into GCC bugzilla already.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17810
Do you know, if it is present on GCC-4.0.0.
The simplified test case can be obtained from GCC bugzilla.
Thanks for reply in advance
Pavel Pisa
==================================================
PiKRON s.r.o. Phone: +420 2 96781671
Kankovskeho 1235 Phone/Fax: +420 2 84684676
182 00 Praha 8 WWW: http://www.pikron.com/
Czech Republic e-mail: ppisa4lists at pikron.com
==================================================
More information about the users
mailing list