GCCについて part3

このエントリーをはてなブックマークに追加
>>933
それくらいでも、
hogehogeがおかしいので直して見たけど、これどうよ?
てな事をちゃんと説明しないとスルーされるわけですが。

それなりの実績があれば一行説明でもわかってくれるが。

>>934
commit権もらうとか。
>>936
>commit権もらうとか。
ワロタ
938デフォルトの名無しさん:04/07/08 08:01
3.4.1の出来はどうですか?
>>938
上々の出来
GCCじゃなくってGDBの話なんだけど、Cygwin、MinGW用のビルドは
常にスレッド対応してないのかな??
クロス開発で不自由で。
5.2.1〜6.1までをぽつぽつと試してみたんだけど、info thread(s)で
どれもRMT ERRORとでるか、最初のスレッドの情報が中途半端に
帰ってくるだけで、2つめ以降のスレッドの情報は出てこない。
break置いても止まらないし、あまつさえメインのスレッド止めても
それ以外のスレッドは走りっぱなしなのでデバッグにならん。
gdbserverのバージョン変えても駄目だし、--enable-threads付けて
ビルドしても駄目だし、どうしたものか。
んーgdbをデバッグするってのはどう?
>>940
CygwinやMinGW等ではなくて素のOSに入れてもなるのならGDBを疑う。
943940:04/07/09 10:52
>>942
手元のLinuxで同じコードをでビルドした時にはならなかった…。

info threadが何も返さない、RMT ERRORが出る、
最初のスレッドの情報しか返してよこさない、というのは、
GNUのページ見てると、Win環境に留まらず、時々報告されてる
バグ?ではあるみたい。

GDBのスレッド対応はターゲット次第らしいので、仕方ないっちゃあ
仕方ないけど、思ったよりも気にしてる人少ないのかな。
944940:04/07/09 10:57
>>942
手元のLinuxで同じコードをでビルドした時にはならなかった…。

info threadが何も返さない、RMT ERRORが出る、
最初のスレッドの情報しか返してよこさない、というのは、
GNUのページ見てると、Win環境に留まらず、時々報告されてる
バグ?ではあるみたい。

GDBのスレッド対応はターゲット次第らしいので、仕方ないっちゃあ
仕方ないけど、思ったよりも気にしてる人少ないのかな。
945名無しさん@そうだ選挙に行こう:04/07/11 18:33
各アプリケーションの初期設定では、最適化オプション
-O2
であることがほとんどですが
-O3
にすると問題は多いのでしょうか?
房な私にアドバイスお願いします。
多くない。
多いって言うかどんな問題があるのか知りたい
-O2にすると偶然動くバグとかあるじゃん。
そういう意味で-O3は問題だ。
酸素とオゾンは大違いだしな
>>940
Cygwin で GNU gdb 2003-09-20-cvs (cygwin-special) を使ってますが、
今のところ、マルチスレッドでおかしな現象には出会ったことないですよ。

自分が不自由してるのは、detach が効かないこと。
他のバージョンではどうなんだろう、試したことないけど。
そろそろ128bitCPU用にlong long longが欲しいな。long long long long かもしれないが。
コンパイル時の定数計算のために、long long(uint64_t)が導入されたが、
ILP64の環境の場合にはuint128_tが必要にならないんだろうか。
954デフォルトの名無しさん:04/07/16 23:56
GCCの最適化オプションは数あれど
基本的には -O* を指定しておけば、必要に応じて
-fstrength-reduce等のオプションが設定されると考えて良いのでしょうか?

要するに -O3等はオプションの総合オプションのように機能しているのでしょうか?

素人な私にアドバイスをお願いします。
んじゃ適切なアドバイスを。info読め。ちゃんと書いてあるから。

info読むためにはemacsの使い方を(略
957デフォルトの名無しさん:04/07/17 04:15
#include <iostream>
すると、
/usr/include/c++/3.4.0/backward/iostream.h
が読み込まれてしまうみたいなんだけど、
/usr/include/g++-3/iostream{,.h}
を使いたい場合はどうしたらいいでしょう?
>>954
その認識であってる思います.
最近どっかのスレで見掛けたのだけど,
-vと-Qを同時に指定すると, 実際に有効にされたオプションが表示されるようです.
960959:04/07/17 10:26
突っ込まれそうなのでもう一言.

>>954
あなたの言う「総合オプションのような機能」以外のなんらかの最適化を
更に-O*が行なうかどうかを私はよく知りません.
それはソースを当たって下さい.
>>959>>960
変わった人…
962959:04/07/17 11:01
>>961
???
何か良いこと知ってるんなら教えて下さい.
ソース読む前にinfoでしょ。
gcc hoge.c -lm 等、ライブラリを使用してコンパイルするときに
この'-lm'で具体的にどこのライブラリを参照するかはどのように指定するのでしょうか?
-L/home/foo/lib -L/usr/local/lib -L/opt/bar/lib
966959:04/07/17 11:53
>>963
それには異存ないんですが,
infoの説明では,
-O*にいくつかの-f*をまとめて指定する「総合オプションのような機能」があることは分かりますが,
-O*が,指定した-f*以外にも何らかの最適化を行なうのか,-f*の指定だけなのかちょっと不明だったもので.
読み落してたら御指摘下さい.
967959:04/07/17 12:08
-O2を指定して959に書いた-vと-Qを使うと,
「渡されたオプション」には-O2が表示されるけど,
「有効オプション」には-O2が表示されないところをみると,
-O*は「総合オプションのような機能」だけなのかも.
968デフォルトの名無しさん:04/07/17 12:43
$ gcc -O3 -v -Q test.c > o3.txt 2&>1
$ gcc -O2 -v -Q test.c > o2.txt 2&>1
$ diff o2.txt o3.txt

何もでないよ(^^;
2&>1 じゃなくて 2>&1 だったよ(^^;

diff を見るに
-frename-registers
だけ違うように見える。

gcc version 3.3.1 (cygming special)
古い記憶なんだが、そもそもO3が有効なのはx86系だけなんじゃなかったっけ。
バージョンにより違うんじゃないの?
>>970
sparcでも使えてたよ
info も嘘っつーか、source に追いついてなかったりするから
しょうがなく gcc/toplev.c と md 部分の *.c や *.md 見て確かめてるな。
-finline-functionsはO2にあるはず無いし、O3に無いはずが無いだろう
975959:04/07/17 19:08
>>974
manによるとそうなんですけど,
gcc -v -Q -O3 hoge.cpp
だと,-finline-functionsが出ません.
やっぱgccはソースを見るしかないのか.
-v -Qが壊れてるんじゃないの?
977959:04/07/17 19:16
gcc -v -Q -O3 -finline-functions hoge.c
としても,有効オプションに-finline-functionsは表示されないので,
-v -Qは指定された有効なオプション全部を表示しているわけではない
みたいです.
失礼致しました.
978959:04/07/17 19:19
>>976
壊れてるっていうか,
-v -Qに全部の有効オプションの表示を期待した私が間違ってたってことです.
979デフォルトの名無しさん:04/07/17 19:24
gcc -S -O2とgcc -S -O3でコード比較すれば
インライン展開してる事なんてすぐ分かるじゃん。
アセンブラも読めないのに最適化についてなんて語るなよ。
980959:04/07/17 19:35
>>979
それはそうなんだろうけど,
最適化はインライン展開以外にもたくさんあるわけだし,
全部の有効オプションを表示する機能はあれば便利なのでは?
正論だ。


ところで次スレは?
立てた

GCCについて part4
http://pc5.2ch.net/test/read.cgi/tech/1090062751/
>>980
そう思ったら-v -Qのコード直すなりしてパッチ送りなよ。どうしてそうしないの?
>>983
思った瞬間にスレに書き込んだんでしょ。きっと、もうパッチ作って送ってるヨ。
985959
「おまえら次のリリース楽しみにしておけよ!」
と書き込みたいところだけど.

>>983,984
そうやってひとを追い込まない.(苦笑)
私はgccのコード把握してないんで,そう簡単に直せないヨ.