'call foo @ plt'的OSX GNU汇编程序问题

时间:2011-06-17 11:16:39

标签: macos assembly picolisp

为了在Mac OS X(10.6.7)上构建64位PicoLisp,我似乎遇到了OSX Dev的问题。工具GNU汇编程序('as'),版本1.38。我的Xcode是版本3.2.4。导致问题的我(生成的)x86-64.darwin.base.s中的行通常如下所示:

call foo@plt

...他们给我这样的错误信息:

x86-64.darwin.base.s:41694:junk `@plt' after expression

64位PicoLisp在Linux和SunOS上构建没有问题。这些平台可能具有更强大(更新)版本的GNU汇编程序。我不知道新的GNU汇编程序是否适用于OSX / Darwin ...还是可以有其他解决方案?

如果你想在OSX / Darwin上自己尝试一下,我可以给你一些需要的文件。

2 个答案:

答案 0 :(得分:5)

不幸的是,我认为这里至少存在两个重要问题:

  1. “PLT”是一个ELF概念,但OS X使用完全不同的对象/可执行文件格式 - Mach-O。
  2. Apple的as似乎派生自早期版本的GNU汇编程序的分支,并且在某些地方,语法(和命令行选项)与最新版本(即使在概念是一样的。)
  3. 看起来最近在binutils中有关于i386和x86-64 Mach-O支持的一些工作;可能值得调查最新版本(2.21)。但是如果生成的汇编代码试图做出特定于ELF的聪明事情,那么无论如何你可能会遇到一些重大问题......

答案 1 :(得分:0)

PicoLisp已经在Mac上支持了很长一段时间。只需转到standard download site