On Fri, Feb 12, 2021 at 7:27 AM Peter Zijlstra <[email protected]> wrote:
>
> On Fri, Feb 12, 2021 at 09:40:59AM -0500, Steven Rostedt wrote:
> > On Thu, 11 Feb 2021 13:48:48 -0800
> > Jason Gerecke <[email protected]> wrote:
> >
> > > When compiling an external kernel module with `-O0` or `-O1`, the 
> > > following
> > > compile error may be reported:
> > >
> > >     ./arch/x86/include/asm/jump_label.h:25:2: error: impossible 
> > > constraint in ‘asm’
> > >        25 |  asm_volatile_goto("1:"
> > >           |  ^~~~~~~~~~~~~~~~~
> > >
> > > It appears that these lower optimization levels prevent GCC from detecting
> > > that the key/branch arguments can be treated as constants and used as
> > > immediate operands. To work around this, explicitly add the `const` label.
> >
> > Yes this makes sense. The "i" constraint needs to be a constant.
>
> Right, using -O[01] seems a little daft though. But yeah, that patch is
> correct and won't cause harm.
>
> I've queued it for after the next merge window.

Thanks. Only reason I even tried compiling at those levels was to play
around with GCC's new static analyzer options. They seem to be
ineffective at more normal optimization levels.

Reply via email to