nathanchance wrote:

> CC @nathanchance @nickdesaulniers for more information

This will indeed break building the Linux kernel for x86_64 at least in my 
brief test, mainly because it uses the preprocessor for assembly files but 
there are some macros that are included in both C and assembly that trigger it 
as well. For example, all these warnings will get upgraded to errors with 
`CONFIG_WERROR` (on by default with `defconfig` and `allmodconfig`):

```
In file included from arch/x86/kernel/acpi/wakeup_64.S:11:
arch/x86/include/asm/nospec-branch.h:80:7: warning: '$' in identifier; did you 
mean to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   80 |         movq    $-1, PER_CPU_VAR(__x86_call_depth);
      |                 ^
arch/x86/include/asm/nospec-branch.h:84:6: warning: '$' in identifier; did you 
mean to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   84 |         bts     $63, %rax;                                      \
      |                 ^
arch/x86/include/asm/nospec-branch.h:88:7: warning: '$' in identifier; did you 
mean to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   88 |         movb    $0xfc, %al;                                     \
      |                 ^
arch/x86/include/asm/nospec-branch.h:89:6: warning: '$' in identifier; did you 
mean to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   89 |         shl     $56, %rax;                                      \
      |                 ^
arch/x86/include/asm/nospec-branch.h:94:7: warning: '$' in identifier; did you 
mean to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   94 |         sarq    $5, PER_CPU_VAR(__x86_call_depth);              \
      |                 ^
arch/x86/include/asm/nospec-branch.h:142:6: warning: '$' in identifier; did you 
mean to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  142 |         mov     $(nr/2), reg;                           \
      |                 ^
arch/x86/include/asm/nospec-branch.h:146:6: warning: '$' in identifier; did you 
mean to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  146 |         add     $(BITS_PER_LONG/8) * 2, %_ASM_SP;       \
      |                 ^
arch/x86/include/asm/nospec-branch.h:176:6: warning: '$' in identifier; did you 
mean to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  176 |         add     $(BITS_PER_LONG/8), %_ASM_SP;           \
      |                 ^
arch/x86/kernel/acpi/wakeup_64.S:22:7: warning: '$' in identifier; did you mean 
to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   22 |         movq    $0x123456789abcdef0, %rdx
      |                 ^
arch/x86/kernel/acpi/wakeup_64.S:27:7: warning: '$' in identifier; did you mean 
to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   27 |         movq $0xbad6d61676963, %rcx
      |              ^
arch/x86/kernel/acpi/wakeup_64.S:31:7: warning: '$' in identifier; did you mean 
to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   31 |         movw    $__KERNEL_DS, %ax
      |                 ^
arch/x86/kernel/acpi/wakeup_64.S:51:7: warning: '$' in identifier; did you mean 
to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   51 |         subq    $8, %rsp
      |                 ^
arch/x86/kernel/acpi/wakeup_64.S:55:7: warning: '$' in identifier; did you mean 
to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   55 |         movq    $saved_context, %rax
      |                 ^
arch/x86/kernel/acpi/wakeup_64.S:74:7: warning: '$' in identifier; did you mean 
to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   74 |         movq    $.Lresume_point, saved_rip(%rip)
      |                 ^
arch/x86/kernel/acpi/wakeup_64.S:82:7: warning: '$' in identifier; did you mean 
to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   82 |         addq    $8, %rsp
      |                 ^
arch/x86/kernel/acpi/wakeup_64.S:83:7: warning: '$' in identifier; did you mean 
to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   83 |         movl    $3, %edi
      |                 ^
arch/x86/kernel/acpi/wakeup_64.S:93:7: warning: '$' in identifier; did you mean 
to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   93 |         movq    $saved_context, %rax
      |                 ^
arch/x86/kernel/acpi/wakeup_64.S:130:7: warning: '$' in identifier; did you 
mean to enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  130 |         addq    $8, %rsp
      |                 ^
18 warnings generated.

In file included from arch/x86/kernel/ftrace_64.S:12:
...
arch/x86/kernel/ftrace_64.S:82:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   82 |         subq $(FRAME_SIZE), %rsp
      |              ^
arch/x86/kernel/ftrace_64.S:90:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   90 |         movq $0, ORIG_RAX(%rsp)
      |              ^
arch/x86/kernel/ftrace_64.S:114:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  114 |         subq $MCOUNT_INSN_SIZE, %rdi
      |              ^
arch/x86/kernel/ftrace_64.S:130:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  130 |         addq $MCOUNT_REG_SIZE-\save, %rsp
      |              ^
arch/x86/kernel/ftrace_64.S:175:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  175 |         movq $0, CS(%rsp)
      |              ^
arch/x86/kernel/ftrace_64.S:229:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  229 |         movq $__KERNEL_DS, %rcx
      |              ^
arch/x86/kernel/ftrace_64.S:231:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  231 |         movq $__KERNEL_CS, %rcx
      |              ^
arch/x86/kernel/ftrace_64.S:307:6: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  307 |         add $8, %rsp
      |             ^
arch/x86/kernel/ftrace_64.S:358:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  358 |         subq $(FRAME_SIZE), %rsp
      |              ^
arch/x86/kernel/ftrace_64.S:371:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  371 |         addq $(FRAME_SIZE), %rsp
      |              ^
18 warnings generated.

arch/x86/lib/clear_page_64.S:20:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   20 |         movl $4096/8,%ecx
      |              ^
arch/x86/lib/clear_page_64.S:29:9: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   29 |         movl   $4096/64,%ecx
      |                ^
arch/x86/lib/clear_page_64.S:50:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   50 |         movl $4096,%ecx
      |              ^
arch/x86/lib/clear_page_64.S:69:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   69 |         cmpq $64,%rcx
      |              ^
arch/x86/lib/clear_page_64.S:72:6: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   72 |         cmp $8,%ecx
      |             ^
arch/x86/lib/clear_page_64.S:90:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   90 |         addq $8,%rdi
      |              ^
arch/x86/lib/clear_page_64.S:91:6: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   91 |         sub $8,%ecx
      |             ^
arch/x86/lib/clear_page_64.S:93:6: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
   93 |         cmp $8,%ecx
      |             ^
arch/x86/lib/clear_page_64.S:107:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  107 |         addq $64,%rdi
      |              ^
arch/x86/lib/clear_page_64.S:108:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  108 |         subq $64,%rcx
      |              ^
arch/x86/lib/clear_page_64.S:109:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  109 |         cmpq $64,%rcx
      |              ^
arch/x86/lib/clear_page_64.S:111:7: warning: '$' in identifier; did you mean to 
enable '-fdollars-in-identifiers'? [-Wdollar-in-identifier]
  111 |         cmpl $8,%ecx
      |              ^
12 warnings generated.
```

> but even if the kernel does, is it a significant imposition to pass 
> `-fdollars-in-identifiers` to enable the extension explicitly?

I am sure that would not be too much of a problem (as long as I have sufficient 
justification, it is unfortunate if there is a break from GCC's behavior) but 
it will take some time to get it merged and backported to all supported 
releases.

https://github.com/llvm/llvm-project/pull/135407
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to