lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <176924660698.510.2856740193141790742.tip-bot2@tip-bot2>
Date: Sat, 24 Jan 2026 09:23:26 -0000
From: "tip-bot2 for Nathan Chancellor" <tip-bot2@...utronix.de>
To: linux-tip-commits@...r.kernel.org
Cc: Nathan Chancellor <nathan@...nel.org>, Ingo Molnar <mingo@...nel.org>,
 "H. Peter Anvin (Intel)" <hpa@...or.com>, x86@...nel.org,
 linux-kernel@...r.kernel.org
Subject:
 [tip: x86/entry] x86/entry/vdso32: Omit '.cfi_offset eflags' for LLVM < 16

The following commit has been merged into the x86/entry branch of tip:

Commit-ID:     3e30278e0c71808e156cac8da5895d636ce819d5
Gitweb:        https://git.kernel.org/tip/3e30278e0c71808e156cac8da5895d636ce819d5
Author:        Nathan Chancellor <nathan@...nel.org>
AuthorDate:    Fri, 23 Jan 2026 16:20:28 -07:00
Committer:     Ingo Molnar <mingo@...nel.org>
CommitterDate: Sat, 24 Jan 2026 10:18:28 +01:00

x86/entry/vdso32: Omit '.cfi_offset eflags' for LLVM < 16

After commit:

  884961618ee5 ("x86/entry/vdso32: Remove open-coded DWARF in sigreturn.S")

building arch/x86/entry/vdso/vdso32/sigreturn.S with LLVM 15 fails with:

  <instantiation>:18:20: error: invalid register name
   .cfi_offset eflags, 64
                     ^
  arch/x86/entry/vdso/vdso32/sigreturn.S:33:2: note: while in macro instantiation
   STARTPROC_SIGNAL_FRAME 8
   ^

Support for eflags as an argument to .cfi_offset was added in the LLVM
16 development cycle:

    https://github.com/llvm/llvm-project/commit/67bd3c58c0c7389e39c5a2f4d3b1a30459ccf5b7 [1]

Only add this .cfi_offset directive if it is supported by the assembler
to clear up the error.

[ mingo: Tidied up the changelog and the comment a bit ]

Fixes: 884961618ee5 ("x86/entry/vdso32: Remove open-coded DWARF in sigreturn.S")
Signed-off-by: Nathan Chancellor <nathan@...nel.org>
Signed-off-by: Ingo Molnar <mingo@...nel.org>
Acked-by: H. Peter Anvin (Intel) <hpa@...or.com>
Link: https://patch.msgid.link/20260123-x86-vdso32-wa-llvm-15-cfi-offset-eflags-v1-1-0f412e3516a4@kernel.org
---
 arch/x86/entry/vdso/vdso32/sigreturn.S | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/x86/entry/vdso/vdso32/sigreturn.S b/arch/x86/entry/vdso/vdso32/sigreturn.S
index 25b0ac4..b433353 100644
--- a/arch/x86/entry/vdso/vdso32/sigreturn.S
+++ b/arch/x86/entry/vdso/vdso32/sigreturn.S
@@ -22,7 +22,17 @@
 	CFI_OFFSET	cs,     IA32_SIGCONTEXT_cs
 	CFI_OFFSET	ss,     IA32_SIGCONTEXT_ss
 	CFI_OFFSET	ds,     IA32_SIGCONTEXT_ds
+/*
+ * .cfi_offset eflags requires LLVM 16 or newer:
+ *
+ *   https://github.com/llvm/llvm-project/commit/67bd3c58c0c7389e39c5a2f4d3b1a30459ccf5b7
+ *
+ * Check for 16.0.1 to ensure the support is present, as 16.0.0 may be a
+ * prerelease version.
+ */
+#if defined(CONFIG_AS_IS_GNU) || (defined(CONFIG_AS_IS_LLVM) && CONFIG_AS_VERSION >= 160001)
 	CFI_OFFSET	eflags, IA32_SIGCONTEXT_flags
+#endif
 .endm
 
 	.text

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ