1 名前:デフォルトの名無しさん [2006/04/18(火) 19:57:04 ] 史上最強かもしれないツール、GCC(GNU Compiler Collection)について語るスレ。 GNU本家のGCCページ gcc.gnu.org/ Binutils - Collection of binary utilities ←これも必要だぞ。 www.gnu.org/directory/GNU/binutils.html GNU Binutils sources.redhat.com/binutils/ GCC online documentation gcc.gnu.org/onlinedocs/ Installing GCC gcc.gnu.org/install/ GCC Timeline gcc.gnu.org/releases.html#timeline Calendar gcc.gnu.org/develop.html#timeline
474 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 23:23:11 ] >>472 int_fast8_tのことかぇ?
475 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 11:21:19 ] stdint.h
476 名前:デフォルトの名無しさん mailto:sage [2006/11/19(日) 20:42:26 ] ; Linux 板から引っ越してきました。 質問です。 /lib/ld.so の様に,実行も出来る共有ライブラリを作るには GCC に対してど ういうコマンドを発行すれば良いのでしょうか? % file /lib/ld-2.4.so /lib/ld-2.4.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped % /lib/ld-2.4.so Usage: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] You have invoked `ld.so', the helper program for shared library executables. ...
477 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 09:15:42 ] つ ld-*.soのソースとMakefile
478 名前:gcc4 mailto:sage [2006/11/23(木) 17:18:39 ] みんな -fpmath は sse にしてる?
479 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 22:01:05 ] ええ
480 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 10:16:27 ] はやくgcc-4.2こい〜こい〜
481 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 13:50:55 ] >>480 4.2のウリはなに?
482 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 13:52:01 ] ニダ!
483 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 14:56:18 ] >>481 openMPのサポートじゃないの?
484 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 15:48:58 ] >>481 ここ読め、カス! gcc.gnu.org/gcc-4.2/changes.html forward propagation passが入るよー。
485 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 17:10:34 ] OpenMPは庶民にはあまり関係なさそうだな。 >>481 を見ると、他の変更はあまりなさそうですね。
486 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 20:47:01 ] RTL での forward propagation は 4.3 からじゃない?
487 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 01:09:36 ] GCCのソースを読むのは疲れるぞい。
488 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 08:42:21 ] ETFは少し下げてっるぽい。
489 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 10:22:49 ] forward propagationってコピー伝播のこと?
490 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 11:02:19 ] >>489 gcc.gnu.org/ml/gcc-patches/2005-07/msg00423.html
491 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 15:15:20 ] >>490 さんきゅ。あってるみたいだね。 しかし、今まで入ってないのが不思議なくらい基本的な最適化だが…
492 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 16:10:16 ] 伝搬の方向と、解析の方向の違い。
493 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 18:08:20 ] ObjC2.0っていつサポートされる予定なの?
494 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 18:16:54 ] >>491 その辺はopen sourceの限界だろうな。 商用コンパイラなら常識だが、フリーのものは思わぬところで手が抜かれている
495 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 19:13:26 ] >>489 違う。
496 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 23:09:58 ] 質問なんですが、gccで、 動的ライブラリのSOファイルにiostreamをインクルードすると、実行時に、 undefined symbol: __dso_handle ってエラーがでるんですけど、なんか対処法ないですか? $ g++ -Wall -g3 -c test.cc $ g++ -shared -nostartfiles -o test.so test.o こんな感じでコンパイルしてます。
497 名前:デフォルトの名無しさん mailto:sage PIC [2006/12/11(月) 00:30:11 ] ぐぐると出てくるぞ ttp://d.hatena.ne.jp/shinichiro_h/20051109
498 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 00:59:42 ] >>497 ありがとうございます。 extern void* __dso_handle; って宣言するってことですかね?ちょっと試してみます!
499 名前:デフォルトの名無しさん mailto:sage [2006/12/17(日) 13:20:01 ] gdb でマクロ参照したい時 gcc -g3 しますが、 enum hoge { HOGE_A = 123, #define HOGE_A HOGE_A ... というコードのデバッグで HOGE_A を参照できず困ってます。 macro expand HOGE_A すると 123 ではなく HOGE_A になる上、 実コードで enum hoge i = ... のように使われてないので、 この enum/macro 値の実値がデバッグセッション中からまったく 取れないのです。 いまはやむなくヘッダ grep して毎回探し回ってるんですが、 実は gcc/gdb 的にちゃんと参照する方法があったりしないでしょうか?
500 名前:デフォルトの名無しさん mailto:sage [2006/12/17(日) 13:56:20 ] print出来ないの?
501 名前:デフォルトの名無しさん mailto:sage [2006/12/17(日) 14:01:27 ] あ、出来ないわ。 debug情報に含まれてないね。> hoge, HOGE_A リテラルになってる。
502 名前:デフォルトの名無しさん mailto:sage [2006/12/17(日) 14:05:16 ] そうなんですよ。 #define HOGE_A 123 ならコード中で使ってなくても gdb から見えるのに、 enum { HOGE_A = 123 } だと何と見えなくなってしまって。gcc/gdb に手を入れないと対応不能?
503 名前:デフォルトの名無しさん mailto:sage [2006/12/17(日) 17:38:34 ] Symbol tableにないから無理だね。
504 名前:デフォルトの名無しさん mailto:sage [2006/12/17(日) 17:44:58 ] やぱりそうですか。 マニュアル見てると -feliminate-unused-debug-symbols とか -gfull とか ちょっと関係してそうなものがあるので、定義を見ただけで突っ込むように できないかもう少し見てみます。
505 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 00:08:18 ] 上、できてるんで報告しときます。 gcc -fno-eliminate-unused-debug-types -ggdb3 foo.c でデバッグターゲット中にない enum などの型情報もデバッグセッションで 参照できるようになりました(-ggdb3 -> -g3 でもおけ)。 これで pt enum hoge とか p HOGE_A+0 とかもばっちりです。
506 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 12:38:59 ] good bad know how
507 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 21:10:35 ] gdb関連で質問なんですが、ロードしたプログラムのテキストセグメントに オンメモリでパッチをあてて関数のNOP化などをしたいのですが、そのまま run しようとすると Text File busy とか言われてしまいます(Linux)。 一回 gdb -write で書き換えたバイナリを保存して、gdb を再起動して 再実行する場合は問題ないのですが、書き換え→保存→再実行→元ファイル 復元→・・・と試行錯誤するのが面倒なので、オンメモリのイメージだけ 書き換えて実行したいです。これは gdb でできるのでしょうか?
508 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 11:45:29 ] アーキテクチャも分らないのに
509 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 20:19:52 ] アーキテクチャ関係なくね?
510 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 05:56:19 ] >>509 ちげーよ ある仮定を1つ言ってないだけさ
511 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 22:46:48 ] ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.0.4/
512 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 19:18:53 ] ううむ、4.2はまだリリースされないのか。4.1.2と同時リリースなのか?
513 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 22:42:13 ] 4.1.2の後に4.2pre→4.2でしょ。 4.2はまだ1月ぐらいかかるんじゃないかな…
514 名前:デフォルトの名無しさん [2007/02/08(木) 23:17:12 ] >>512-513 もうすでにIR版で6.0が出てるわけだが ttp://2chart.fc2web.com/2chart/0123456789.html
515 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 02:34:15 ] 514はたぶんものすごいバカ
516 名前:デフォルトの名無しさん [2007/02/12(月) 03:09:56 ] >>515 お前も釣られたんだな・・・
517 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 03:35:15 ] まあもちつけ、兄者。 釣りにはスルーで対抗せよ。
518 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 18:27:21 ] GCC 4.1.2 has been released. gcc.gnu.org/gcc-4.1/ やっと出た… さっさと4.2こーい
519 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 10:43:02 ] 4.2からOpenSSLやFirefoxが起動しない。 OpenSSLのMLみりゃ載ってるけど、strickt-aliasingか何のためか詳しく分からんが 関数ポインタのキャスト(かな?)で禁止になった次項が増えたらしい。 これが検出されたら、そこに強制終了コード埋め込まれる。 詳しい人、日本語で解説よろぴく。
520 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 10:56:41 ] >>519 どれかアーカイブで示してくれるとうれしいんだが。 www.openssl.org/support/
521 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 18:18:38 ] marc.theaimsgroup.com/?t=116290942800004 gcc.gnu.org/ml/gcc/2006-07/msg00037.html あたりかな? cast_via_void_fptr()がダメになったらしいけど、素人の私にはさっぱりorz
522 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 02:22:29 ] 古い (ANSI 以前の知識ベースの) C プログラマがこういう行儀の悪いコード書くんだよ そういう奴らを一掃するためにもがんがんエラーにしてくれ
523 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 02:22:42 ] Cではコンパチブルじゃない型のaliasを禁止している。 それを実行時に察知してabort()する範囲が増えた。
524 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 03:51:47 ] errorじゃなくて abortするのがなあ。まあ、warningもでるけど。
525 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 09:03:27 ] Buffer overflowなんかの絡みもあるんじゃないのか? 一昔前じゃ、実行時チェックなんてあり得ないセンスだけど。
526 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 21:01:27 ] なんで実行時なんだ?
527 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 16:40:47 ] 4.2の出来が悪すぎるんでどうしようか迷っているらしい gcc.gnu.org/ml/gcc/2007-02/msg00427.html
528 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 17:30:59 ] 4.1.2も3.4.6に比べて大分性能悪くなってた 4.0系は試してないから分からないけど
529 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 04:00:01 ] -fwhole-compile --combine って C++ で使えない? 1クラスだけの簡単なサンプルでやってもメンバ関数が undefined reference に なってしまうんだが。v4.1.2、ちなみに C なら問題ない。 仕方ないので、単体ファイル毎に -fprofile-generate/use して自分ツールビルド してみたら 1% 速くなたw まあこれでもいっか、と MinGW で同じようにやったら internal compiler error orz
530 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 04:13:03 ] >>529 書き間違い済まぬ -fwhole-program っすね
531 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 04:15:13 ] 今試したらできなかった -fwhole-compileじゃなくて-fwhole-programだったけど
532 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 22:35:57 ] 進歩した部分もあれば後退した部分もあるから gcc-4 はまだまだ主流になれそうにないね。 最適化パスが Tree SSA と RTL で重複し始めてるような気もするが?
533 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 16:08:15 ] >>528 4.0はもっとひどかった。4.1になってちょっとマシになった。
534 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 03:37:49 ] SPECの結果って最近どうなの?
535 名前:デフォルトの名無しさん [2007/02/26(月) 23:17:10 ] 2CPU構成で1CPUしか使ってくれないソフトをGCC4.1でOpenMPを有効にしてmakeすれば2CPU使ってくれるのでしょうか? GCCマスターのお知恵をおかしください・・・
536 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:24:16 ] >>535 そうはいかんざき。 OpenMP用にソースにちょっと手を入れないといけない。
537 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:41:18 ] 1位3.3系 2位3.4系 3位4.1系
538 名前:535 [2007/02/26(月) 23:42:09 ] >>536 アホらしい質問すいません。 ありがとうございます。 SolarisやLinuxでnbenchというCPUの性能を測るものがあって、これを複数CPUで動かして計測したいのですが、1CPUでしか動いていませんでした。 オプションに-fopenmpをつけてmakeすれば複数CPU対応版になってくれれば良いな、と思った次第です。 世の中そんな甘くないのですね。 SolarisやLinuxで複数CPUに対応したCPUベンチマークソフトがあれば良いのですがね。
539 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:54:46 ] 横から失礼します。 -ftree-vectorizeで並列化した場合は、マルチCPUで効果があるのでしょうか。
540 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 01:22:01 ] >>539 vectorizeはSSEを使った高速化じゃないの? だとすれば、一つのコアしか使わないと思われ。 >>538 プラグマで、OpenMPの対象とするforループを指定してやるとかすればいい。
541 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 04:33:48 ] 目的がよく分からないんだけど,元々1CPU用のベンチを自分で適当に弄って 意味あるの? 元の製作者がやるんだったらともかく
542 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 10:03:51 ] >>538 そんなあなたに、Intel compiler。 -parallelオプションで、ある程度自動で並列化してくれる。 非商用目的なら無償で入手できます。
543 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 03:50:56 ] >>539 ubench とか sysbench とか。 んでも、1 個のベンチマークツールだけに頼らない方が良いよ。 それと、なるべく自分が想定しているアプリに近い負荷で試した方が良い。 アプリに付属しているベンチマークツールを使うとかね。 マイクロベンチマークは落とし穴がいっぱいあるから、きちんと統計情報も 取得した方が良いよ。
544 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 07:21:59 ] Mingwが3.4.6出す夢を見た。
545 名前:デフォルトの名無しさん [2007/03/11(日) 13:00:40 ] gcc 4.2の正式リリース予定日はまだ決まっていないのでしょうか?
546 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 15:01:01 ] 3月中旬
547 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 14:12:52 ] gcc-4.2って>>527 の話があったけど、どうなったの? 3月中旬にリリースってことは、結局そのままリリースするのかな?
548 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 15:17:29 ] その様だ 明日RC1が出る GCC 4.2.0 RC1 Status gcc.gnu.org/ml/gcc/2007-03/msg00348.html
549 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 15:37:34 ] となると、4.2はスルーしたほうがよさげだなぁ
550 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 18:34:29 ] >>547 ttp://d.hatena.ne.jp/c-yan/20070305/1173092465 3/4 に続行って出てた
551 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 19:50:02 ] >>550 Thanks ttp://gcc.gnu.org/ml/gcc/2007-03/msg00130.html のステータスレポートですな んでヲレは当分は4.1のままでいることにしますだ
552 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 02:58:57 ] 現時点での最強のgccを教えてください
553 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 03:03:20 ] gcc
554 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 09:37:39 ] ecc
555 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 11:17:05 ] .2.95.3 に決まってる
556 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 15:25:25 ] あれはよかったのう… どこで間違ったんですかねえ
557 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 19:38:12 ] 長い間バージョンが上がらなかった反動で 出来がいかに糞でもバージョンが上がればいいと思い込んでしまったところ。
558 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:31:36 ] Makefileについてなんですが、現在以下のようなフォルダ構成でsrc以下 にソースファイルを置いています。 ┬src ├obj └run Makefileはrunにおいていて、makeコマンドを実行したら.oはobjに置かれ、 実行ファイルだけrunにできて欲しいのです。 しかし、makeコマンドを実行した場所に一緒に.oができてしまい、イライラしています。 Makeファイルはrun以下に置いて、.oはobj以下に作成されるというような解決方法は ないでしょうか?
559 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 22:58:01 ] >>558 マニュアル読め。 そんなの質問するようなことか?
560 名前:558 mailto:sage [2007/03/15(木) 23:48:26 ] MakefileでVPATHとOPTIONってどうやって両方とも有効にすればいいんでしょうか? VPATH = ../src OPTION= -D_NDEBUG abc.o : a.c b.c c.c #[tab]$(CC) $(OPTION) -c $@ こんな感じでやっても、OPTIONが有効になりません。 かといって、#を削っても今度はVPATHが有効になりません。 どなたか、お助けを。
561 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:22:31 ] >>558 GNU make のパターンルールくらい嫁。基本じゃん $(target): $(objects) $(objects): ../obj/%.o: ../src/%.c
562 名前:389 mailto:sage [2007/03/16(金) 10:34:15 ] >>558 gccの話をしれ
563 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 15:43:52 ] 質問 転職してVisualC++を使う開発からGCCを使う開発に変わるんだが VC++のようなIDEって無いの? GCCとViが基本?
564 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 15:50:19 ] emacs
565 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 15:51:20 ] >>563 eclipse+cdtとかkdevelopとか
566 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 15:52:44 ] >>563 ttp://pc11.2ch.net/test/read.cgi/linux/1039282447/
567 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 16:19:25 ] 皆さんThx!
568 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 21:24:45 ] いまさらですがMakefileの話題はこちらへ make makes many problems pc11.2ch.net/test/read.cgi/tech/1029599472/
569 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 02:50:56 ] >>548 の後、相次いでバグが発見されたために延ばし延ばしになっていたRC1がようやく出ました。 GCC 4.2.0 RC1 gcc.gnu.org/ml/gcc/2007-03/msg00636.html ヤレヤレ…
570 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 06:35:48 ] なにがヤレヤレ…なの?
571 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 13:01:22 ] >>570 >>569 のメール読めばすぐ分かるだろ. > we still have quite a number of GCC 4.2.0 P1s which concern me.
572 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 13:15:00 ] バグの出方を考えると、どう考えてもリリース品質とはいえないシロモノなのに、 RCにしちゃっていいの? 4.1と比べて、あまり最適化周りの性能向上もしていない ようだし。
573 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 13:24:45 ] 性能向上、どころか性能低下がかなり激しくて問題視されてる。 4.3は期待出来そうなんだが… まぁこの経験を生かしてこれからはより良い開発プロセスを作ってほしいね。
574 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 20:12:54 ] 4.xと3.xの比較ではどんなにググっても3.xがいいという人しか見つかりませんが 4.xでしかコンパイルできないソースを書かない限りは3.xでFAなんかいな?