неявное объявление функции "strcmp" в исходном коде ядра - PullRequest
0 голосов
/ 25 июня 2019

При сборке модуля ядра для AMDPowerProfiler-7.02 я обнаружил эту ошибку

make -C /lib/modules/4.18.0-24-generic/build M=/usr/src/AMDPowerProfiler-7.02  EXTRA_CFLAGS="-I/usr/src/AMDPowerProfiler-7.02/inc -DKERNEL_MODULE -DLINUX -D_LINUX " modules
make[1]: Entering directory '/usr/src/linux-headers-4.18.0-24-generic'
  CC [M]  /usr/src/AMDPowerProfiler-7.02/src/PwrAccessPmcData.o
  CC [M]  /usr/src/AMDPowerProfiler-7.02/src/PwrCollectSmuCounters.o
  CC [M]  /usr/src/AMDPowerProfiler-7.02/src/PwrCommonConfig.o
  CC [M]  /usr/src/AMDPowerProfiler-7.02/src/PwrCommonHelper.o
  CC [M]  /usr/src/AMDPowerProfiler-7.02/src/PwrCounterAccessInterface.o
  CC [M]  /usr/src/AMDPowerProfiler-7.02/src/PwrDriverUtils.o
  CC [M]  /usr/src/AMDPowerProfiler-7.02/src/PwrHwAccessInterface.o
  CC [M]  /usr/src/AMDPowerProfiler-7.02/src/PwrProfCoreUtils.o
In file included from /usr/src/AMDPowerProfiler-7.02/inc/PwrProfCoreUtils.h:12:0,
             from /usr/src/AMDPowerProfiler-7.02/src/PwrProfCoreUtils.c:9:
./arch/x86/include/asm/ftrace.h: In function ‘arch_syscall_match_sym_name’:
./arch/x86/include/asm/ftrace.h:58:10: error: implicit declaration of function ‘strcmp’ [-Werror=implicit-function-declaration]
  return !strcmp(sym + 3, name + 3) ||
         ^~~~~~
./arch/x86/include/asm/ftrace.h:59:5: error: implicit declaration of function ‘strncmp’ [-Werror=implicit-function-declaration]
   (!strncmp(sym, "__x64_", 6) && !strcmp(sym + 9, name + 3)) ||
     ^~~~~~~
cc1: some warnings being treated as errors

Когда я искал ftrace.h, я обнаружил, что это исходный файл ядра.Итак, я открыл /usr/src/linux-headers-4.18.0-24/arch/x86/include/asm/ftrace.h, который соответствует номеру ядра, и добавил

#include <string.h>

поверх него.Далее я получаю эту ошибку:

./arch/x86/include/asm/ftrace.h:2:10: fatal error: string.h: No such file or directory
 #include <string.h>

Я знаю, что связано с g ++.Как я могу это исправить?

...