Не могу заставить gcc или binutils создать новый компоновщик или ассемблер

Я пытаюсь настроить совершенно новую и актуальную среду gcc... в основном это gcc 4.6.3 и binutils 2.22. Не довольно старый gcc 4.2.1 (llvm), который поставляется с Xcode 4.2.1. Моя проблема не в компиляции (на данный момент, по крайней мере). Я могу отлично скомпилировать binutils, gcc и то и другое одновременно. Однако каждый раз, когда я пытаюсь скомпилировать, я нахожу что-то подобное в конце вывода configure

, проверяя, где найти целевой ar... только что скомпилированный
проверка, где найти цель как... инструмент хоста
проверка, где найти целевой cc... только что скомпилированный
проверка, где найти целевой С++... только что скомпилированный
проверка, где найти целевой С++ для libstdС++... только что скомпилированный
проверка, где найти целевой dlltool... только что скомпилированный
проверка, где найти целевой gcc... только что скомпилированный
проверка, где найти целевой gcj... только что скомпилированный
проверка, где найти целевой gfortran... только что скомпилированный
проверка, где найти целевой инструмент хоста gccgo...
проверка, где найти целевой инструмент ld... host
проверка, где найти целевую липо... хост-инструмент
проверка, где найти целевой nm... только что скомпилированный
проверка, где найти целевой objdump...только что скомпилировано
проверка, где найти целевой ranlib... только что скомпилированный
проверка, где найти целевую полосу... только что скомпилировано
проверка, где найти целевые ветры... только что скомпилировано
проверка, где найти целевой windmc... только что скомпилированный

Я сделал символические ссылки для ld, opcodes, bfd, gas, gprof и binutils в исходной папке gcc, чтобы получить этот вывод... (если это поможет)

Как видите, я могу получить "только что скомпилированную" версию большинства программ, просто не могу понять, как скомпилировать as и ld. Я прочитал файл README в папке ld (который находится в пакете binutils), и он говорит выполнить:

make all-ld

Я делаю, и поскольку я уже «сделал» исходный код, он говорит мне ничего не остается делать...

Единственное, о чем я сейчас могу думать, это временно изменить мой путь, чтобы он не включал ld. Это было бы довольно просто...

ака быстрая проверка с помощью

whereis ld

в любом случае, сразу после того, как я подумал об этом, я понял, что это было бы глупо, так как теперь мне не с чем связывать gcc (или даже новый версия ld (если я вообще заработаю))

Итак, в заключение, я пытаюсь скомпилировать новую копию ld и как...

Факты:

  • Я использую Mac OS X Lion.
  • Я пытаюсь скомпилировать gcc 4.6.3, используя gcc по умолчанию, поставляемый с Mac OS X Lion (gcc 4.2.1).
  • Скрипты configure, кажется, думают, что я не хочу компилировать новый компоновщик и ассемблер.
  • Я успешно собрал рабочий gcc и binutils, но без нового компоновщика и ассемблера.
  • Я пытался скомпилировать binutils и gcc с опциями --with-ld=yes и --with-gold=no, они ничего не сделали.
  • Я собрал gmp v5.0.4, mpfr v3.1.0 и mpc v0.9, используя gcc v4.2.1, установив их с тем же префиксом, что и в конфигурации gcc и binutils.
  • Для каждой конфигурации я явно указываю расположение gmp, mpfr и mpc.
  • Я собрал gmp, mpfr и mpc отдельно от gcc (это привело к некоторым ошибкам сборки).
  • 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=да --enable-gold=нет
  • В основном я следовал этому руководству.
  • Поскольку на моем компьютере нет другого компилятора, я вынужден использовать компилятор llvm по умолчанию для mac os x (то, что я описал ранее как gcc 4.2.1), который я прочитал здесь, не работает, однако на моем компьютере нет gcc-4.2.
  • Компиляция gcc-4.7.0 (самый последний снимок) с использованием новой версии gcc, которую я только что скомпилировал (gcc-4.6.3), приводит к ошибкам компилятора (я установил переменные среды CC и CXX).
  • Сначала я пытался скомпилировать gcc, а затем binutils, и наоборот, в конце концов я решил, что сборка gcc с помощью binutils — правильный путь.Вывод выше был с обоими скомпилированными сразу
  • Я прочитал этот небольшой пост о золоте и попытался добавить --enable-gold и --enable-ld. Они ничего не изменили
  • Порядок, в котором я делал вещи:
    1. Скомпилируйте gmp.
    2. Установите его.
    3. Компилировать mpfr.
    4. Установите его.
    5. Компилировать mpc.
    6. Установите его.
    7. Сделать символические ссылки на основной каталог gcc src для ld, gas, binutils, opcodes, gprof, bfd.
    8. Настройте gcc.
    9. Найдите этот «отчет о состоянии».
    10. Придумайте другой способ построить ld и as.
    11. Потерпите неудачу.
    12. Перейти к переполнению стека.

Как сказал "fazo", я особо никому не рассказываю о том, как я скомпилировал binutils... так что вот оно...

Сначала я попытался скомпилировать gcc, а затем собрать binutils с помощью gcc, который скомпилировался нормально, но не лд, ас, и даже не золото. Затем я попытался использовать компилятор llvm для сборки binutils, а затем gcc. Он тоже работал нормально, но все еще не ld, as или gold. Наконец, я прочитал здесь, что я могу сделать символические ссылки на некоторые элементы в binutils, и gcc обнаружит и создаст их... Я сделал. и gcc нашел большинство из них (как было сказано до того, как я поместил символические ссылки в каталог gcc для ld, кодов операций, 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-suffix=-4.6.3 -- enable-ld --with-gnu-as --with-gnu-ld

, но я по-прежнему не получаю ни ld, ни газа.

Будем признательны за любую помощь! (также, если вам нужна информация, которую я не предоставил, просто спросите)

спасибо...:)

5
задан 5 March 2012 в 23:06
поделиться