On 4/18/2024 2:37 AM, Naresh Kamboju wrote:
The Linux next building selftests with gcc-13 found these build warnings and errors.
Reported-by: Linux Kernel Functional Testing lkft@linaro.org
Build log:
Path: selftests/resctrl/resctrl_tests/
In file included from resctrl.h:24, from cat_test.c:11: cat_test.c: In function 'noncont_cat_run_test': ../kselftest.h:74:9: error: impossible constraint in 'asm' 74 | __asm__ __volatile__ ("cpuid\n\t" \ | ^~~~~~~ cat_test.c:308:17: note: in expansion of macro '__cpuid_count' 308 | __cpuid_count(0x10, 1, eax, ebx, ecx, edx); | ^~~~~~~~~~~~~ ../kselftest.h:74:9: error: impossible constraint in 'asm' 74 | __asm__ __volatile__ ("cpuid\n\t" \ | ^~~~~~~ cat_test.c:310:17: note: in expansion of macro '__cpuid_count' 310 | __cpuid_count(0x10, 2, eax, ebx, ecx, edx); | ^~~~~~~~~~~~~
This is unexpected to me. kselftest.h intends to and still does define __cpuid_count() exactly the same as gcc does (in gcc/config/i386/cpuid.h):
255 #define __cpuid_count(level, count, a, b, c, d) \ 256 __asm__ __volatile__ ("cpuid\n\t" \ 257 : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \ 258 : "0" (level), "2" (count))
Reinette