G CC с -march: неверный переключатель - PullRequest
1 голос
/ 22 апреля 2020

ОС: Ubuntu 16.04 s390x
G cc: сборка из источника v7.3.0 с использованием следующих шагов:

mkdir gcc
cd gcc
wget https://ftpmirror.gnu.org/gcc/gcc-7.3.0/gcc-7.3.0.tar.xz
tar -xf gcc-7.3.0.tar.xz
cd gcc-7.3.0
./contrib/download_prerequisites
mkdir objdir
cd objdir
../configure --prefix=/opt/gcc --enable-languages=c,c++ --enable-shared --with-system-zlib --enable-threads=posix --enable-__cxa_atexit --enable-checking --enable-gnu-indirect-function  --disable-bootstrap --disable-multilib
make
make install
ln -sf /opt/gcc/bin/gcc /usr/bin/gcc
ln -sf /opt/gcc/bin/g++ /usr/bin/g++
ln -sf /opt/gcc/bin/g++ /usr/bin/c++
export PATH=/opt/gcc/bin:"$PATH"
export LD_LIBRARY_PATH=/opt/gcc/lib64:"$LD_LIBRARY_PATH"
export C_INCLUDE_PATH=/opt/gcc/lib/gcc/s390x-linux-gnu/7.3.0/include
export CPLUS_INCLUDE_PATH=/opt/gcc/lib/gcc/s390x-linux-gnu/7.3.0/include
sudo ln -sf /opt/gcc/lib64/libstdc++.so.6.0.24 /usr/lib/s390x-linux-gnu/libstdc++.so.6

g cc - версия

gcc (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.

Затем при компиляции кода для cockroachDB с использованием make. Сборка завершается с ошибкой:

Error: invalid switch -march=z14
Error: unrecognized option -march=z14

Есть ли здесь какой-либо флаг, который необходимо включить?
(Такой ошибки не наблюдалось, если g cc установлен из репозитория с использованием apt-get install g ++ - 7 в Ubuntu 18.04)

1 Ответ

0 голосов
/ 23 апреля 2020

-march-z14 был добавлен после выпуска G CC 7 в G CC 8 в этом коммите и в G CC 7 в этом коммите . Насколько я могу судить, этот коммит вошел в второстепенный выпуск G CC 7.2, поэтому G CC 7.3 должен иметь его.

Сообщение об ошибке not a G CC сообщение об ошибке, хотя. (Только код в интерфейсе Ada вызывает параметр командной строки «переключается».) Процесс сборки использует что-то еще из системы Ubuntu 16.04, которая не распознает -march=z14.

Возможно, вы сможете использовать march=arch12 как обходной путь. (12 относится к изданию Принципов работы, которое в настоящее время отменено двумя.)

...