Re: Compile error: arch/x86/kernel/entry_32.S:1422: Error: .sizeexpression does not evaluate to a constant

From: Steven Rostedt
Date: Thu Mar 17 2011 - 18:19:21 EST


On Thu, Mar 17, 2011 at 05:41:39PM -0400, Curt Howland wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
>
> arch/x86/kernel/entry_32.S: Assembler messages:
> arch/x86/kernel/entry_32.S:1422: Error: .size expression does not
> evaluate to a constant make[3]: *** [arch/x86/kernel/entry_32.o]
> Error 1
>
> I searched for this error and saw this had been posted to the LKML:
>
> http://www.gossamer-threads.com/lists/linux/kernel/1347760
>
> This was when the error happened in -rc7, but it was not fixed
> for -rc8 or the released stable.
>
> I'm just a user, not a developer, but I figure if its happening to me
> with very generic tools it may be happening to other people who don't
> use git, who don't apply patches, and such.
>
> I don't have the warewithall to subscribe to the LKML, so I would be
> obliged if you would copy me on any replies. I would be glad to
> supply any further information if needed.

Thanks for reporting. This is a known problem. Unfortunately, it is due
to the new binutils (version 2.21) that decided to make something that
it use to ingore into something that is now an error.

The problem is that we have macros that create functions for us in
assembly:

ENTRY(foo)
[ body of foo ]
END(foo)

But there also are some areas where we had a typo:

ENTRY(foo)
[ body of foo ]
END(xfoo)

binutils version 2.20 and before ignored this little bug. Version 2.21
now fails with the error you get.

Sure we can go about fixing this bug, but because of this stupid
decision by the developers of binutils, older kernels will no longer
build. The correct thing for them to have done, was just to make it into
a warning and not fail the entire build.

-- Steve

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/