似乎无法获得gcc或binutils来构建新的链接器或汇编器

5 macos gcc compilation ld binutils

我正在尝试建立一个完全近期和最新的gcc环境......基本上是gcc 4.6.3和binutils 2.22.不是Xcode 4.2.1附带的相当老的gcc 4.2.1(llvm).我的问题不在于编译(至少目前为止).我可以完美地同时编译binutils,gcc和两者.但是每次我尝试编译时,我都会在configure的输出结束时看到这样的内容

检查在哪里找到目标ar ...只是编译
检查在哪里找到目标为...主机工具
检查在哪里找到目标cc ...只是编译
检查在哪里找到目标c ++ ...只是编译
检查在哪里找到libstdc ++的目标c ++ ...只是编译
检查在哪里找到目标dlltool ...只是编译
检查在哪里找到目标gcc ...只是编译
检查在哪里找到目标gcj ...只是编译
检查在哪里找到目标gfortran ...只是编译
检查在哪里找到目标gccgo ...主机工具
检查在哪里找到目标ld ...主机工具
检查在哪里找到目标脂肪...主机工具
检查在哪里找到目标nm ...只是编译
检查在哪里找到目标objdump ...只是编译
检查在哪里找到目标ranlib ...只是编译
检查在哪里找到目标条...只是编译
检查在哪里找到目标windres ...刚编译
检查在哪里找到目标windmc ... jus 编译

我在gcc源文件夹中为ld,opcodes,bfd,gas,gprof和binutils创建了一个符号链接以获得此输出...(如果这有帮助)

正如你所看到的,我可以获得大多数软件的"刚编译"版本,我只是无法弄清楚如何编译为和ld.我已经阅读了ld文件夹中的README文件(在binutils包中)并且它说要执行:

make all-ld

我这样做,因为我已经"制造"了它的来源,它告诉我什么都不做......

我现在唯一能想到的就是暂时修改我的路径,不包括ld.这很容易......

又快速检查

在哪里ld

无论如何,在我想到这一点之后立即重新认识它将是愚蠢的现在我没有任何东西可以链接gcc(甚至是ld的新版本(如果我完全工作))

所以,最后,我正在尝试编译ld的新副本,并作为... 事实:

  • 我正在运行Mac OS X Lion.
  • 我正在尝试使用Mac OS X Lion(gcc 4.2.1)附带的默认gcc编译gcc 4.6.3.
  • 配置脚本似乎认为我不想编译新的链接器和汇编器.
  • 我已成功构建了一个有效的gcc和binutils但没有新的链接器和汇编器.
  • 我试图用--with-ld = yes和--with-gold = no选项编译binutils gcc,它们似乎没有做任何事情.
  • 我使用gcc v4.2.1构建了gmp v5.0.4,mpfr v3.1.0和mpc v0.9,将它们安装在gcc和binutils configure中使用的相同前缀中.
  • 对于每个配置,我明确说明了gmp,mpfr和mpc的位置.
  • 我从gcc中分别构建了gmp,mpfr和mpc(这样做会导致一些构建错误).
  • gcc,binutils,gmp,mpfr和mpc都构建在一个单独的目录中,该目录不是源目录的子目录(按照gcc安装说明的建议).
  • 我正在使用以下选项编译gcc:
    ../ gcc -4.6.3/configure --prefix = $ PREFIX --with-gmp = $ PREFIX --with-mpfr = $ PREFIX --with-mpc = $ PREFIX - -enable-checking = release --program-suffix = -4.6.3 --enable-ld = yes --enable-gold = no
  • 我主要是按照本教程.
  • 因为我的计算机上没有其他编译器,我被迫使用mac os x default llvm编译器(我之前描述为gcc 4.2.1),我在这里读到的不起作用,但是我没有gcc-4.2在我的电脑上.
  • 使用我刚刚编译的新版本gcc(gcc-4.6.3)编译gcc-4.7.0(最近的快照)会导致编译器错误(我设置环境变量CC和CXX).
  • 我已经尝试过首先编译gcc,而不是binutils,反过来,最终我决定使用binutils构建gcc是要走的路.你上面的输出是同时编译的
  • 我读了这篇关于黄金的小帖子,并尝试添加--enable-gold --enable-ld.他们一无所获
  • 我做事的顺序:
    1. 编译gmp.
    2. 安装它.
    3. 编译mpfr.
    4. 安装它.
    5. 编译mpc.
    6. 安装它.
    7. 为符合ld,gas,binutils,opcodes,gprof,bfd的主gcc src目录创建符号链接.
    8. 配置gcc.
    9. 找到"状态报告".
    10. 想想另一种可能构建ld和as的方法.
    11. 失败了.
    12. 继续Stack Overflow.

正如"fazo"所说,我并没有真正告诉任何人我如何编译binutils ...所以这里是......

我尝试首先编译gcc,而不是使用gcc构建binutils,编译好,但没有ld,as,甚至是gold.然后我尝试使用llvm编译器构建binutils然后gcc.它也工作得很好,但仍然没有ld,as或gold.最后,我在这里读到我可以对binutils中的一些项目进行符号链接,gcc会检测并构建它们......我做到了.并且gcc找到了大部分内容(如前所述,我将符号链接放在gd目录中,用于ld,opcodes,bfd,gas,gprof和binutils)我的实际问题是告诉configure脚本编译一个新的汇编器和链接器.另外,令人难以置信的是,在binutils README文件夹中,它说仅仅./configure make make install将构建并安装所有工具,我试图弄清楚为什么不是这种情况.

最后的命令是:../binutils-2.22/configure --prefix = $ PREFIX --with-gmp = $ PREFIX --with-mpfr = $ PREFIX --with-mpc = $ PREFIX --program-后缀= -4.6.3 --enable-ld --with-gnu-as --with-gnu-ld

但我仍然没有得到任何气体.

任何帮助是极大的赞赏!(如果你想要一些我没有提供的信息,请问)

谢谢... :)

小智 0

我意识到,这基本上是一个 mac 问题。安装并获取 Ubuntu 后,它构建了链接器和汇编器就好了...编译 gcc 仍然遇到一些麻烦,但这是因为 Debian 新的多架构支持...但这是另一个问题...感谢您的帮助马可·范·德沃特