如何为 m32c 架构编译 objdump

How to compile objdump for the m32c architecture

我想使用 objdump 查看二进制 m32c 文件。当我输入:objdump -i 返回的体系结构列表是基于 i386 的。查看 binutils 的源代码,似乎支持 m32c 体系结构,只是默认情况下未编译。

我还看到了针对嵌入式 ARM 市场的 arm-none-eabi-objdump。我想创建的是用于 m32c 架构的编译版本的 objdump。有人做过类似的事情吗?

为特定的 target 构建 binutils 非常简单。如果要在 Windows 上托管 binutils,您将需要安装 MinGW/GCC 和 Msys shell 环境。然后从 Linux bash shell 或 Windows 上的 msys:

  1. 创建用于构建工具的目录()
  2. 创建用于安装工具的目录 ()
  3. 将binutils包解压到,以下是指您正在构建的binutils版本,在包名中注明(binutils-.tar.bz2)
  4. 从 开始,为适当的 target 和主机配置包:

../binutils-<version>/configure --target m32c-elf --prefix <installdir>

在 Windows 中,您还可以添加到配置命令行 --enable-win32-registry=gnu_m32c 以允许通过注册表查找路径。工具链名称 gnu_m32c 是任意的 - 你可以随意命名。

  1. 运行 make 构建工具。
  2. 运行 make install-strip 安装工具。

注:

如果您在 Windows 上安装并使用了 --enable-win32-registry 选项但随后选择移动安装,或者在新主机上安装预构建工具,您将需要修改要匹配的注册表;这可以在 regedit 中编辑密钥 HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\gnu_m32c、adding/modifying 项目来完成:"BINUTILS"="<installdir>" 如果您还安装了 GCC,那么还有相关的密钥:

"GCC"="<gccinstalldir>"
"G++"="<gppinstalldir>"