[ECOS] Solved this (was Re: [ECOS] How to build big-endian arm libraries for the Intel XScale IXP425)

Krishna Ganugapati krishnag@marakicorp.com
Tue Mar 9 03:00:00 GMT 2004


Please ignore the previous post. I have been able to successfully build the
big-endian XScale toolchain and have verified it against configtool building
a default target and the redboot target.

Gary and Jonathan: thanks for your earlier help.

Krishna
-------------------------------------------------
----- Original Message ----- 
From: "Krishna Ganugapati" <krishnag@marakicorp.com>
To: "Krishna Ganugapati" <krishnag@marakicorp.com>; "Jonathan Larmour"
<jifl@eCosCentric.com>; "Gary Thomas" <gary@mlbassoc.com>
Cc: <ecos-discuss@sources.redhat.com>
Sent: Monday, March 08, 2004 12:06 PM
Subject: Re: [ECOS] How to build big-endian arm libraries for the Intel
XScale IXP425


> Hello,
>
> I managed to successfully rebuild the toolchain with the new patch(es)
> as indicated by Jonathan Lamour. This time around
>
> arm-elf-gcc --print-multi-lib gives me the following
>
> [root@localhost bin]# ./arm-elf-gcc --print-multi-lib
> .;
> thumb;@mthumb
> interwork;@mthumb-interwork
> xscale;@mcpu=xscale
> strongarm;@mcpu=strongarm1110
> armv4t;@mcpu=arm9tdmi
> be;@mbig-endian
> xscale/be;@mcpu=xscale@mbig-endian
> interwork/xscale;@mthumb-interwork@mcpu=xscale
> interwork/armv4t;@mthumb-interwork@mcpu=arm9tdmi
> interwork/be;@mthumb-interwork@mbig-endian
> interwork/xscale/be;@mthumb-interwork@mcpu=xscale@mbig-endian
> thumb/interwork;@mthumb@mthumb-interwork
> thumb/xscale;@mthumb@mcpu=xscale
> thumb/armv4t;@mthumb@mcpu=arm9tdmi
> thumb/be;@mthumb@mbig-endian
> thumb/xscale/be;@mthumb@mcpu=xscale@mbig-endian
> thumb/interwork/xscale;@mthumb@mthumb-interwork@mcpu=xscale
> thumb/interwork/armv4t;@mthumb@mthumb-interwork@mcpu=arm9tdmi
> thumb/interwork/be;@mthumb@mthumb-interwork@mbig-endian
> thumb/interwork/xscale/be;@mthumb@mthumb-interwork@mcpu=xscale@mbig-endian
> [root@localhost bin]#
>
>
> So I presume I've successfully built my big-endian toolchain
>
> configtool does not complain about the toolchain and when I attempt to
> build the "default" template for the IXDP425 board, I get the following
> error message
>
> sh -c "export PATH=/gnutools/arm-elf/bin:$PATH; unset GDBTK_LIBRARY;
> unset GCC_EXEC_PREFIX; export
> ECOS_REPOSITORY=/usr/src/eCOS/ecos/packages; make --directory
> /opt/ecos/ecos-2.0/tools/bin/untitled1_build"
>
> make: Entering directory `/opt/ecos/ecos-2.0/tools/bin/untitled1_build'
> make -r -C hal/common/current headers
> make[1]: Entering directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/hal/common/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/hal/common/current'
> make -r -C io/common/current headers
> make[1]: Entering directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/io/common/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/io/common/current'
> make -r -C io/serial/current headers
> make[1]: Entering directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/io/serial/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/io/serial/current'
> make -r -C infra/current headers
> make[1]: Entering directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/infra/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/infra/current'
> make -r -C kernel/current headers
> make[1]: Entering directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/kernel/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/kernel/current'
> make -r -C services/memalloc/common/current headers
> make[1]: Entering directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/services/memalloc/common/curre
> nt'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/services/memalloc/common/curre
> nt'
> make -r -C isoinfra/current headers
> make[1]: Entering directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/isoinfra/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/isoinfra/current'
> make -r -C language/c/libc/common/current headers
> make[1]: Entering directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/common/current
> '
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/common/current
> '
> make -r -C language/c/libc/i18n/current headers
> make[1]: Entering directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/i18n/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/i18n/current'
> make -r -C language/c/libc/setjmp/current headers
> make[1]: Entering directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/setjmp/current
> '
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/setjmp/current
> '
> make -r -C language/c/libc/signals/current headers
> make[1]: Entering directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/signals/curren
> t'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/signals/curren
> t'
> make -r -C language/c/libc/startup/current headers
> make[1]: Entering directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/startup/curren
> t'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/startup/curren
> t'
> make -r -C language/c/libc/stdio/current headers
> make[1]: Entering directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/stdio/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/stdio/current'
> make -r -C language/c/libc/stdlib/current headers
> make[1]: Entering directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/stdlib/current
> '
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/stdlib/current
> '
> make -r -C language/c/libc/string/current headers
> make[1]: Entering directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/string/current
> '
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/string/current
> '
> make -r -C language/c/libc/time/current headers
> make[1]: Entering directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/time/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libc/time/current'
> make -r -C language/c/libm/current headers
> make[1]: Entering directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libm/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/language/c/libm/current'
> make -r -C io/wallclock/current headers
> make[1]: Entering directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/io/wallclock/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/io/wallclock/current'
> make -r -C error/current headers
> make[1]: Entering directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/error/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/error/current'
> make -r -C hal/arm/arch/current headers
> make[1]: Entering directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/hal/arm/arch/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/hal/arm/arch/current'
> make -r -C hal/arm/xscale/cores/current headers
> make[1]: Entering directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/hal/arm/xscale/cores/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/hal/arm/xscale/cores/current'
> make -r -C hal/arm/xscale/ixp425/current headers
> make[1]: Entering directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/hal/arm/xscale/ixp425/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/hal/arm/xscale/ixp425/current'
> make -r -C hal/arm/xscale/ixdp425/current headers
> make[1]: Entering directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/hal/arm/xscale/ixdp425/current
> '
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
>
`/opt/ecos/ecos-2.0/tools/bin/untitled1_build/hal/arm/xscale/ixdp425/current
> '
> make -r -C io/pci/current headers
> make[1]: Entering directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/io/pci/current'
> make[1]: Nothing to be done for `headers'.
> make[1]: Leaving directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/io/pci/current'
> headers finished
> make -r -C hal/arm/arch/current arm.inc
> make[1]: Entering directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/hal/arm/arch/current'
> arm-elf-gcc -mcpu=xscale -mbig-endian -Wall -Wpointer-arith
> -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2
> -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions
> -mapcs-frame  -I/opt/ecos/ecos-2.0/tools/bin/untitled1_install/include
> -I/usr/src/eCOS/ecos/packages/hal/arm/arch/current
> -I/usr/src/eCOS/ecos/packages/hal/arm/arch/current/src
> -I/usr/src/eCOS/ecos/packages/hal/arm/arch/current/tests -I.
> -Wp,-MD,arm.tmp -o hal_mk_defs.tmp -S
> /usr/src/eCOS/ecos/packages/hal/arm/arch/current/src/hal_mk_defs.c
> make[1]: Leaving directory
> `/opt/ecos/ecos-2.0/tools/bin/untitled1_build/hal/arm/arch/current'
> cc1: unrecognized option `-Woverloaded-virtual'
> make: Leaving directory `/opt/ecos/ecos-2.0/tools/bin/untitled1_build'
> cc1: unrecognized option `-fno-rtti'
>
> make[1]: *** [arm.inc] Error 1
> make: *** [build] Error 2
>
>
> Presumably, cc1 is the preprocessor?? Do I need to include some other
> options to get support for -fno-rtti (which I presume means don't include
> run-time type information) Any idea what I'm doing wrong
> here?
>
> Thanks in advance for any help
>
> Krishna
>
> ----- Original Message ----- 
> From: "Krishna Ganugapati" <krishnag@marakicorp.com>
> To: "Jonathan Larmour" <jifl@eCosCentric.com>; "Gary Thomas"
> <gary@mlbassoc.com>
> Cc: <ecos-discuss@sources.redhat.com>
> Sent: Monday, February 23, 2004 1:32 PM
> Subject: Re: [ECOS] How to build big-endian arm libraries for the Intel
> XScale IXP425
>
>
> > Jonathan and Gary,
> >
> > Thank you very much for your help.
> >
> > I've started a clean build again  this time with the additional
big-endian
> > patch. Jonathan, I did
"/gnutools/tools/bin/arm-elf-gcc -print-multi-lib"
> > and as expected, there was no configuration indicating "xscale
> big-endian".
> >
> > - Krishna
> > ___________________________________
> > Krishna Ganugapati
> > Maraki Corporation
> > email:  krishnag@marakicorp.com
> >
> > ----- Original Message -----
> > From: "Jonathan Larmour" <jifl@eCosCentric.com>
> > To: "Krishna Ganugapati" <krishnag@marakicorp.com>
> > Cc: <ecos-discuss@sources.redhat.com>
> > Sent: Monday, February 23, 2004 12:55 PM
> > Subject: Re: [ECOS] How to build big-endian arm libraries for the Intel
> > XScale IXP425
> >
> >
> > > Krishna Ganugapati wrote:
> > > >
> > > >   a.. binutils-2.13.1-v850-hashtable.patch
> > > >   b.. gcc-3.2.1-arm-multilib.patch   ------------> This should have
> been
> > > > warning enough. Its 2004 - perhaps Gary's patch of May 2003  has
> already
> > > > been folded appropriately into this  patch... (speculative)
> > >
> > > IIRC that patch would conflict with the arm multilib one because they
> > > affect similar areas in the same file. Although if so I'd expect the
> > > toolchain build to fail.
> > >
> > > Anyway, the "official" way to build is to download
> > > http://ecos.sourceware.org/gcc-3.2.1-arm-be.patch and apply that
_after_
> > > having applied gcc-3.2.1-arm-multilib.patch
> > >
> > > >   c.. insight-5.3-tcl_win_encoding.patch
> > > >  The tools took some amount of time to build, but built flawlessly.
> All
> > my
> > > > tools were stored in /gnutools on my machine.
> > > >
> > > > I then fired up the configtool - changed the build path to /gnutools
> > from
> > > > /opt/ecos/gnutools and surprise I saw the message "/gnutools does
not
> > appear
> > > > to contain the build tools - use this folder anyway?"
> > >
> > > Did you see if there was anything in there? Did the toolchain build
> > > definitely succeed?
> > >
> > > > Questions:
> > > >
> > > > Am I right in assuming that gcc-3.2.1-arm-multilib.patch that is
> > provided
> > > > with the toolchain sources is a patch that generates all necessary
> > binaries
> > > > and libraries for all variants of  arm. More specifically, does this
> > patch
> > > > once applied force generation of binaries and libraries necessary
for
> > > > building a big-endian arm target for the Intel XScale IXP425?  If
this
> > is
> > > > correct, my potential moral is now a real moral..
> > >
> > > It doesn't include big-endian support.
> > >
> > > > Can I therefore assume that my binaries were successfully built
> > >
> > > Nope. Look there and find out! In particular from the command line try
> > > running "/gnutools/tools/bin/arm-elf-gcc -print-multi-lib" to see if
> > > big-endian libraries are included.
> > >
> > >
> > > > Could someone kindly explain to me why this message pops up - the
> > toolchain
> > > > is nicely installed in /gnutools - I point the "Build Path" to
> > /gnutools -
> > > > is there anything else I need to do?
> > >
> > > It probably means there aren't tools there ;-).
> > >
> > > > Could someone explain what gcc-3.2.1-arm-multilib.patch does? My
> reading
> > of
> > > > diff files is poor.
> > >
> > > It allows the compiler to support various alternative configurations,
or
> > > optimisations for certain configurations, specifically:
> > >
> > > thumb
> > > thumb interworking
> > > arm9
> > > strongarm
> > > xscale
> > >
> > > big-endian is another option, but is included in the separate patch
> above.
> > >
> > > > Might I humbly suggest that the website be updated to indicate that
> > ecos2.0
> > > > toolchains do not provide the big-endian support for arm -
presumably
> > for
> > > > size reasons and how to go about building a big-endian toolchain?
> > >
> > > The big-endian patch isn't mentioned in the instructions for
rebuilding
> > > tools, so I've added that.
> > >
> > > Jifl
> > > --
> > > eCosCentric    http://www.eCosCentric.com/    The eCos and RedBoot
> experts
> > >  >>>>> Visit us in booth 2527 at the Embedded Systems Conference 2004
> > <<<<<
> > > March 30 - April 1, San Francisco
> http://www.esconline.com/electronicaUSA/
> > > --["No sense being pessimistic, it wouldn't work anyway"]-- 
> Opinions==mine
> > >
> >
> >
> > -- 
> > Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
> > and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
> >
>


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list