Как собрать gcc-6.x.0 на x64 без «неизвестных спецификаций»?


1

Я следовал шагам, описанным в LFS , но застрял на

g++ -fno-PIE -c  -DIN_GCC_FRONTEND -g -O2 -DIN_GCC     -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I../../gcc/../libcpp/include -I/opt/third/gmp-6.1.2/include -I/opt/third/mpfr-3.1.5/include -I/opt/third/mpc-1.0.3/include  -I../../gcc/../libdecnumber -I../../gcc/../libdecnumber/bid -I../libdecnumber -I../../gcc/../libbacktrace   -o cc1-checksum.o -MT cc1-checksum.o -MMD -MP -MF ./.deps/cc1-checksum.TPo cc1-checksum.c
g++    -g -O2 -DIN_GCC     -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc  -o cc1 c/c-lang.o c-family/stub-objc.o attribs.o c/c-errors.o c/c-decl.o c/c-typeck.o c/c-convert.o c/c-aux-info.o c/c-objc-common.o c/c-parser.o c/c-array-notation.o c/c-fold.o c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o c-family/c-format.o c-family/c-gimplify.o c-family/c-indentation.o c-family/c-lex.o c-family/c-omp.o c-family/c-opts.o c-family/c-pch.o c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o c-family/c-semantics.o c-family/c-ada-spec.o c-family/c-cilkplus.o c-family/array-notation-common.o c-family/cilk.o c-family/c-ubsan.o i386-c.o glibc-c.o \
      cc1-checksum.o libbackend.a main.o libcommon-target.a libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a libcommon.a ../libcpp/libcpp.a   ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a   -L/opt/third/gmp-6.1.2/lib -L/opt/third/mpfr-3.1.5/lib -L/opt/third/mpc-1.0.3/lib -lmpc -lmpfr -lgmp -rdynamic -ldl  -lz
g++: fatal error: unknown spec function ‘gt’

В частности, он был построен на x86_64-unknown-linux-gnu с gmp-6.1.2, mpc-1.0.3 и mpfr-3.1.5.

Как решить эту проблему? Спасибо.

Ответы:


2

Проблема, вероятно, в некоторых переменных среды вашего сеанса. Вы можете попробовать запустить команду make в чистой среде:

env -i PATH=/bin:/usr/bin make

Да, это связано с окружающей средой. Однако процесс не очень предсказуем или повторяем. Даже с ТОЛЬКО ОДНИМ чистым env, компиляция может произойти сбой или может произойти случайно. Во всяком случае, я, наконец, построил его.
ShenLei

В моем случае переменная окружения была LPATH; он переопределял любую директиву -L, используемую для поиска библиотек и, по-видимому, спецификационных файлов.
user30747
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.