gcc question

Segher Boessenkool segher@kernel.crashing.org
Wed Sep 8 16:20:25 GMT 2021


Hi!

On Wed, Sep 08, 2021 at 03:06:54PM +0000, HON  LUU wrote:
>       + The modified gcc command did not compile. The error message would look like this.
> In file included from ././include/linux/compiler_types.h:58,
>                  from <command-line>:
> ./arch/x86/include/asm/jump_label.h: In function ‘unmap_user_buf.part.3’:
> ./include/linux/compiler-gcc.h:305:38: error: asm operand 0 probably doesn’t match constraints [-Werror]
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                       ^~~
> ./arch/x86/include/asm/jump_label.h:38:2: note: in expansion of macro ‘asm_volatile_goto’
>   asm_volatile_goto("1:"
>   ^~~~~~~~~~~~~~~~~
> ./include/linux/compiler-gcc.h:305:38: error: impossible constraint in ‘asm’
> #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                       ^~~
> ./arch/x86/include/asm/jump_label.h:38:2: note: in expansion of macro ‘asm_volatile_goto’
>   asm_volatile_goto("1:"
>   ^~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors

(Use LANG=C or LC_ALL=C to not get those weird quotes, just like you
would use this to get error messages that aren't translated, that the
compiler developers can actually read :-) )

You need to show the full code of the asm_volatile_goto, and the
declarations of everything used in its operands, for us to get a handle
on what is going on here.  Bonus points if you manage to make a stand-
alone compilable testcase that shows the problem.

GL;HF,


Segher


More information about the Gcc-help mailing list