具有-march的GCC:无效的开关

时间:2020-04-22 18:55:40

标签: c++11 gcc ubuntu-16.04 cockroachdb s390x

操作系统:Ubuntu 16.04 s390x
Gcc:使用以下提到的步骤从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

gcc --version

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

然后使用make编译cockroachDB的代码。构建失败并出现错误:

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

这里需要启用任何标志吗?
(如果在Ubuntu 18.04上使用apt-get install g ++-7从回购中安装gcc,则不会观察到此类错误)

1 个答案:

答案 0 :(得分:2)

-march-z14是在GCC 7发布后添加到GCC 8 in this commitGCC 7 in this commit的。据我所知,该提交已提交到GCC 7.2的次要版本中,因此GCC 7.3应该拥有它。

该错误消息不是 GCC错误消息。 (只有Ada前端中的代码会调用命令行选项“ switchs”。)构建过程会使用Ubuntu 16.04系统中的其他功能,这些功能无法识别-march=z14

您也许可以使用march=arch12作为解决方法。 (12指的是《操作原则》的版本,目前已减少两个版本。)