I'm not going to ask why. I'm not even going to tell you
that linux kernels are usually tied pretty closely to different versions of gcc, which in turn generally require different versions of libc, which in turn ...
To remove the error (since all that matters is a binary gets spit out of the compiler) just remove the offending line. Yes that's line 82 in include/linux/genhd.h. The line should have said:
No, it will not break anything (seriously, it is a difference in how GCC has evolved).
P.S.
If you are trying such a daunting task, expect more of these.