This is the mail archive of the mailing list for the eCos project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

How to build big-endian arm libraries for the Intel XScale IXP425

This might end up being a slightly lengthy email, but I need to chronicle
what I attempted to do before posing my questions.

I am attempting to build the default and redboot targets for  the Intel
IXDP425 board along with support for pci-ide.

When I posed my first question about whether pci-ide for IXP425 support
exists, Gary Thomas very kindly pointed me to using the anonymous cvs
sources instead of the ecos20 sources.

My machine now consists of the following
1) ecos-20 sources
2) ecos-20 toolchain for arm-elf
3) anonymous cvs sources for ecos

When I attempted to build the default template for IXP425, I was
successfully able to generate a libtarget.a both from the ecos20 and from
the cvs repository using the ecos2.0 toolchain.

When I attempted to build the redboot template for IXP425, in both cases
(the cvs repository and the ecos2.0 sources), the build failed because the
pre-built toolchain for ecos2.0 provides only little endian binaries and not
big-endian binaries.(libgcc.a is only little endian and not big-endian)

My quest now was about building big-endian arm libraries before I could
build my redboot target.

Minor diversion: At this stage (reluctant/lazy that I was to go straight to
building my own toolchain, I googled the web to see if there was any
shortcut to getting  big-endian libraries). I actually found a May 2003
posting from Gary Thomas about how to patch the makefile for the toolchain
to get big-endian version of the libraries - (potential moral: a little
knowledge is a dangerous thing :-)) Didn't find it the next day and sent
nuisance mail to Gary who very kindly obliged and sent me the patch. In my
head, I'm thinking that I have to apply this patch.

I then decided to build my own toolchain.  I followed the instructions to a
"T" and also pulled down the three patches and applied them.

  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)
  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?"

I should have realized that saying yes to this popup would mean bad things
would happen. I said "yes" and bad things happened. Nothing builds.:-(

I then started fooling around with  Gary's 2003 patch, got all confused, and
then decided it was time to ask for help..


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..

Can I therefore assume that my binaries were successfully built and my
problem lies with understanding why the graphical user interface tool
Configtool  pops up the message "/gnutools does not appear to contain the
build tools - use this folder anyway?"

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?

Could someone explain what gcc-3.2.1-arm-multilib.patch does? My reading of
diff files is poor.

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?

Thank you all in anticipation. Sorry for the lengthy post, but I thought (in
the event my speculations turn out to be right) that my post might serve as
a cautionary note as to why a little knowledge might not be a very smart way
to do things..

Kind regards,
Krishna Ganugapati
Maraki Corporation

Before posting, please read the FAQ:
and search the list archive:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]