This is the mail archive of the newlib@sourceware.org mailing list for the newlib 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]

Re: building GCC/newlib for MIPS targets


Dhaval Oza wrote:
Hello:

I'm trying to build GCC 3.4.2 with newlib 1.12 (using MinGW) for the MIPS targets. I need to build the big-endian and little-endian C++ libraries for the MIPS-elf targets. I was successful in building the big-endian C++ libraries (this what the options defaulted to). I am unsure on how to build the C++ libraries for the little-endian targets. When building newlib I suppiled the -EL compile target option, and then used GCC to build and install the little-endian libaries. It seemed like the little-endian libraries were built however, I get linking errors when I build my test programs. Is this the correct option when building newlib for little-endian targets?

I looked online for help and came across using the multilib options. I tried using multilib and only the big-endian libraries get built. When I invoke the -print multilib compiler option I get blank.

1. How to build the tools chain for various target endianess
combinations ?


This should all be handled by your compiler (i.e. not newlib). If you read the section on multilib in the FAQ, you will see that once the compiler does the right thing, everything works automatically from there on. I'm kind of surprised that the MIPS compiler isn't already doing this for you so I suggest you take this problem to the gcc list and someone there should be able to help you.


2. Is it possible to just build one compiler (instead
of mipsel-xx, mipseb-xxx etc) and a set of libraries to
do the job ? If yes, do I need to use multilib option
? If so, how to use it ?

MULTILIB_OPTIONS = EL/EB
MULTILIB_DIRNAMES = el eb


Yes, it is possible to have one compiler build multiple libraries. That's the point of multilib options. When the user specifies one or more of the multilib'd options, the compiler automatically knows which subdirectories in newlib/libgloss to find the appropriate libraries to link with. Those libraries have already been built with the same options that the user specified. Note that multilib doesn't work if the user manually links via ld. If a manual link is performed, the user is responsible for specifying the sub-directories to use (not recommended). The link should be performed via the compiler (e.g. gcc -o my.out my.o).


-- Jeff J.


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