This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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

Cross-compiling MIPS programs...


Ok all, I have (I think) a working compiler.  The problem?  It won't
compile most programs.

Here is the situation:  I have a simple test program I compile as
follows:

    mips-idt-ecoff-gcc      test.c -o test

This works...wonderful.  I get a warning about setting the entry point
to the default...this is minor as I have not yet setup a link script,
and does not harm compilation.

I next compile using a seperate linking stage...

    mips-idt-ecoff-gcc      -c test.c -o test.o
    mips-idt-ecoff-ld       test.o -lgcc -lc \
        -L/usr/gnu/test/mips-idt-ecoff \
        -L/usr/gnu/test/mips-idt-ecoff/lib/gcc-lib/mips-idt-ecoff/2.95.3 \
        -o test.o

This works with the same warning as above (huzzah!)

I now go to build our main program....some exerpts:

    mips-idt-ecoff-gcc      -c CP0_func.s -o CP0_func.o
    mips-idt-ecoff-gcc      -c split.c -o split.o
    ...
    mips-idt-ecoff-gcc      split.o CP0_func.o ... (many more) \
        -lgcc -lc -lm \
        -L/usr/gnu/test/mips-idt-ecoff \
        -L/usr/gnu/test/mips-idt-ecoff/lib/gcc-lib/mips-idt-ecoff/2.95.3 \
        -o test.o
        
All the assembly code and c code compiles fine, but linking fails.
The error is one listed in the faq, and seen many times on the
list:

-------------------------
/usr/gnu/test/mips-idt-ecoff/mips-idt-ecoff/lib/libc.a(makebuf.o): In function ` __smakebuf':
/usr/share/src/elf/build-gcc-2.95.3-mips-idt-ecoff/mips-idt-ecoff/newlib/libc/stdio/../../../../../gcc-2.95.3/newlib/libc/stdio/makebuf.c:93:undefined reference to `isatty'
/usr/share/src/elf/build-gcc-2.95.3-mips-idt-ecoff/mips-idt-ecoff/newlib/libc/stdio/../../../../../gcc-2.95.3/newlib/libc/stdio/makebuf.c:93:relocation truncated to fit: JMPADDR isatty
-------------------------

And so on.

In the FAQ, it says the problem is that on some targets (apparently
mips included) the isatty, open, close, write, etc. routines are not
in libc.a, as per the normal, and machine-specific routines must be
linked in from libgloss libraries.

Well, I have looked through and tried linking all libraries I can
find, but nothing works.  I have tried dozens of suggestions from this
list's archives, and from web searches, and nothing seems to work.

Can anyone who has dealt with mips cross-compilers help out and tell
me what is wrong here?  Am I missing a library that must be linked in?
Did I mis a step in compiling the compiler itself?  I tried using the
mips-elf target as well for the cross compilation of gcc with the same
result...

I appreciate any help the group can provide, or any pointers to
existing information I have missed.

--David



------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com


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