在MAC上编译XV6

时间:2016-08-20 08:50:53

标签: macos makefile operating-system xv6

在编译XV6之前,我已阅读this page来构建我自己的编译器工具链。结果很相似。

public class Users
{
    public  int UserId { get; set; }

    public string UserName { get; set; }
    public  string Password { get; set; }

    public DateTime InsertTime { get; set; }

    public ICollection<UsersUserGroup> UsersUserGroups { get; set; }

    public int UserScore { get; set; }
}

但是当我开始编译XV6时,会发生错误:

➜  xv6-public git:(master) ✗ i386-jos-elf-objdump -i
BFD header file version (GNU Binutils) 2.27
elf32-i386
 (header little endian, data little endian)
  i386

➜  xv6-public git:(master) ✗ i386-jos-elf-gcc -v
Using built-in specs.
COLLECT_GCC=i386-jos-elf-gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i386-jos-elf/6.1.0/lto-wrapper
Target: i386-jos-elf
Configured with: ../configure --prefix=/usr/local --target=i386-jos-elf --disable-werror --disable-libssp --disable-libmudflap --with-newlib 

--without-headers --enable-languages=c CC=/usr/bin/gcc
    Thread model: single
    gcc version 6.1.0 (GCC)

我搜索了很多博客,没有人有这个问题。 我使用MAC OS X El Capitan(10.11.3)

3 个答案:

答案 0 :(得分:4)

您不需要编译自己的交叉编译器(和工具)。它与osx端口一起工作。

sudo port install i386-elf-gcc gdb

我使用Sierra和xv6完美搭配:

make TOOLCHAIN=i386-elf- qemu-nox

调试也有效。

作为旁注,您需要卸载texinfo以安装i386-elf-binutils(位于i386-elf-gcc的依赖链中)。该数据包的文档中存在一些不兼容的代码。

答案 1 :(得分:0)

针对macOS Big Sur(11.0+)的更新

如果您使用的是Homebrew,则以下设置应适用

brew install qemu x86_64-elf-gcc

export TOOLPREFIX=x86_64-elf- 
export QEMU=qemu-system-x86_64 

make qemu

答案 2 :(得分:-1)

我必须从here安装MacPorts然后使用这两个命令:

sudo port install i386-elf-gcc gdb

make TOOLPREFIX=i386-elf- qemu-nox