Re: 3.15.2 build error on AMD64

Borislav Petkov
2014-06-29T19:44:09Z

On Sun, Jun 29, 2014 at 08:06:36PM +0100, Nick Warne wrote:
> OK, I just spent three months building GCC 4.7.4 today (thank god the
> world cup is on to watch instead)

Yep, the world cup helps a lot with tedious debugging work. :-)

> and 3.15.2 built fine, and server is up and
> running great.
>
> This then is an old(er) version of GCC issue (but I dunno what).

Right, so the error points at

__spin_lock_mb_cache_entry(struct mb_cache_entry *ce)
{
spin_lock(bgl_lock_ptr(mb_cache_bg_lock, <---
(hash_64((unsigned long)ce, __builtin_log2(8)))));
}

somewhere here and I'd guess that old gcc is issuing some lib function
which uses SSE. And after we disabled all FPU stuff in the kernel with
b399fe355b30 ("x86: Disable generation of traditional x87 instructions")
that would issue such an error.

And I was about to point at that __builtin_log2 thing which looked
suspicious and found this by chance:

http://lkml.kernel.org/r/1401471304-37479-1-git-send-email-tmac@hp.com

You could test this patch with that old gcc 4.2.x as it looks like a
good candidate for a fix for your issue.

:-)

--
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--