Operating system mit6.828 jos lab1 qemu三重断层

Operating system mit6.828 jos lab1 qemu三重断层,operating-system,Operating System,我用指南准备工具链。 运行lab1时出现三重故障: 当我注释掉调用memset()和monitor()时,就像下面的代码一样,它只是运行,但键盘不工作: 工具链 gcc版本6.4.0 20170724(Debian 6.4.0-2) GNU汇编程序(用于Debian的GNU Binutils)2.29 GNU ld(用于Debian的GNU Binutils)2.29 实验室 6.828/2017年秋季 qemu -b 6.828-2.3.0 我将编译后的内核与其他内核进行比

我用指南准备工具链。 运行
lab1
时出现三重故障:

当我注释掉调用
memset()
monitor()
时,就像下面的代码一样,它只是运行,但键盘不工作:

  • 工具链

    • gcc版本6.4.0 20170724(Debian 6.4.0-2)

    • GNU汇编程序(用于Debian的GNU Binutils)2.29

    • GNU ld(用于Debian的GNU Binutils)2.29

  • 实验室

    • 6.828/2017年秋季
  • qemu

    • -b 6.828-2.3.0
我将编译后的内核与其他内核进行比较。我发现内核的elf格式有更多的部分。像
.got
.got.plt
,只有图片中的IDX5 6 7 8

我想一定是工具链出了问题。我能用新版本的gcc做这个实验吗?我该怎么做才能解决这个问题?谢谢

好的,现在我来了

与xv6的makefile相比,我发现在lab1的GNUmakefile中不存在gcc选项

因此,将
-no pic
添加到GNUMakefile中的
CFLAGS

这将完成


我会发电子邮件给6.828的员工。当他们更改文件时,我将删除此问题。

很抱歉输入错误。它应该是
-fno pic