On 9/23/2010 7:53 PM, Rene Rebe wrote:
Hi,

MIPS64 appears to be building much better now in trunk, with n64/o32 multilib.

You can likewise adapt the patches to just build either of those or o32 .

Have fun!

   René

Sent abroad - http://ExactCODE.com Germany.
The Mips64 build is Working wonderfully now, once I get dietlibc & embedutils out of the way, everything else builds right up to the kernel. Patch attached to skip dietlibc & embedutils, so the rest will build (for those who cant wait for the final dietlibc fix :-)

The kernel built successfully but failed on the Install.

===[main_lx:84 (last $?=0)> case "$lx_cpu" in
===[main_lx:98 (last $?=0)> cp -vf vmlinux.ecoff /opt/T2/t2-trunk/build/Mips64-orig-9.0-trunk-generic-mips64-EB-cross-linux/boot/vmlinux_2.6.35.5-dist.ecoff
cp: cannot stat `vmlinux.ecoff': No such file or directory
Due to previous errors, no 1-linux26.log file!
(Try enabling xtrace in the config to track an error inside the build system.)
--- BUILD ERROR ---
This error is with the Generic T2 Mips64 kernel
I think that vmlinux.ecoff is something used by old DECstations, I never noticed it in my Octeon specific kernels, but have not investigated this in depth yet. I am going to switch to my own board specific kernel next, and see how it builds
BTW, I am building on a Suse SLES11 machine.

Thanks again Rene,

Jan
On Sep 23, 2010, at 21:19, Jan Rovins<[email protected]>  wrote:

On 9/23/2010 2:39 PM, René Rebe wrote:
Hi,

On Sep 23, 2010, at 20:13 , Jan Rovins wrote:

On 9/23/2010 1:37 PM, Rene Rebe wrote:
Porting the MIPS bits in dietlibc to 64 bit may only take some hours of trial 
and error. In fact I may even do so the next days (donations welcome :-).
I looked at that dietlibc code a while ago, and tried to do some things so it 
would build for mips64, but I gave up because there was too much mips32 
specific assembly code in there that would need porting, and my knowledge of 
Mips64 assembly was not sufficient to do this in a reasonable amount of time, 
If you can find a way to bypass those assembly code issues, or are not daunted 
by coding at that level, perhaps a few hours will do it.
well, I'm doing such stuff for years.

You could mark dietlibc [R] - mips64 temporarily (in it's .desc).
Thanks for the tip.
I have a local mips64 glibc fix that i am just test build to check regressions 
and hope to commit any minute.
The glibc solution is at the heart of the mips64 building troubles, I was never 
able to get multilib working, so I bailed out into building it either as n64abi 
or n32abi. for embedded purposes, it may still be good to let the user specify 
whether its multilib, single lib n64 or single lib n32.

In building off the trunk as it is right now, I am getting the o32 abi libs in 
/lib and the n32 abi libs in /lib64.
The question arises as to which libs really should be used where.  The o32 abi 
libs are the true old 32 bit libs which will allow the running of the ancient 
mips32 binaries on a mips64 system, but the n32 abi libs are of more interest 
to someone running on modern 64bit hardware, and wants to maintain a 32 bit 
user space. the n32 abi relies on some 64bit hardware features, and is not 
usable on 32bit hardware, but it is still a 32 bit abi, not a full 64bit abi. I 
think n32 would be the most common choice for a 32bit abi on current Mips 
technology. I think the true n64 abi should be in /lib64. The question is:  
does one library solution make sense for every one using Mips64, or should we 
let them pick their own combos?
Personally I would set it up like powerpc64, or x86-64, that is default to the 
full 64bit binaries in lib64 and have fully backward compatible lib/ support to 
support running the vanilla 32bit binaries of the architecture, which for MIPS 
would mean o32.
Yes that makes sense in respect to keeping the /lib setup consistent across all 
the different architectures  supported by T2.
I see little benefit in supporting the n32 variant. Of course anyone is free to 
setup his target to build n32 if they want to gain the extra performance % 
digit, ... But as outlined I would default to reasonable choices, the efforts 
to keep them working are already high enough. The Linux kconfig has this:

           Select this option if you want to run n32 binaries.  These are
           64-bit binaries using 32-bit quantities for addressing and certain
           data that would normally be 64-bit.  They are used in special
           cases.

           If unsure, say N.
Even though the kernel says "Say No", I think n32 will be of high intrest to 
embedded developers, working on new Mips64 hardware.  Once you have the fundamental 
multilib issues sorted out,  I will submit an other patch to allow the use of n32 in some 
way that makes sense, and hopefully won't involve too much effort to maintain.

Jan
So this would mean fixing trunk to built n64 binaries instead of n32 gcc is 
apparently (accidentally) defaulting to.

        René


Index: package/base/embutils/embutils.desc
===================================================================
--- package/base/embutils/embutils.desc	(revision 37673)
+++ package/base/embutils/embutils.desc	(working copy)
@@ -24,6 +24,7 @@
 [M] Rene Rebe <[email protected]>
 
 [F] CROSS DIETLIBC
+[R] -mips64
 
 [C] base/system
 
Index: package/base/dietlibc/dietlibc.desc
===================================================================
--- package/base/dietlibc/dietlibc.desc	(revision 37673)
+++ package/base/dietlibc/dietlibc.desc	(working copy)
@@ -28,7 +28,7 @@
 [E] group libc
 [F] CROSS NOPARALLEL DIETLIBC LIBC NO-SSP
 
-[R] - avr32 blackfin cris m68k superh superh64
+[R] - avr32 blackfin cris m68k superh superh64 mips64
 
 [L] GPL
 [S] Stable
----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[email protected] with a subject of: unsubscribe t2

Reply via email to