Не удалось создать GCC из-за ошибок c++11

мне нужна более старая версия GCC для установки CUDA toolkit, так как CUDA toolkit не поддерживает GCC новее 5.3.1, а машина Fedora, на которую я пытаюсь установить ее, поставляется с GCC 6. У меня нет большого контроля над машиной, поэтому мне пришлось прибегнуть к созданию GCC самостоятельно. Шаги, которые я сделал:

$ cd gcc-5.3.0
$ contrib/download_prerequisites
$ cd ../build
$ ../gcc-5.3.0/configure --prefix=$HOME/local/gcc-5.3.0 --program-suffix=5.3 --enable-shared --enable-multiarch --enable-threads=posix --enable-languages=c,c++,fortran --enable-checking=release --with-tune=generic
$ make

это приводит к успешному configure, а make выдает ошибку:

cfns.gperf:101:1: error: ‘const char* libc_name_p(const char*, unsigned int)’ redeclared inline with ‘gnu_inline’ attribute

есть целая куча других предупреждений c++11, а также. После некоторых поисков google я решил, что это связано с созданием GCC 5 или старше с GCC 6. Я подумал, что это может помочь, если я смогу заставить компилятор следовать C++98 вместо этого. Итак, я попробовал:

$ export CXXFLAGS="-std=gnu++98"
$ ../gcc-5.3.0/configure ...
$ make

не работает. Я все еще продолжаю получать те же предупреждения C++11, с ошибкой сборки с той же самой ошибкой. Тогда я попробовал:

$ ../gcc-5.3.0/configure CXXFLAGS="-std=gnu++98" ...
$ make

опять же, та же ошибка. На этот раз я заглянул в файл Makefile, и он точно CXXFLAGS значение -std=gnu++98 здесь и там. Кроме того, я пытался постройте GCC 4.9.3, чтобы увидеть, связана ли эта проблема с определенным выпуском, но я снова получил ту же ошибку.

Я не уверен, как действовать дальше. Любая помощь очень ценится. Спасибо.

1 ответов


в случае, если у кого-то еще была эта проблема, по-видимому, она исправлена этим патч. Если вы внесете предлагаемые изменения (которые были бы слишком подробными, чтобы упомянуть здесь, но достаточно просты, чтобы сделать это вручную) в исходные файлы GCC, то configure и make успешно работать без необходимости пройти -std параметры. Я успешно построил GCC 5.3.0 с помощью GCC 6.2.1 с этими изменениями в исходных файлах.