According to the comment and commit message, there are issues compiling
with IBT and/or compressed debug sections. Therefore, the condition
should be restricted to when those are enabled.
Signed-off-by: Alex Xu (Hello71) <[email protected]>
---
arch/x86/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index be0b95e51df6..e5af1088420e 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -2847,7 +2847,7 @@ config X86_X32_ABI
# compressed debug sections to x86_x32 properly:
# https://github.com/ClangBuiltLinux/linux/issues/514
# https://github.com/ClangBuiltLinux/linux/issues/1141
- depends on $(success,$(OBJCOPY) --version | head -n1 | grep -qv llvm)
+ depends on !X86_KERNEL_IBT || !DEBUG_INFO_COMPRESSED || $(success,$(OBJCOPY) --version | head -n1 | grep -qv llvm)
help
Include code to run binaries for the x32 native 32-bit ABI
for 64-bit processors. An x32 process gets access to the
--
2.36.1
On 7/1/22 14:04, Alex Xu (Hello71) wrote:
> According to the comment and commit message, there are issues compiling
> with IBT and/or compressed debug sections. Therefore, the condition
> should be restricted to when those are enabled.
This whole situation is gross. We code in the vDSO that needs to
dereference a genuinely 64-bit pointer. The x32 toolchain doesn't
understand this, so we have a massive hack using objcopy. I see a few
solutions:
1. Keep the hack alive, with further hacks like this patch.
2. Drop the x32 vDSO.
3. Drop x32.
4. Get gcc and/or clang to add actual support for this.
I admit I'm partial to solution #3. I wonder how practical #4 is.
--Andy