* 古いPCでgccでのビルドが通らない [#ca0c4394]
- ページ: 不具合報告/7.x
- 投稿者: sk
- 優先順位: 低
- 状態: 着手
- カテゴリー: 不具合報告
- 投稿日: 2018-07-13 (金) 12:24:57
- バージョン: 7.0
メッセージ †
インストール初期状態でいくつかパッケージのビルドを試して見ましたが、"gcc internal compiler error" のエラーメッセージでビルド出来ません。
解決方法は gmp をリビルドすればよいのですが、gcc が動かない状態でどうするかと言うと、コンパイラにclangを指定 ( CC="clang" CXX="clang++" ./configure ...") してgmpをリビルドし、パッケージを入れ替えてやればgccでのビルドが通るようになります。
10年ほどまえのPCでの事例ですので該当する方は少ないと思いますが一応報告しておきます。
- もしよろしければマシンのハード情報公開ください。 -- 名倉
- 私の場合、Dell-Latitude-E5500ですが、同様のコンパイラ内部エラーが返ってきます -- 通りすがり
- Core 2 Duo T7250 + i965GMなスタンダートノートにPlamo-7.0 2018-07-15をインストールしlinux 4.14.56コンパイル始めましたSYSCALLあたりでワーニング吐きますが落ちてはいないです。 -- 名倉
- コンパイル終わるの早いなあと思ったら
CHK kernel/config_data.h
CC [M] drivers/gpu/drm/i2c/ch7006_mode.o
drivers/gpu/drm/i2c/ch7006_mode.c:51:3: コンパイラ内部エラー:Illegalinstruction
NTSC_LIKE_TIMINGS,
-- 名倉
- こちらの環境はPlamo-7.0 20180618版でしたが、先ほどget_pkginfoでgcc廻りを更新しましたが内部エラーが返ってきます -- 通りすがり
- printf-frexp.c: 関数 ‘printf_frexp’ 内: printf-frexp.c:104:11: コンパイラ内部エラー: Illegal instruction for (i = 0, pow2_i = L_(2.0), powh_i = L_(0.5); ^~~ ちなみにコンパイルしているのはnano-2.9.8でsk氏のようにclangを使うとコンパイルが通ります -- 通りすがり
- Core i(Nehalem世代)で拡張された命令が混入しちゃったのかなあ? -- 名倉
- ふーむ、、最近のGCCはClang/LLVMよりもアグレッシブにCPU最適化するのだらうか? これって多分CPU依存だし、手元の環境では再現も回避もできなそうなので、どなたか古めのCPU用のパッケージを作っていただけると助かりますです。 -- kojima
- Athlon 64あたりでも動いてくれないと嬉しくないのでTurion 64 MT-32なマシンにディスク乗せ換え同様でした。Core 2 Duoだと結構該当するんじゃないかなあ? -- 名倉
- 手元Turion 64 MT-32で固めカーネルコンパイルで止まったところを抜けた程度(まだコンパイル終わっていません)程度のものですがgmp-6.1.2-x86_64-B02.txzをPlamo-test/for-7.xに置きました。 -- 名倉
- log下記のとおりでした(抜粋)
config.status: executing libtool commands
configure: summary of build options:
Version: GNU MP 6.1.2
Host type: k8-pc-linux-gnu
ABI: 64
Install prefix: /usr
Compiler: clang
Static libraries: no
Shared libraries: yes
-mtune=k8 -march=k8
が目立ちました。
-- 名倉
- ふにおちないなあ.....じゃあもうちよっと新しいSandy Bridge世代なPentium G630TはなんていってくれるだろうかPlamo-6.xなマシン,Plamo-6.xのgmpスクリプトを使いまわしさせてもらってビルドしてみた。
config.status: executing libtool commands
configure: summary of build options:
Version: GNU MP 6.1.2
Host type: x86_64-pc-linux-gnu
ABI: 64
Install prefix: /usr
Compiler: gcc -std=gnu99
Static libraries: yes
Shared libraries: yes
-mtune=k8 -march=k8
はかわらないようだ。
-- 名倉
- 10ほど前のPCで該当が少ない物って
VIA Nano 買いそびれて未保有
ぐっと身近になった気分で
Intel Atomあたりかなあ
Atom 330でよければPlamo-6.x 64bit入り有りなのでいつでもテストできるけれど。
-- 名倉
- ディスクをCore 2 Duo T7250 + i965GMなスタンダートノートにもどしてgmpビルドしてみた
config.status: executing libtool commands
configure: summary of build options:
Version: GNU MP 6.1.2
Host type: core2-pc-linux-gnu
ABI: 64
Install prefix: /usr
Compiler: gcc
Static libraries: no
Shared libraries: yes
-mtune=core2 -march=core2
になっていた。
-- 名倉
- なにか引っかかるなあと思った,marchで単語検索してみたらdiary/nagura/2012-09-26Plamo-5.0 x86 イリーガルインストラクション脱出?同じくgmpなのでビルドスクリプトのconfigureに--build=x86_64-pc-linuxを追加で行けそうな気がしている,でも現状LFSの狙いどうりにはできているはずなのでこれもありだと思っています。 -- 名倉
- Core 2 Duo T7250 + i965GMなスタンダートノートでconfigureに--build=x86_64-pc-linuxを追加してgmpをビルドしてみた
config.status: executing libtool commands
configure: summary of build options:
Version: GNU MP 6.1.2
Host type: x86_64-pc-linux-gnu
ABI: 64
Install prefix: /usr
Compiler: gcc
Static libraries: no
Shared libraries: yes
-mtune=k8 -march=k8
-- 名倉
- Plamo ML 32635 で報告しましたが --build=x86_64-pc-linux-gnu を指定して gmp パッケージを作りなおしてみました。これで問題が解決するのかな? -- TenForward
- gmp-6.1.2-B2 で --build を指定して作成してみました。解決したかどうか不明なのでステータスは「着手」にしました -- TenForward
- Plamo-7.1インストール直後に、tcsh 6.20.00をコンパイルしようとして、同じ事象に遭遇しました。gmp-6.1.2-B2を含めた最新版にアップデート(get_pkginfo -a)して、再コンパイルしたところ、コンパイルが通るようになりました。環境は、 Intel Core2 Quad Q8200です。ご参考までに。 -- Plamo好き