GCCについて part8
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/10/13(土) 00:07:39GNU本家のGCCページ
http://gcc.gnu.org/
Binutils - Collection of binary utilities ←これも必要だぞ。
http://www.gnu.org/directory/GNU/binutils.html
GNU Binutils
http://sources.redhat.com/binutils/
GCC online documentation
http://gcc.gnu.org/onlinedocs/
Installing GCC
http://gcc.gnu.org/install/
GCC Timeline
http://gcc.gnu.org/releases.html#timeline
Calendar
http://gcc.gnu.org/develop.html#timeline
前スレ
GCCについて part7
http://pc11.2ch.net/test/read.cgi/tech/1145357824/l50
0264デフォルトの名無しさん
2008/02/10(日) 09:33:30また手書きのパーザに戻したらしいよね。なんでなんだろ?
普通にパーザジェネレータ使ってた方が、何かと便利だろうに。
0265デフォルトの名無しさん
2008/02/10(日) 09:48:34C++がLALRでパースするのはキツい変態言語ってだけでは。
0266デフォルトの名無しさん
2008/02/10(日) 10:25:440267264
2008/02/10(日) 13:25:54なんか下のpdfの冒頭、凄いこと書いてるな。自然言語パーザの方がふさわしいって?
いや辞書片手に読んでるだけだから、誤読かもわからんけど。
まあ上手く動いてるなら、いいか。。。
できるだけ、へたな努力はしないで欲しいんだけどな。。。
つか、パーザジェネレータ使う方が「へたな努力」になってしまうって事?
・・・あれ?そうすると、「へたな努力」って何なんだっけ?
ちょっと電波板で独り言つぶやいてくる。
0268デフォルトの名無しさん
2008/02/10(日) 13:40:19>従来のアプローチよりも C++ のパースに向いている事を発見した。
って書いてあるね。
GLR法
http://ja.wikipedia.org/wiki/GLR%E6%B3%95
0269デフォルトの名無しさん
2008/02/10(日) 13:42:00それでも bison は使えないんだろうか?
0270デフォルトの名無しさん
2008/02/10(日) 15:38:050271デフォルトの名無しさん
2008/02/10(日) 15:55:34馬鹿げた方法だけど C++ なら全部ヘッダに inline で書く手もw
0272デフォルトの名無しさん
2008/02/10(日) 18:27:31C++って、自然言語に匹敵しかねないほど文法が複雑ってことか……
0273デフォルトの名無しさん
2008/02/11(月) 01:16:460274ストラウストラップ
2008/02/11(月) 01:21:570275デフォルトの名無しさん
2008/02/11(月) 05:16:32びよんびよ〜ん
0276デフォルトの名無しさん
2008/02/11(月) 07:05:280277デフォルトの名無しさん
2008/02/11(月) 10:33:400278デフォルトの名無しさん
2008/02/19(火) 05:32:130279デフォルトの名無しさん
2008/02/19(火) 23:01:130280デフォルトの名無しさん
2008/02/21(木) 09:49:070281デフォルトの名無しさん
2008/02/21(木) 10:13:140282デフォルトの名無しさん
2008/02/26(火) 01:44:12binutilをいじればいいの?
何か参考になる書籍があれば教えて。
0283デフォルトの名無しさん
2008/02/26(火) 06:22:390284デフォルトの名無しさん
2008/02/26(火) 13:44:23ありがとう
0285デフォルトの名無しさん
2008/02/29(金) 02:16:520286デフォルトの名無しさん
2008/03/02(日) 00:53:35fork()のとき、どっちのプロセスも追っていきたい
ときってどうすればいいんでしょうか?
ただしソースコードはいじれないとします。
0287デフォルトの名無しさん
2008/03/02(日) 03:01:440288デフォルトの名無しさん
2008/03/05(水) 03:54:21bzip2を-O1でコンパイルしたバイナリと、-fauto-inc-dec以下24つのフラグでコンパイルしたバイナリとで、
同一のファイルを圧縮するのにかかる時間を比較したところ、同等の結果が得られませんでした。
-fauto-inc-dec以下24つのフラグでコンパイルしたバイナリは、何も最適化フラグを与えずにコンパイルしたバイナリと
同程度の結果になりました。どうしてこの様な結果になるのでしょうか。
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options
0289デフォルトの名無しさん
2008/03/05(水) 05:51:10「-Oは以下の最適化フラグを有効にする」と書いてあるけど、それしか
しないとは書いてない。
gccのソースを見ると、「最適化レベルが1以上なら〜」というコードが
けっこう見付かるはず。
0290デフォルトの名無しさん
2008/03/05(水) 11:59:59各最適化オプション -fxxx は -O が前提となってたりする。
だから -O 指定せずに -fxxx 指定して効果がなくてもそんなもの。
最適化フラグ指定でんでんはGCCのソース嫁
でんでん…
0291デフォルトの名無しさん
2008/03/05(水) 12:02:040292デフォルトの名無しさん
2008/03/05(水) 13:28:350293デフォルトの名無しさん
2008/03/05(水) 13:32:220294デフォルトの名無しさん
2008/03/05(水) 13:46:500295デフォルトの名無しさん
2008/03/05(水) 14:48:23くく書くのは個人的には嫌いだ。
0296デフォルトの名無しさん
2008/03/05(水) 22:58:230297デフォルトの名無しさん
2008/03/06(木) 01:59:27実はディスクの方が律速で差が出なかったとか。
というかどうやって計って、どういう結果になったのか
書いてもらわんと難しいと思うわけで。
0298デフォルトの名無しさん
2008/03/06(木) 11:22:03ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.3.0
0299デフォルトの名無しさん
2008/03/06(木) 14:35:38ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-4.3.0/
0300デフォルトの名無しさん
2008/03/06(木) 15:12:450301デフォルトの名無しさん
2008/03/06(木) 16:07:590302デフォルトの名無しさん
2008/03/06(木) 22:25:450303デフォルトの名無しさん
2008/03/07(金) 13:26:470304デフォルトの名無しさん
2008/03/07(金) 16:13:380305デフォルトの名無しさん
2008/03/08(土) 05:30:08じゃなきゃ糞だが
0306デフォルトの名無しさん
2008/03/08(土) 06:24:090307デフォルトの名無しさん
2008/03/08(土) 11:33:424.1から4.3で何が良くなったのか簡潔に頼む。
0308デフォルトの名無しさん
2008/03/08(土) 11:39:080309デフォルトの名無しさん
2008/03/08(土) 19:44:394.1.2 http://fate.multimedia.cx/index.php?build_record=6158
4.2.3 http://fate.multimedia.cx/index.php?build_record=6169
gcc svn 133010, built 2008-03-07 http://fate.multimedia.cx/index.php?build_record=6163
0310デフォルトの名無しさん
2008/03/08(土) 21:56:34思っていて、最適化フラグが-O2の場合は4.2より4.3の方が若干良いという印象を持っていたのでそう書いたのでけど、
実は-O3の場合は事情が違って、4.2の方が4.3より良い結果になると思っています。つまり、
gcc-4.2-O2<gcc-4.3-O2<gcc-4.3-O3<gcc-4.2-O3
の順に性能が良くなると思っています。fateというベンチはstdout textを見ると-O3でコンパイルされているので
4.2の方が4.3より良い結果になるというのは順当だと思います。
0311デフォルトの名無しさん
2008/03/08(土) 22:20:144.3はforward propagationが大幅に書き換えられているから、
4.2のの頃の結果から4.3の振る舞いを推測するのは危険だぞ。
0312デフォルトの名無しさん
2008/03/09(日) 13:19:28あくまで自分が使うプログラムでってことだけど
0313デフォルトの名無しさん
2008/03/09(日) 18:47:180314デフォルトの名無しさん
2008/03/09(日) 23:34:14まあ、警告が不十分だった事に起因してる点があれば
30% 程度は GCC にも責任があるかもしれないが。
0315デフォルトの名無しさん
2008/03/09(日) 23:35:17http://gcc.gnu.org/gcc-4.3/cxx0x_status.html
Status of Experimental C++0x Support in GCC 4.3
Rvalue references N2118 Yes
Rvalue references for *this N2439 No
Variadic templates N2242 Yes
Static assertions N1720 Yes
Declared type of an expression N2343 Yes
Right angle brackets N1757 Yes
Default template arguments for function templates DR226 Yes
Extern templates N1987 Yes
C99 Features in C++0x
__func__ predefined identifier N2340 Yes
C99 preprocessor N1653 Yes
long long N1811 Yes
もちろんg++起動オプションでオンにしたときだけ。
http://gcc.gnu.org/gcc-4.3/changes.html
0316デフォルトの名無しさん
2008/03/10(月) 00:37:24まさかgccはlintにするために作ってるわけじゃあるまいに。なんだその30%て。
0317デフォルトの名無しさん
2008/03/10(月) 19:19:11比べてやはり遅いんだなってのは体感しました。所がアプリによりつけたフラグによっては動きが悪くなる
ってのも体感。
なので自分はソースが読めないのでgcc4.2シリーズの-march=native -O2のみにして全部これでやることに
しました。それなりに快適に動いてます。
少し前からgcc4.3の最適化は4.2よりいいと書いてある記事をみて開発版の4.3を入れたけど
なんか動きがかなり違う。コンパイルが出来ない(一切フラグをつけなくても)物も出てきた。
それどころかある設定をしないとカーネルでさえコンパイル出来ないんですね・・・・
ググってカーネルのmakeファイルに設定を追加して出来上がった物も動きが悪いです・・・
やはり今回の正式リリースもカーネルとかそのままコンパイル出来ないんでしょうか?
まあ、それは対策が解るからいいものの、使った感じちょっとソースが読めないような自分が使う物ではないな
と感じたです。コンパイルエラーが出たのをネットでググる時間が(TT)
0318デフォルトの名無しさん
2008/03/10(月) 20:08:320319デフォルトの名無しさん
2008/03/10(月) 20:14:00じゃあ正式リリース版のgcc4.3.0では何もいじらなくてカーネルコンパイルくらいは平気で出来るの?
4.2シリーズは開発版だろうがまるで神経使わなかったけど。
0320デフォルトの名無しさん
2008/03/10(月) 20:15:000321デフォルトの名無しさん
2008/03/10(月) 20:17:07答えられないような人は黙っててよww
0322デフォルトの名無しさん
2008/03/10(月) 20:28:23開発版を入れる神経を疑いはするが、4.3が安定しているかどうかは知らない。
私ゃ態々カーネルをコンパイルし直すほど暇じゃないんでね。
0323デフォルトの名無しさん
2008/03/10(月) 20:39:370.3秒かかってたのが0.27秒とかになったとしても
0324デフォルトの名無しさん
2008/03/10(月) 21:15:340325デフォルトの名無しさん
2008/03/10(月) 22:08:500326デフォルトの名無しさん
2008/03/10(月) 22:27:47安定とかの問題以前でgccサイドとカーネルサイドの意見が違っててどっちも直さないってのが
ある筈なんだけど・・・
gcc4.3、カーネルと聞いて思い浮かばないようならもう話はいいですww
0327デフォルトの名無しさん
2008/03/10(月) 23:07:27リリースされたばかりのコンパイラを使わない方がいいと思うよ
> やはり今回の正式リリースもカーネルとかそのままコンパイル出来ないんでしょうか?
あなたにはよく分からないことだから。
0328デフォルトの名無しさん
2008/03/11(火) 00:04:11コンパイル時に二つのオプションを使うことってできるのでしょうか?
例えば、若干スレ違い臭いのですが、質問させてください。
例えば、
`wx-config --cppflags` と `pkg-config --cflags gtk+-2.0`
を同時に使いたいのです。
同時に使えるとしたらどのように書けばいいのでしょうか。
どなたかご教示頂けると幸いです。
0329328
2008/03/11(火) 00:05:150330デフォルトの名無しさん
2008/03/11(火) 00:10:10そのくらいの経緯は書いて欲しいな。
というか、向こうでレスついたぞ。
0331329
2008/03/11(火) 00:16:00すいません、そういうもんなのですか。以後気をつけます。
レスついたみたいですね。ありがとうございましたm(_ _)m
0332デフォルトの名無しさん
2008/03/11(火) 01:48:360333デフォルトの名無しさん
2008/03/11(火) 02:30:21http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32044#c28
0334デフォルトの名無しさん
2008/03/11(火) 02:33:55GCCコミッテーに文句つけて今の版のバグフィックスをしろよ、クソハゲドモと外人に文句垂れてくるんなら
俺は得に気に留めないよ。
0335デフォルトの名無しさん
2008/03/11(火) 02:38:16http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e40cd10ccff3d9fbffd57b93780bee4b7b9bff51
正直、コンパイル猿になるよりもずっと有意義なことがいくらでもあります。
何か一つターゲットを絞って深く追ってみるのならいいけどね。
0336sage
2008/03/13(木) 10:12:58__asm__ (
"imull %%edx\n\t"
"idivl %3\n\t"
: "=a" (result) /* out */
: "a" (m1), "d" (m2), "g" (d) /* in */
: "ax", "dx" /* mod */
);
return result;
}
でコンパイルするとcan't find a register in class ‘AREG’ while reloading ‘asm’とのエラーが表示され、コンパイルできません。
どのように改善したら良いでしょうか。
0337デフォルトの名無しさん
2008/03/13(木) 10:35:04何を参考にしました?
0338sage
2008/03/13(木) 10:38:28ソースを見てみたらわけわからんという状態です。
0339デフォルトの名無しさん
2008/03/13(木) 12:18:370340デフォルトの名無しさん
2008/03/13(木) 12:44:180341デフォルトの名無しさん
2008/03/13(木) 23:18:520342デフォルトの名無しさん
2008/04/06(日) 00:24:12同時に渡したときどちらが採用されるのでしょうか?
gcc -ggdb3 -O0 -g -O2 -c src.c -o src.o
と実行したときsrc.oは「-ggdb3 -O0」それとも「-g -O2」?
0343デフォルトの名無しさん
2008/04/06(日) 08:01:450344デフォルトの名無しさん
2008/04/06(日) 11:48:45You can mix options and other arguments. For the most part, the order
you use doesn't matter. Order does matter when you use several options
of the same kind; for example, if you specify `-L' more than once, the
directories are searched in the order specified.
機能が被る場合にどうなるかは明記されてないが
理解の一助にはなるかな?
0345デフォルトの名無しさん
2008/04/06(日) 12:36:300346デフォルトの名無しさん
2008/04/06(日) 16:25:440347デフォルトの名無しさん
2008/04/06(日) 16:44:170348デフォルトの名無しさん
2008/04/06(日) 17:19:21Windowsでの効果は知らないけれど、Linuxの場合はタスクスイッチングを強制させるのに使える。
要は「最低0秒」止まるので、他に処理するべきプロセスがあればそちらを実行することになる。
# 逆に言えば、最悪何秒も止まりっぱなしになるかもしれない。
0349デフォルトの名無しさん
2008/04/06(日) 20:31:520350デフォルトの名無しさん
2008/04/06(日) 20:52:21システムコールからそのまま戻るにしても既に送られたシグナルがあれば
戻る直前でシグナルハンドラが走る。
あとUNIXによってはsleepはプロセスタイマを使う可能性があるらしいので
ユーザプログラム側でタイマを使う場合は注意が必要かも。
0351デフォルトの名無しさん
2008/04/07(月) 11:58:14それはスレッドだから、>>348の言っていることとは違う。
pthread実装はカーネル・スレッドばかりじゃないから。
0352デフォルトの名無しさん
2008/04/07(月) 15:23:450353デフォルトの名無しさん
2008/04/07(月) 15:29:270354デフォルトの名無しさん
2008/04/07(月) 15:33:12LIBRARY_PATH
とか?
0355デフォルトの名無しさん
2008/04/07(月) 17:50:52LD_LIBRARY_PATH
0356デフォルトの名無しさん
2008/04/08(火) 13:10:13この2つのライブラリが相互に依存しているので、
undefined エラーになります。
libfoo1.a libfoo2.a のソースをいじることなく、
うまくリンクすることはできないでしょうか?
0357デフォルトの名無しさん
2008/04/08(火) 13:17:09存しているかなど、もうちょっと詳しい情報が欲しいけど、とりあえず
gcc .... -lfoo1 -lfoo2 -lfoo1
のような感じでできへん?
libfoo1.aとlibfoo2.aをバラして1つのlibfoo.aにしてしまうとかも。
0358デフォルトの名無しさん
2008/04/08(火) 13:44:25http://sourceware.org/binutils/docs/ld/Options.html#index-groups-of-archives-127
0359デフォルトの名無しさん
2008/04/09(水) 13:51:180360デフォルトの名無しさん
2008/04/09(水) 13:53:28要するにコンパイル(リンク)時か、実行時か。
0361デフォルトの名無しさん
2008/04/09(水) 16:39:29どうやってやるの?
IとかLとかでいちいち指定するの?
それともmake?小さいプログラムではわざわざmakeなど使いたくないのだが。
0362デフォルトの名無しさん
2008/04/09(水) 16:41:32■ このスレッドは過去ログ倉庫に格納されています