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
      
_______________________________________________
Clfs-dev mailing list
Clfs-dev@lists.clfs.org
http://lists.clfs.org/listinfo.cgi/clfs-dev-clfs.org

Reply via email to