一、前言

  我编译bochs的目的是为了启用gdb调试功能。bochs提供的调试器功能较简单,开发过程中还是gdb更趁手。本文记录的方法是我一点点尝试出来的,参考了网上一些零碎资料。整个过程虽然简单但是整体比较凌乱,特别是需要对bochs的官方源码包做好几处修改。目前不太想再花时间优化过程,能编译出来就好。如果有同好有更简单的方法,有劳和我分享一下吧。
  我的环境:osx 10.9,bochs 2.6.2、使用x11作为界面库。

二、安装X11

  下载XQuartz安装包,并安装。

三、配置编译环境

export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
export CPP=/usr/bin/cpp
export LD=/usr/bin/g++
export CFLAGS=-I/usr/X11/include
export PREFIX=/Users/boxcounter/opt/bochs-gdb

  根据我的试验,使用brew安装的gcc编译会报错,使用系统自带的就可以正常编译,所以调整了CC等环境变量。PREFIX宏请根据需要自行修改。

四、编译bochs

  • 下载源码包并解压,解压出来的目录名称之为“$bochs”。
  • 修改.conf.macosx
    根据需要修改configure的参数,比如以下是我使用的:

    ./configure --enable-disasm \
                --disable-docbook \
                --enable-x86-64 \
                --enable-pci \
                --enable-all-optimizations \
                --enable-plugins \
                --enable-cdrom \
                --enable-a20-pin \
                --enable-fpu \
                --enable-alignment-check \
                --enable-large-ramfile \
                --enable-readline \
                --enable-iodebug \
                --enable-xpm \
                --enable-show-ips \
                --enable-logging \
                --enable-usb \
                --enable-ne2000 \
                --enable-cpu-level=6 \
                --enable-sb16 \
                --enable-clgd54xx \
                --with-term \
                --enable-ne2000 \
                --with-x11 \
                --enable-idle-hack \
                --enable-gdb-stub \
                --prefix=${PREFIX} \
                ${CONFIGURE_ARGS}
    
  • chmod u+x ./.conf.macosx && ./.conf.macosx

  • 修改ldtl相关选项

    • 将$bochs/config.h中的“BX_HAVE_LTDL”宏的定义由1改为0,只有一处。
    • 将$bochs/Makefile中的“-lltdl”改为“ltdl.o”,有多处。
  • 调整gui模块的编译选项
    将$bochs/gui/Makefile中的“X_LIBS = -lXpm -lXrandr”修改为“X_LIBS = -L/usr/X11/lib -lXpm -lXrandr”
    如果不进行此项修改,在gui目录下进行链接的时候总会报错,提示无法找到Xmp库。使用LDFLAGS环境变量或者修改.conf.macosx中的LDFLAGS都没有用,因为gui模块链接过程中并没有使用到它们。

  • make && make install

五、参考资料

六、版本记录

  • v1.0 - 2013-11-05,初始发布。

本文的pdf版:osx下搭建操作系统开发环境之构建bochs_v1.0.pdf