Backport #6676
closedruby1.9.3-p194 + VisualStudio2005 x64版でrubyがビルドできません
Description
恐れ入りますが、VisualStudio2005(x64版)にてruby1.9.3-p194のnmakeが通らなかったため、報告申し上げる次第です。
作業手順:
・ruby1.9.3-p194.tar.gzをダウンロードし、任意のフォルダに展開
(D:\projects\Apps\ruby-1.9-msvc\ruby\src\ruby-1.9.3-p194とします)
・「スタート」→「すべてのプログラム」→「Microsoft Visual Studio 2005」→「Visual Studio Tool」→
「Visual Studio 2005 x64 Win64 コマンド プロンプト」を実行
・以下のコマンドを実行
cd D:\projects\Apps\ruby-1.9-msvc\ruby\src\ruby-1.9.3-p194
win32\configure
nmake
実行結果:
(中略)
compiling cfunc.c
cfunc.c
d:\projects\apps\ruby-1.9-msvc\ruby\src\ruby-1.9.3-p194\ext\dl\cfunc.c(439) : fatal error C1001: コンパイラで内部エラーが発生しました。
(コンパイラ ファイル 'F:\SP\vctools\compiler\utc\src\P2\main.c[0x0000000010C80AFF:0x0000000000000004]'、行 182)
この問題を回避するには、上記の場所付近のプログラムを単純化するか変更してください。
詳細については、Visual C++ ヘルプ メニューのサポート情報コマンドを
選択してください。またはサポート情報 ヘルプ ファイルを参照してください。
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\amd64\cl.EXE での内部コンパイラ エラーです。エラー報告をマイクロソフトに送信するために、後でメッセージが表示されます。
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\amd64\cl.EXE"' :
Stop.
NMAKE : fatal error U1077: 'cd' :
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\amd64\nmake.EXE"' :
Stop.
となった次第です。
プリプロセスにてVisualStudio2008(x64版)決め打ちの箇所があったため、
添付したパッチのとおり修正したところ、ビルドが通りました。
ただ、本当にこれでOKなのかどうか、バグを入れ込んでいないかと言う点は不安なため、報告しようと考えた次第です。
恐れ入りますが、一度cfunc.cのご確認をお願いできますでしょうか?
以上、よろしくお願い致します。
Files
Updated by aves_ramphastos (Seigo Ishigane) over 12 years ago
すみません、報告はココでよかったのかという点と、英語を使ったほうがよかったのかと言う点が不安です。
間違ってたら申し訳ありません。
Updated by wanabe (_ wanabe) over 12 years ago
- Tracker changed from Backport to Bug
- Project changed from Backport193 to Ruby master
こんにちは。私もよくわかっておらず自信はないのですが、
Backport93 は最新版での変更を ruby-1.9.3 にも適用して欲しい場合に使われる場所と認識しています。
https://bugs.ruby-lang.org/projects/ruby/wiki/HowtoReportJa には
『1.9 で再現するバグを報告する場合: ruby-trunk に登録する。1.9でバグ報告をする必要はない(できない)。』
とありますので、ひとまず ruby-trunk に移動しておきます。
また、チケット作成時に「報告先 (言語)」という欄があったと思うのですが、
本チケットは「ruby-dev in Japanese (日本語)」宛になっていますので日本語で問題ないかと思います。
チケット内容についてですが、#pragma optimize("", off) の処理は r29091 で入ったようです。
もう少し調べると [ruby-dev:42125] からのスレッドが関係あるようです。
担当者を r29091 を入れられたなかむら(う)さんにするべきか、ext/dl のメンテナのアーロンさんにするべきか
判断がつかなかったので空欄のままにしておきます。
また僭越ながらパッチを拝見しましたが、VC8 以降すべてのバージョンでこの処理は必要になるのでしょうか?
VC10 や VC11 でどうなるのかがちょっと気になりました。
Updated by wanabe (_ wanabe) over 12 years ago
- Category set to build
- ruby -v set to ruby1.9.3-p194 with VisualStudio2005(x64)
Updated by aves_ramphastos (Seigo Ishigane) over 12 years ago
wanabe様
ご対応とアドバイスありがとうございます。以後何かあればruby-trunkの方にご報告申し上げます。
後、VC10、VC11に関しては現在環境がないので、一度Express版で試した上、ビルドとテストが通るか確認してみます。
Updated by wanabe (_ wanabe) over 12 years ago
ああ誤解させてしまったならすみません、他バージョンでの追試を強制したかった訳ではなく
他バージョンまで影響するパッチであることが疑問だったということです。
VC10 以降については特に報告がないので、バグ報告があるまでは
_MSC_VER が 1400~1500 の範囲にある場合、くらいの条件でいいのでは、と思った次第です。
もちろん、それは承知の上で試してみたい、ということでしたら止めるつもりも権利もありませんが……
Updated by aves_ramphastos (Seigo Ishigane) over 12 years ago
ああ誤解させてしまったならすみません、他バージョンでの追試を強制したかった訳ではなく
こちらこそお気遣いさせてしまったようで申し訳ないです。
「後日似たようなバグ報告が出るかも」と思ったので確認しようか、と思ったという程度なので。
ちなみに、VisualStudio2010 Express版を入れてみたのですが、x64版コンパイラが付いていなかったので
検証の仕様がなかったというオチではございましたが。
_MSC_VER が 1400~1500 の範囲にある場合、くらいの条件でいいのでは、と思った次第です。
確かにそうですね。_MSC_VERが1600以上の場合に問題が出るかもしれませんし。
範囲を修正したパッチをアップロードしますので、ご確認戴ければ幸いです。
Updated by kosaki (Motohiro KOSAKI) over 12 years ago
パッチを見る限り最適化切ってるだけでregressionは起こりそうにない感じなのでいきなり入れちゃっていいのではないでしょうか?だれか反対の人います?
Updated by usa (Usaku NAKAMURA) over 12 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r36281.
Seigo, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
- ext/dl/cfunc.c (rb_dlcfunc_call): also needed the workaround for VC8
for x64. [ruby-dev:45875] [Bug #6676]
reported by aves_ramphastos (Seigo Ishigane)
Updated by usa (Usaku NAKAMURA) over 12 years ago
- Tracker changed from Bug to Backport
- Project changed from Ruby master to Backport193
- Category deleted (
build) - Status changed from Closed to Assigned
- Assignee set to naruse (Yui NARUSE)
手元でも再現したので r36281 で入れました。報告ありがとうございます。
VC9ピンポイントだと思ってたけどVC8からだったんですねえ。
バックポートのほうよろしくです>成瀬さん
Updated by naruse (Yui NARUSE) over 12 years ago
- Status changed from Assigned to Closed
This issue was solved with changeset r36307.
Seigo, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
merge revision(s) 36281:
* ext/dl/cfunc.c (rb_dlcfunc_call): also needed the workaround for VC8
for x64. [ruby-dev:45875] [Bug #6676]
reported by aves_ramphastos (Seigo Ishigane)