This is the mail archive of the
mailing list for the eCos project.
How to build big-endian arm libraries for the Intel XScale IXP425
- From: "Krishna Ganugapati" <krishnag at marakicorp dot com>
- To: <ecos-discuss at sources dot redhat dot com>
- Date: Mon, 23 Feb 2004 12:10:07 -0800
- Subject: [ECOS] 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.
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)
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..
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss