[Clfs-dev] sysroot updates

P. J. McDermott pjm at nac.net
Thu Jan 5 02:33:10 PST 2012


On 01/02/2012 07:06 PM, leo alejandro wrote:
>  
> I was looking at the sysroot build. The packages in it are somewhat old
> and it has a few errors in it. Can I help fix and update it to more
> recent package versions?
>
> Leo

I'm working my way through a build based on CLFS-Sysroot with newer
packages.  If it helps, you can borrow from my build procedure [1] (in
progress).  (Note that ${BBL} and related variables in my notes are
equivalent to ${CLFS} et al. in the book.)

1:
http://odin1.pehjota.net/git/free-embedded-os/tree/temporary-bootstrap-builder-setup.txt

Pedantry: Many of the commands and such in that procedure are based on
those in CLFS-Sysroot, and my work in that procedure is "Copyright (C)
2012 Patrick (P. J.) McDermott" and may be freely used under the terms
of the Expat/MIT License [2].

2: http://www.jclark.com/xml/copying.txt

What errors did you find?  I found the following (some of which may be
due to my use of newer versions of packages):
  - MPC isn't mentioned but is required to build GCC.
  - PPL and CLooG are optional dependencies of GCC to enable loop
    memory optimizations.  I couldn't get CLooG to build against PPL
    and GMP in the cross-tools directory, so I just omitted PPL and
    CLooG and built the cross-compiling GCC without them (as LFS
    does).  For more information, see my post to the -support list. [3]
  - The installation of Linux headers in section 5.4 could be
    simplified by setting INSTALL_HDR_PATH to "${CLFS}/usr" and
    eliminating the cp command.  (Not an error -- just something that
    could be simpler in CLFS and LFS.)
  - If the target architecture is "x86_64", the "-march" switch in
    CFLAGS for the cross-compiling EGLIBC build (section 5.11 in
    CLFS-Sysroot) must beset to "x86-64".  "x86_64" is not a valid
    architecture in GCC).  I fixed this in my notes with a sed
    substitution.
  - The cross-compiling GCC is configured with the "--disable-ssp"
    option, which disables building of the Stack Smashing Protector
    (SSP).  But EGLIBC's configure script detects support for SSP and
    prepares EGLIBC to be built with it.  As a result, the build fails
    with "undefined reference" linking errors.  I fixed this by passing
    "libc_cv_ssp=no" on EGLIBC's configure command line.  See my commit
    log for details. [4][5]
The EGLIBC build is as far as I've gotten so far.  I'm currently looking
at an installation error in EGLIBC's "scripts/mkinstalldirs", which is
trying to create a directory "/usr/lib64" (ignoring the cached
"install_root" config variable).  I'm thinking this might require a
patch to "Makefile.in".

3:
http://lists.cross-lfs.org/pipermail/clfs-support-cross-lfs.org/2012-January/001312.html
4:
http://odin1.pehjota.net/git/free-embedded-os/commit/bootstrap-system-build-procedure.txt?id=a7563c9e
5:
http://odin1.pehjota.net/git/free-embedded-os/commit/temporary-bootstrap-builder-setup.txt?id=7f38f82b

-- 
P. J. McDermott     http://www.pehjota.net/            (_/@\_)    ,--.
mailto:pjm at nac.net  http://identi.ca/pehjota      o    < o o >   / oo \
                                                    o   \ `-/    | <> |.
                                                o o o    "~v    /_\--/_/



More information about the Clfs-dev mailing list