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