On Tue, Jan 23, 2018 at 12:28 PM, Corbin Bird <corbinb...@charter.net> wrote: > > > FYI : > Just tried a different compile. > Switched off expert and flipped the CPU to "Generic x86_64" ( no other > changes ). > > It compiled. ?????? > > So ... what you choose for CPU in the kernel determines if the > ext2/ext3/ext4 fs driver will compile. > > Been using Gentoo / "sys-kernel/gentoo-sources" w/experimental for 3+ > years now. > First time the CPU choice has caused a problem. > > Suspect that a mismatch of the "Spectre / Meltdown" patches that have > somehow gotten into the ext4 fs driver and the code for specific CPUs. > > Wonderful ... just finished a complete reload of Gentoo. Now have to > redo it again ... > ... the mistake? I used ext2/ext3 for the fs. >
Abandoning ext4 over retpolines/etc seems a bit drastic. My guess is that there is a bug in the latest kernel that will get fixed, or maybe a bug in gcc (which needs to be patched for spectre anyway). These Spectre changes are being merged and it has been a real mess. The vulnerability is relatively serious so there is a lot of pressure to do something, but the changes aren't trivial so they could contain bugs or expose compiler bugs. FWIW upstream 4.9.77 builds just fine for me, If you want to mess with building alternate kernels to debug this here are some instructions I created for this: As a test you might consider the following: mkdir /someplace cd /someplace git clone -b linux-4.9.y git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git . mkdir /var/tmp/linux cp /path/to/config /var/tmp/linux/.config make O=/var/tmp/linux oldconfig make O=/var/tmp/linux -j# That will build the latest stable upstream kernel. Depending on what you find you can do: git checkout v4.9.76 rm -r /var/tmp/linux mkdir /var/tmp/linux cp /path/to/config /var/tmp/linux/.config make O=/var/tmp/linux oldconfig make O=/var/tmp/linux -j# That will see if 4.9.76 fails. You could also substitute any version you want (including a 4.14 kernel, or an earlier 4.9 kernel). This will give you a sense of whether your toolchain is just entirely broken, or if there is an issue with the objtool changes. Note that you can build away as much as you want without having to install any of this - so it won't affect your system at all. In fact, the instructions above will work just fine if you run them as non-root, as long as you clone the git sources and put the temp directory someplace your non-root user has access to. -- Rich