gpt4 book ai didi

linux - 编译 Linux 内核 2.6.39.4 时出错

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:40 26 4
gpt4 key购买 nike

我正在进行一个系统调用,计算 FCFS 调度算法中的平均等待时间。

按照本指南进行操作后,我对相关文件进行了更改并制作了此程序。 现在在编译内核时,它显示了这个错误。

CC      arch/x86/lib/strstr_32.o
AS arch/x86/lib/thunk_32.o
CC arch/x86/lib/usercopy_32.o
AR arch/x86/lib/lib.a
LD vmlinux.o
MODPOST vmlinux.o
WARNING: modpost: Found 31 section mismatch(es).
To see
full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
kernel/built-in.o: In function `sys_atvfcfs':
(.text+0x3e27e): undefined reference to `__floatsisf'
kernel/built-in.o: In function `sys_atvfcfs':
(.text+0x3e286): undefined reference to `__fixsfsi'
make: *** [.tmp_vmlinux1] Error 1

这是我的程序

#include <linux/linkage.h>

asmlinkage long sys_atvfcfs(int at[], int bt[], int n)
{

int i=0;
int j,t,wt[n],sum,q;

float avgwt;


for(j=i+1;j<n;j++)
{
if(at[i]>at[j])
{
t=at[i];
at[i]=at[j];
at[j]=t;
q=bt[i];
bt[i]=bt[j];
bt[j]=q;
}
}

wt[0]=0;
sum=0;

for(i=0;i<n-1;i++)
{

wt[i+1]=wt[i]+bt[i];
sum=sum+(wt[i+1]-at[i]);

}

avgwt=sum/n;

return avgwt;
}

谁能解释一下问题出在哪里?

最佳答案

Google 搜索“linux 内核 float 用法”。这是一件特别的事情。如果可以避免使用浮点类型,请避免使用它。

关于linux - 编译 Linux 内核 2.6.39.4 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10350363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com