Hello,

On Monday 02 November 2009 21:22:38 Petric Frank wrote:
> > > Is uClinux the proper alternative for this
> >
> > In general it is the proper alternative for machines without MMU.
> >
> > > or are the mips kernels available in the portage tree patched to
> > > cover this ?
> >
> > In theory that's possible, but I doubt it.
> 
> Thanks for your hints.
> 
> As far as i understand the cross compile system - the uclibc built by
>  crossdev is the one the compiled software for the target to be linked
>  against. Resulting from this the uclibc must reflect the target system
>  (here especially: no-mmu).
> Hope i am right here.
> 
> So i tried to do this using the savedconfig use-flag. I broke to
>  compilation process while it is compiling uclibc. Then i did a "make
>  menuconfig" (in /var/tmp/...) and disabled MMU and (as followup) the
>  target file format to "STATIC FLAT" (i assume PIE is also not possible
>  because of the missing MMU).
> 
> At restarting the crossdev execution i got an error while installing
>  uclibc. The compile step of the ebuild went well. At the installation
>  stage it complains that it is missing "utils/ldconfig.host" when doing
>  newbin. This can be seen in the ebuild in the src_install step. The
>  offending line is newbin utils/ldconfig.host ${CTARGET}-ldconfig | die
> 
> So this file seems not to be generated during the uclibc built process when
> PIE is off. This applies to ldd.host also.
> 
> What to do now?
> Skip this files in the ebuild ?
> 
> Or am i doing too much and the uclibc code is clever enough to disable mmu
> logic when the taget it is running on doesn't have it ?

Ok - finally i got the toolchain compiled for mips-nommu using sys-
devel/crossdev - with some (dirty) patches.
Patch 1: ebuild of uclibc - remove " ... | die" suffix when trying to install 
ldconfig and ldd as they are not there for nommu case
Patch 2: for building uclibc use savedconfig use flag. Use modified config to 
disable mmu and generate static libs only
Patch 3: (the worst one) - add a line to toolchain.eclass to add the option --
disable-static to the configure string
Maybe this all should into a new use flag for gcc and uclibc named (for 
example) "nommu".
Or an extension to crossdev is a better place ?

Would this be worth a bugzilla ticket (against which target ?) ?

regards
  Petric

Reply via email to