upgrade to GCC 8.2 and GLIBC 2.28 for kernel's CONFIG_RETPOLINE
Michael D Labriola [Thu, 17 Jan 2019 00:54:22 +0000 (19:54 -0500)]
So, I probably could have just upgraded to GCC 7.4 (or even just 7.3) to
turn CONFIG_RETPOLINE on in the kernel configs... but I figured, hey, why
not upgrade to the latest and greatest while we're at it?

Upgrading to GCC 8.2 resulting in compilation failures in glibc because the
new compiler finds more warnings and glibc builds w/ -Werror.  So, I've
gone and upgraded glibc to the latest version as well.

As such, I've also also updated the installed kernel headers to match what
was the longterm kernel when that version of glibc was released.

I also updated to final kernel to v4.19.15.

I also ran into problems with glibc using host system's gmake instead of
hostprep's make... which of course was too old.  So I added symlinks in
bootstrap-early's make scriptlet.

I have not updated gmp, mpfr, mpc, or isl... so this might go boom.

get_sources.sha256sums
src/gcc/SOURCE_URL
src/glibc/SOURCE_URL
src/kernel
utils/bootstrap-cross/go
utils/bootstrap-early/go
utils/bootstrap-stage1/config/kernel-config-32bit
utils/bootstrap-stage1/config/kernel-config-64bit
utils/bootstrap-stage1/go
utils/bootstrap-stage2/go

index a278a89..069ca09 100644 (file)
@@ -13,7 +13,7 @@ dbbcbd72a29a51206677a606ea09dfec83ae25cbbf52dee90306bc04812cd034  src/xen/stubdo
 4e48ea0d83dd9441cc1af04ab18cd6c961b9fa54d5cbf2c2feee038988dea459  src/xen/stubdom/tpm_emulator-0.7.4.tar.gz
 246cf3ffa54985118ec2eea2b8d0c71b92114efe6282c2ae90d65029db4cf93a  src/texinfo/texinfo-6.3.tar.xz
 62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a  src/bc/bc-1.07.1.tar.gz
-067bd9bb3390e79aa45911537d13c3721f1d9d3769931a30c2681bfee66f23a0  src/glibc/glibc-2.25.tar.xz
+b1900051afad76f7a4f73e71413df4826dce085ef8ddb785a945b66d7d513082  src/glibc/glibc-2.28.tar.xz
 4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066  src/zlib/zlib-1.2.11.tar.xz
 26d3986d2bea109d5dc0e4f8c4822a459276cf021125e8c9f23c3cca5d8c850e  src/syslinux/syslinux-6.03.tar.xz
 d91b0295b72a638e4a564f643e4e6d1928779131f628c00f356c13bf336de46f  src/help2man/help2man-1.47.6.tar.xz
@@ -22,7 +22,7 @@ b28dca90428a3b30e650525cdc16255d76bb6ccd65d448be53e620d95d5cc040  src/expect/exp
 f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260  src/ncurses/ncurses-6.0.tar.gz
 b9d20fee979e153d11476cb1e5b176cbaed5669dca19f83fcebba25b1cb5d476  src/ncurses/ncurses-6.0-bash_fix-1.patch
 a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd  src/bzip2/bzip2-1.0.6.tar.gz
-8a8136c235f64c6fef69cac0d73a46a1a09bb250776a050aec8f9fc880bebc17  src/gcc/gcc-7.1.0.tar.bz2
+196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080  src/gcc/gcc-8.2.0.tar.xz
 24f7a48aae6b74755bcbe964ce8bc7240f6ced2141f8d9cf480bc3b3de0d5616  src/check/check-0.11.0.tar.gz
 373e849067f33159470060f35742110ff23b5fba07e42f01fbd0654d7a9a371f  src/tcl/tcl-core8.6.4-src.tar.gz
 617decc6ea09889fb08ede330917a00b16809b8db88c29c31bfbb49cbf88ecc3  src/mpc/mpc-1.0.3.tar.gz
index 1b49991..6fa1579 100644 (file)
@@ -1 +1 @@
-ftp://gcc.gnu.org/pub/gcc/releases/gcc-7.1.0/gcc-7.1.0.tar.bz2
+ftp://gcc.gnu.org/pub/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.xz
index 867fee1..8c95387 100644 (file)
@@ -1 +1 @@
-http://ftp.gnu.org/gnu/glibc/glibc-2.25.tar.xz
+http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.xz
index c04c050..e318512 160000 (submodule)
@@ -1 +1 @@
-Subproject commit c04c050f5bf98845bfe22164b8a1503d696a6e26
+Subproject commit e3185123541204ca4f715eeaaa1f9929c09ff3b4
index 2a0a09d..d1428c9 100755 (executable)
@@ -34,7 +34,13 @@ build()
             #       with here instead of assuming that our run-time kernel is
             #       the same version we're building glibc against.
             #
-            checkout=v4.9.21 \
+            # FIXME: Actually, in this case, we've upgraded glibc after the
+            #        last CLFS update.  We updated glibc to v2.28 (released
+            #        8/1/18), so we're using the latest availabe stable release
+            #        (as of now) of the latest longterm kernel series as of
+            #        8/1/18.
+            #
+            checkout=v4.14.93 \
                 setup_generic kernel || exit 1
 
             # get ready
@@ -458,7 +464,7 @@ if [ "$STAGE1_XEN_ONLY" != "yes" ]; then
     tar -c \
         --exclude ./lost+found \
         --exclude .${ruckus_srcdir#$CLFS} \
-        --exclude .${ruckus_builddir#$CLFS} \
+        --exclude .${ruckus_builddir#$CLFS}* \
         -g $BUILDROOT/baby-bootstrap-cross.snar \
         -C $CLFS . \
         | xz -0 > $BUILDROOT/baby-bootstrap-cross.tar.xz || exit 1
index 9ba93f1..a67b85d 100755 (executable)
@@ -31,12 +31,15 @@ fi
 build()
 {
     case "$1" in
-       rsync)
+       #rsync)
            # rsync seems to have a parallel build problem... (still true as of
            # v3.0.9)
             #
-           JOBCOUNT=1 build_generic $1 --prefix=$PREFIX_HOSTPREP || exit 1
-           ;;
+            # FIXME: I think this is fixed upstream either by rsync, make, or
+            #        automake...
+            #
+           #JOBCOUNT=1 build_generic $1 --prefix=$PREFIX_HOSTPREP || exit 1
+           #;;
         gettext)
            setup_generic $1 &&
            configure_generic $1 --prefix=$PREFIX_HOSTPREP \
@@ -330,6 +333,16 @@ build()
 
            compile_generic $1 || exit 1
            ;;
+        make)
+           build_generic $1 --prefix=$PREFIX_HOSTPREP || exit 1
+
+            # some things look for gnumake or gmake prior to make.  ensure that
+            # our hostprep version gets found and used by making symlinks.
+            pushd $PREFIX_HOSTPREP/bin &&
+            ln -fs make gnumake &&
+            ln -fs make gmake &&
+            popd || exit 1
+            ;;
         dejagnu-bootstrap)
             # special bootstrap... shouldn't necesarily need to be
             # bootstrapped, but for some reason needs to rebuild a texinfo file
index d170bb2..8c75d88 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/i386 4.19.13 Kernel Configuration
+# Linux/i386 4.19.15 Kernel Configuration
 #
 
 #
@@ -263,7 +263,7 @@ CONFIG_SMP=y
 CONFIG_X86_FEATURE_NAMES=y
 CONFIG_X86_MPPARSE=y
 # CONFIG_GOLDFISH is not set
-# CONFIG_RETPOLINE is not set
+CONFIG_RETPOLINE=y
 # CONFIG_INTEL_RDT is not set
 CONFIG_X86_BIGSMP=y
 # CONFIG_X86_EXTENDED_PLATFORM is not set
@@ -4726,10 +4726,10 @@ CONFIG_TYPEC_MUX_PI3USB30532=m
 # USB Type-C Alternate Mode drivers
 #
 CONFIG_TYPEC_DP_ALTMODE=m
+CONFIG_USB_ROLE_SWITCH=m
 CONFIG_USB_ROLES_INTEL_XHCI=m
 CONFIG_USB_LED_TRIG=y
 CONFIG_USB_ULPI_BUS=m
-CONFIG_USB_ROLE_SWITCH=m
 # CONFIG_UWB is not set
 CONFIG_MMC=y
 CONFIG_MMC_BLOCK=m
index 7c7b8c4..9068f76 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.19.13 Kernel Configuration
+# Linux/x86_64 4.19.15 Kernel Configuration
 #
 
 #
@@ -276,7 +276,7 @@ CONFIG_X86_FEATURE_NAMES=y
 # CONFIG_X86_X2APIC is not set
 CONFIG_X86_MPPARSE=y
 # CONFIG_GOLDFISH is not set
-# CONFIG_RETPOLINE is not set
+CONFIG_RETPOLINE=y
 # CONFIG_INTEL_RDT is not set
 # CONFIG_X86_EXTENDED_PLATFORM is not set
 # CONFIG_X86_INTEL_LPSS is not set
@@ -4745,10 +4745,10 @@ CONFIG_TYPEC_MUX_PI3USB30532=m
 # USB Type-C Alternate Mode drivers
 #
 CONFIG_TYPEC_DP_ALTMODE=m
+CONFIG_USB_ROLE_SWITCH=m
 CONFIG_USB_ROLES_INTEL_XHCI=m
 CONFIG_USB_LED_TRIG=y
 CONFIG_USB_ULPI_BUS=m
-CONFIG_USB_ROLE_SWITCH=m
 # CONFIG_UWB is not set
 CONFIG_MMC=y
 CONFIG_MMC_BLOCK=m
index 9af1b9e..57c6bf9 100755 (executable)
@@ -1065,7 +1065,7 @@ if [ "$STAGE1_XEN_ONLY" != "yes" ]; then
     tar -c \
         --exclude ./lost+found \
         --exclude .${ruckus_srcdir#$CLFS} \
-        --exclude .${ruckus_builddir#$CLFS} \
+        --exclude .${ruckus_builddir#$CLFS}* \
         -g $BUILDROOT/baby-bootstrap-stage1.snar \
         -C $CLFS . \
         | xz -0 > $BUILDROOT/baby-bootstrap-stage1.tar.xz || exit 1
index 79983a5..8dd8c79 100755 (executable)
@@ -200,7 +200,13 @@ build()
             #       with here instead of assuming that our run-time kernel is
             #       the same version we're building glibc against.
             #
-            checkout=v3.14.21 \
+            # FIXME: Actually, in this case, we've upgraded glibc after the
+            #        last CLFS update.  We updated glibc to v2.28 (released
+            #        8/1/18), so we're using the latest availabe stable release
+            #        (as of now) of the latest longterm kernel series as of
+            #        8/1/18.
+            #
+            checkout=v4.14.93 \
                 setup_generic kernel || exit 1
 
             # get ready