On 07/09/2010 02:32 PM, Lance Jump wrote:
On Fri, Jul 9, 2010 at 1:29 PM, Tom Armistead<[email protected]>  wrote:

I've built the 1.1.0 release for the PowerPC sucessfully.     My experience 
building from the  CLFS WIP version has always been it's kind of iffy.

So, my suggestion is to try to adapt the 1.1.0 CLFS release to build for ARM.   
  I'm not sure how difficult it is to modify it  for ARM but I think you will 
have a better chance at success starting with the 1.1.0 release as a baseline.

Tom,

I had tried that approach, but had problems with changing the
architecture to arm -- perhaps I just don't understand the gcc-ports
well enough.  Since the PPC is directly supported, the gcc-ports issue
doesn't arise. Also there were some PPC-specific patches and I didn't
what the ARM equivalents would be.

I was concerned that none of the arm versions of CLFS use glibc --
embedded uses ulibc and sysroot uses eglibc -- so I thought may there
was a reason for that.  As a sanity check, I built the stock 1.1.0 PPC
release successfully (through gcc final).

Fortunately, I have everything scripted on a VM with intermediate
snapshots. So, other than the few hours it takes to rebuild, the
process is not too hard.  By the way, I am using the LFS live-CD as my
host as suggested by the CLFS book.

I have made it past the gcc-final stage with the arm-sysroot by
disabling shared libraries. Almost everything built after that through
xzutils at the end of chapter 6.
If I remember building gcc, binutils, and {e,}glibc for arm all had issues compiling for arm. I have some patches floating around, but nothing is finished yet.
The automake build failed because the host autoconf was too early for
it (2.6.1) so I installed 2.6.3 as a host tool and then automake
built.

Perl failed to build and I am still trying to track that down. It's
first complaint was that it could not find miniperl-cross and it went
downhill from there with missing Makefiles and Config.pm's. It looks
like it could be some sort of search path problem since there is a
version of Perl on the host.
This is expected, perl was not really designed to be cross-compiled without access to the host, and I do not believe I have a patch for the new version yet.
I also just noticed that the gcc-specs patch, which is not called out
in the arm-sysroot book, contains dynamic loader path substitutions of
"/tools" But arm-sysroot does not appear to "/tools."  It uses
$CLFS/cross-tools. I don't know whether to include the patch or not. I
get the same failure with or without it. So my latest attempt is to
link /tools to ${CLFS}/cross-tools, use the patch and try again.  I'll
know in a few hours.
This is by design, sysroot does not have a separate final system build. In the main book, when you build the final system you have to be booted into the target architecture, with sysroot, you could build the entire arm system on a x86_64 box. Unfortunately, sysroot still has a lot of bugs in it and as you can see from the date, it hasn't been updated in a while.
I have not given up on your suggestion to port 1.1.0 -- I just have to
steel myself for that task. If you know of anyone who has done it or
is doing it, let me know.
I believe your best bet is to start with the sysroot arm or embedded arm book. Right now, it is going to be a lot of work to get a build going for arm, but it is doable. I have a beagleboard that I try to regularly do builds for.
Thanks, Lance

I don't know when I'll have time to get the book updated, but if someone has the time to do it, update the book and make a patch and I'll gladly apply it.

_______________________________________________
Clfs-support mailing list
[email protected]
http://lists.cross-lfs.org/listinfo.cgi/clfs-support-cross-lfs.org

Reply via email to