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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e0842dd0-71d3-4de0-a2ee-e83493df890b@linuxfoundation.org>
Date: Wed, 9 Apr 2025 15:41:51 -0600
From: Shuah Khan <skhan@...uxfoundation.org>
To: Ingo Molnar <mingo@...nel.org>
Cc: tglx@...utronix.de, mingo@...hat.com, bp@...en8.de,
 dave.hansen@...ux.intel.com, x86@...nel.org, linux-kernel@...r.kernel.org,
 Shuah Khan <skhan@...uxfoundation.org>, hpa@...or.com
Subject: Re: [PATCH] x86/Kconfig: Fix dependency for X86_DEBUG_FPU

On 4/9/25 15:34, Ingo Molnar wrote:
> 
> * Shuah Khan <skhan@...uxfoundation.org> wrote:
> 
>> On 4/8/25 00:54, Ingo Molnar wrote:
>>>
>>> * Shuah Khan <skhan@...uxfoundation.org> wrote:
>>>
>>>> Compile fails when X86_DEBUG_FPU is enabled and X86_REQUIRED_FEATURE_FPU is
>>>> disabled. Add explicit dependency on X86_REQUIRED_FEATURE_FPU to fix it.
>>>>
>>>> ../arch/x86/kernel/fpu/regset.c:411:(.text+0x4cf2f): undefined reference to `fpregs_soft_get'
>>>> ld: vmlinux.o: in function `fpregs_set':
>>>> ../arch/x86/kernel/fpu/regset.c:445:(.text+0x4d0da): undefined reference to `fpregs_soft_set'
>>>> ld: vmlinux.o: in function `copy_fpstate_to_sigframe':
>>>> ../arch/x86/kernel/fpu/signal.c:197:(.text+0x4da98): undefined reference to `fpregs_soft_get'
>>>>
>>>
>>> So I cannot reproduce this build failure on either v6.14 or v6.15-rc1:
>>>
>>>     starship:~/tip> git describe
>>>     v6.15-rc1
>>>
>>>     starship:~/tip> grep -E 'X86_32=|M486SX=|X86_REQUIRED_FEATURE|X86_DEBUG_FPU' .config
>>>     CONFIG_X86_32=y
>>>     CONFIG_M486SX=y
>>>     CONFIG_X86_REQUIRED_FEATURE_ALWAYS=y
>>>     CONFIG_X86_DEBUG_FPU=y
>>>
>>>     starship:~/tip> make -j128 ARCH=i386 bzImage modules
>>>
>>>     ...
>>>     Kernel: arch/x86/boot/bzImage is ready  (#5)
>>>
>>>> Signed-off-by: Shuah Khan <skhan@...uxfoundation.org>
>>>> ---
>>>> 6.14 compile worked without X86_REQUIRED_FEATURE_FPU enabled. Might be a
>>>> new dependency. Enabling X86_REQUIRED_FEATURE_FPU fixed it for me on my
>>>> test system.

Right. That is what I meant by new dependency

>>>
>>> So vanilla v6.14 does not have X86_REQUIRED_FEATURE Kconfig flags, at
>>> all:
>>>
>>>     starship:~/tip> grep FPU .config
>>>     CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y
>>>     CONFIG_X86_DEBUG_FPU=y
>>>     # CONFIG_TEST_FPU is not set
>>>
>>> Because X86_REQUIRED_FEATURE_FPU is a new v6.15-rc1 feature, introduced
>>> via:
>>>
>>>     3d37d9396eb3 ("x86/cpufeatures: Add {REQUIRED,DISABLED} feature configs")
>>>
>>> I have no doubt you are seeing this build failure - but I think there
>>> might be some other .config detail required to reproduce it, not
>>> mentioned in your changelog. Could you please send the config you used?
>>>
>>
>> Config attached.
>>
>> grep _FPU /boot/config-6.14.0+
>> CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y
>> CONFIG_X86_DEBUG_FPU=y
>> # CONFIG_TEST_FPU is not set
>>
>> I noticed you are building ARCH=i386 - can you reproduce this
>> with x86_64? That is what I am building.
>>
>> thanks,
>> -- Shuah
> 
>> #
>> # Automatically generated file; DO NOT EDIT.
>> # Linux/x86 6.14.0 Kernel Configuration
>> #
>> CONFIG_CC_VERSION_TEXT="gcc (Debian 14.2.0-17) 14.2.0"
> 
> Is this a vanilla v6.14 kernel? Because on upstream v6.14 'make
> oldconfig' gives me:
> 
>    Generate BTF type information (DEBUG_INFO_BTF) [N/y/?] (NEW)
> 
> Maybe different build environment?
> 
> ... and after answering that with 'N' the build succeeds:
> 
>    LD      arch/x86/boot/setup.elf
>    OBJCOPY arch/x86/boot/setup.bin
>    BUILD   arch/x86/boot/bzImage
> Kernel: arch/x86/boot/bzImage is ready  (#3)

Yes it is vanilla

> 
> More importantly, X86_REQUIRED_FEATURE_FPU *does not exist* in the
> vanilla v6.14 kernel, it's a new v6.15 feature. So this part of your
> changelog totally doesn't apply to a v6.14 kernel:

I started with vanilla 6.14 kernel running oldconfig on it.
In this case if X86_DEBUG_FPU is enabled in the oldconfig,
should the config generated for 6.15 add X86_REQUIRED_FEATURE_FPU.

It appears there is a dependency between X86_DEBUG_FPU and
the newly added X86_REQUIRED_FEATURE_FPU

thanks,
-- Shuah

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ