Hi,
> > > > Or are you talking about this special DECstation ECOFF problem?
>
> I do seem to have this problem, now that I've got the rest of the kernel
> to compile with my latest DECstation source <yay!>...
>
> When I make vmlinux using your new tools, with ELF intermediates, and
> a final ECOFF output, I get this:
>
> vmlinux: file format ecoff-littlemips
>
> SECTION 0 [.text] : size 000775a0 vma 80030000 lma 80030000 align 2**4
> ALLOC, LOAD, CODE
> SECTION 1 [.rodata] : size 00007b10 vma 800a7590 lma 800a7590 align 2**4
> ALLOC, LOAD, DATA
> SECTION 2 [.reginfo] : size 00000020 vma 800af0a0 lma 800af0a0 align 2**4
> ALLOC, LOAD, DATA
> SECTION 3 [.data] : size 000102d0 vma 800b0000 lma 800b0000 align 2**4
> ALLOC, LOAD, DATA
> SECTION 4 [.sbss] : size 00000000 vma 800c02d0 lma 800c02d0 align 2**4
> ALLOC
> SECTION 5 [.bss] : size 00015200 vma 800c02d0 lma 800c02d0 align 2**4
> ALLOC
> SECTION 6 [.mdebug] : size 0003f530 vma 800d54d0 lma 800d54d0 align 2**4
> ALLOC, LOAD, READONLY, DATA
The .reginfo and .mdebug sections can be thrown away; they don't contain
valuable information. mipsel-linux-strip --remove-section=<section>
can do this. This is already done in order to build the ARC boot files.
> When I use my dec-ultrix crossdev tools, I get a vmlinux like this:
>
>
> ../linux-1.3.62/vmlinux: file format ecoff-littlemips
>
> SECTION 0 [.text] : size 0008e220 vma 80030000 lma 80030000 align 2**4
> ALLOC, LOAD, CODE
> SECTION 1 [.data] : size 0001a1f0 vma 800bf000 lma 800bf000 align 2**4
> ALLOC, LOAD, DATA
> SECTION 2 [.sbss] : size 000001f4 vma 800d91f0 lma 800d91f0 align 2**4
> ALLOC
> SECTION 3 [.bss] : size 00013610 vma 800d93f0 lma 800d93f0 align 2**4
> ALLOC
>
>
> ...and when the file loads, I can see the DECstation is just getting
> what it thinks is the usual three sections (i.e. .text, .data and (.sbss +
> .bss), except that for the ELF-converted file it's .text, (.rodata +
> .reginfo + .data + .bss) and then .bss again!
>
> That, and the .sbss segment is not being explicitly zeroed by the
> linker and downloaded.
.sbss is a bss section and as such it has to be zeroed by the loader. ld
can't even zero it because a .sbss section isn't even allocated in the file.
Did you try to enforce a file layout using linker scripts? This should
be the difference between the "real" DECstation ECOFF config and the one
in the Linux/MIPS binutils.
> Any ideas?
> Yeah - so far I seem to have integrated the code o.k. - now all I need to
> do is to get it to boot!
> I know I'm close to getting this working with the standard toolset... I
> think it's important to really try to have a nice simple development
> environment (don't you agree, Amit?? :-)
This is nice. Thomas is also working on fixing the 64 bit bugs in the
binutils so that Alphas hosts will be supported from the same source tree,
too.
> Help me Obe Wan...
May the source be with you,
Ralf
--
A weird imagination is most useful to gain full advantage
of all the features - manpage of amd(8).
|