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

Reply via email to