To add to my previous mail:
The same code when I build with Algorithmics tool chain builds "jal
gt64120" properly, I mean it doesnt use _gp.
But I cannot stick with Algorithmics tool chain because when I build the
kernel 2.4.3 it complains that "my Algorithmics toolchain is old and it
builds buggy kernel."
I am really stuck here for a while and any help would be appreciated.
Thanks a lot,
On Fri, 1 Mar 2002, Muthukumar Ratty wrote:
> My toolchain information
> Host : redhat linux 7.1 in a i386 PC
> Tool chains built as per Brad LaRonde's writeup.
> (Building a Modern MIPS Cross-Toolchain for Linux)
> gcc: version 3.0.3
> binutils : version 126.96.36.199.7 20011016
> glibc: version 2.2.3 with linux threads patch and mips-base-addr patch
> from Brad.
> I was able to build kernel 2.4.3, I got from oss.sgi.com and it works fine
> (thanks to everyone). So I assumed my toolchain is working fine. Next I
> modified the yamon startup code (just used reset.S, gt64120.S, link.xn and
> did some cleaning to get it compiled). When I tried to run srecconv.pl
> util, I got error message "Out of memory!" (I wanto convert it into flash
> format to download. The strange thing is, I have an Algorithmics toolchain
> version egcs-2.90.23 980102, GNU ld 2.9.1/sde-4.0.3, and the srec I got
> from it doesnt havethis problem)
> I tried to trace down and found that the srec generated has load
> address 0x80001000 for data and 0xbfc00000 for the startup code (this is
> because the link.xn is defined this way). So when an associative array is
> used in perl script srecconv.pl, it runs out of memory. I dont know perl
> and I am stuck here. Can somebody point me how to proceed? thanks a lot.
> (i really want to have the data loaded at 0x80001000 but it should be
> initially in flash).
> So I changed the data load address to 0xbfc01000 and now the srecconv
> works fine and I got a .fl image. But my "jal gt64120_init" is assembled
> to use _gp and I dont think I set the _gp properly ( I am still in the
> process of reading Dominics book:). so the code is not at all entering in
> to the gt64120_init function. but when I change it to "j gt64120_init"
> it works fine. (Cant I use "jal" here?)
> Any help would be appreciated and sorry for this long mail,