[Clfs-dev] Update to clfs book

Tom Armistead tiny_armistead at yahoo.com
Wed Mar 6 17:08:55 PST 2019


Hello,
    As I mentioned in an email of last month, I have been working on getting the CLFS book up to package versions the same as (or nearly the same as) those in LFS-8.4.
     I am still working through some issues but in general it is working reasonably well right now (for PowerPC and X86).    I don't have MIPS or Sparc machines to work with so I haven't spent much time on CLFS for those two archs.   
    The following is an high level overview of what I've found.   I will send further emails with more details when I am closer to done.
     I started off with changing the common with LFS package versions to be the same as what is in LFS-8.4, bumping the CLFS unique packages up to their most recent versions,  and also changing the order of the CLFS final system build packages to be the same as what is in LFS chapter 6.    Those changes are what I started with but found a few things out regarding updating CLFS:
     Python is a new required package.   It is required for both building GLIBC-2.29 and is also in the new dependency chain for building systemd.  
      Systemd-240 was not available in the same type of tarball that is in the current book.    The systemd package in the book right now (-233 I think)  is built with the regular configure/make process.   But the new systemd-240 is built with meson which depends on ninja which depends on Python3.     
     GCC 8.2.0 required a patch to compile with ISL-20.   I created the patch and built  with that for a while but bumped up GCC to 8.3.0 when it came out.   8.3.0 got rid of the need for the ISL20 patch so I bumped GCC up to 8.3.0.
      I adapted the GCC-7.1.0 specs patches for GCC-8.3.0 and fixed a couple of issues in them (particularly in regards to PPC).   (I suspect there may still be some issues to fix in the specs patches.)    I also found and fixed a bug in the multi-lib build of GCC for PPC.    
      I created a do nothing patch and for now am using it for the several "branch update" patches.   The actual branch update patches can be filled in later if they are something that needs to be there.
     I found that VIM-8.1 did not build in the temp system.   VIM-8.1 did build in the final system but not the temp system.   I bumped VIM back down to 8.0 (and it builds in both temp and final) since there were more important things to work on first.
      GLIBC-2.29 requires Python-3 to build.    I initially added Python to the /cross-tools build, temp-system build and final system build to support GLIBC-2.29.     Python is a bit difficult to cross build and also difficult to build as a multilib package.    I found a multilib patch for Python-3.6 and adapted it to Python-3.7.2.    It seems to work to some degree but I think there are still problems that I need to track down with building Python as a multilib package..
     I have backed GLIBC down to 2.28 to alleviate some of the Python struggles.    This means Python is still built in the /cross-tools and also the final  system but is no longer built in the temp-system.
     Several packages require tweaks (seds and such) to build with the recent GLIBC releases.     There were also some tweaks to the configure and/or make procedure for some of the new version of packages.   These I implemented based on what was in LFS-8.4.
      There is no newer version of pkg-config-lite.   I don't think it is maintained anymore.   I left it as is but it might be better long term to switch to the regular pkg-config package.
       I had to deviate a little from LFS in the order of final system package builds iirc I had to move ncurses to be before readline.   Otherwise I found the documentation portion of the build for a couple of packages failed.   But mostly, my final-system build order is the same as the LFS-8.4 build order.   
      "make install_firmware" is no longer supported in the kernel builds.    So that goes away in kernel builds.
     I have temporarily shut off 'enable-gold=yes' in all my binutils builds.   The gold feature is not needed in cross-tools or temp-system.   It's not required to build the final-system either but might be needed for packages added after CLFS is built.     Enabling gold adds significant time to the binutils build so while debugging, I have shut it off.     I will turn it back on later (at least in the final-system) when I'm not rebuilding as often.  
jhalfs still works for building CLFS.   However, it does not seem to setup the /root/.bash_profile flags properly when building CLFS as a 'bootable' system  (even though the flag settings look correct in the rendered book).    I also suspect that it doesn't pick up and use the PKG_CONFIG variables that get added to .bash_profile at the end of the pkg-config-lite build.     I made an ugly hack to my book to workaround that but don't really have an actual fix planned for it.
There are other small tweaks I've made but I think that covers the high level changes of interest.

Tom Armistead
      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.clfs.org/pipermail/clfs-dev-clfs.org/attachments/20190307/61ca7d2f/attachment-0002.html>


More information about the Clfs-dev mailing list