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