現在、AURを使用してgcc41をインストールしようとして問題が発生しました。
コンパイルプロセスが実行されるたびにオーバーライドエラーが発生し、toplevオブジェクトのコンパイルを完了できず、ビルドが失敗します。
これは間違っています。ここでどこに行くべきかは本当にわかりません。
In file included from ../../gcc/toplev.c:31:0:
../../gcc/gcov-io.h: In function ‘gcov_position’:
../../gcc/system.h:575:55: warning: ISO C does not support ‘__FUNCTION__’ predefined identifier [-Wpedantic]
((void)(!(EXPR) ? fancy_abort (__FILE__, __LINE__, __FUNCTION__), 0 : 0))
^
../../gcc/gcov-io.h:572:3: note: in expansion of macro ‘gcc_assert’
gcc_assert (gcov_var.mode > 0);
^
../../gcc/toplev.c: At top level:
../../gcc/toplev.c:524:1: error: redefinition of ‘floor_log2’
floor_log2 (unsigned HOST_WIDE_INT x)
^
In file included from ../../gcc/toplev.c:59:0:
../../gcc/toplev.h:175:1: note: previous definition of ‘floor_log2’ was here
floor_log2 (unsigned HOST_WIDE_INT x)
^
../../gcc/toplev.c:559:1: error: redefinition of ‘exact_log2’
exact_log2 (unsigned HOST_WIDE_INT x)
^
In file included from ../../gcc/toplev.c:59:0:
../../gcc/toplev.h:181:1: note: previous definition of ‘exact_log2’ was here
exact_log2 (unsigned HOST_WIDE_INT x)
^
Makefile:2064: recipe for target 'toplev.o' failed
make[2]: *** [toplev.o] Error 1
make[2]: Leaving directory '/tmp/yaourt-tmp-michael/aur-gcc41/src/gcc-4.1.2/build/gcc'
Makefile:3907: recipe for target 'all-gcc' failed
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory '/tmp/yaourt-tmp-michael/aur-gcc41/src/gcc-4.1.2/build'
Makefile:617: recipe for target 'all' failed
make: *** [all] Error 2
答え1
gcc 4.4.7
また、最新バージョンをインストールしてみましたgcc
。私はあなたと同じエラーを見ました。 ~によるとこのバグレポート問題は、-fno-gn89-inline
新しいバージョンでインライン関数を処理するための基本フラグとなるフラグで発生します。gcc
現在gcc 4.3
のデフォルト値はです。したがって、コンパイル時にフラグを設定する-fgnu89-inline
だけです。-fgnu89-inline
私はこれを試しました
CFLAGS='-fgnu89-inline -g -O2' CXXFLAGS='-fgnu89-inline -g -O2' ./configure
make
しかし、まだ同じエラーが発生します。フラグが正しく渡されないようですが、よくわかりません。それから一般を試しました。
./configure
Makefile
次の2行を変更しました。
CC = gcc
CXX = g++
到着
CC = gcc -fgnu89-inline
CXX = g++ -fgnu89-inline
これにより、エラーは表示されなくなります。
ただし、他のエラーが発生します。
@itemx must follow @item
これらの問題は最新バージョンが原因で発生するため、texinfo
以前のバージョンを使用できますtexinfo
。たぶん手動で修正することができます。ケースに試してみましたが、私が何をしているのか分からなかったので、その道をたどりませんでした。
簡単に言えば、仮想マシンやドッカーイメージを実行する方が良いと思います。
答え2
私は以前も同様のことを経験したことがあります。問題は、GCC 5.2.0-1(最新のアーチバージョン)を使用してAURでgcc41をコンパイルしようとしていることです。リリースが続くにつれて、GCCに新しいバグが追加されるため、古いバージョンのGCCソースコードは、最新バージョンのGCCで常に有効と見なされるわけではありません。この警告を無効にする方法が見つかった場合は、成功する可能性があります。 Archウェイバックマシンを使用してgcc 4.2バイナリを取得できる場合は、gcc 4.2ソースコードをバイナリ形式でコンパイルできます。