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
577 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 01:56:12 ] Linuxのメジャーどころのディストリビューションが3.x以降に移行し、 FreeBSDも5以降は3.xに移行してから結構時間が経ってしまっている現状、 2.95.xではmakeが通らないアプリも結構あるからなぁ。 ってことで、Solarisで長いこと付属のcompanion CDに入っていた2.95.3を 使ってきたけど、SunFreewareの3.4.6に入れ替えた。 にしても、4.2がリリースされたら、4.1から入れ替えちゃって4.1がつかえなくなる ディストリビューションがありそう。Debianの場合、パッケージが用意されているのは 2.95、3.3、3.4、4.1なので、4.2がリリースされても大丈夫だろうし、FreeBSDのportsも そんな感じだから、ヲレ的には無問題なんだけど。
578 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 03:35:37 ] >>577 Solaris 10 以降だったら /usr/sfw/bin の下に GCC 入ってるよ。 バージョンが幾つだったか忘れたけど。
579 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 12:02:31 ] >>576 C++はそうだね。3.x以降で劇的に変わっているし。 あと、amd64などの新しいアーキテクチャへの対応もあるし。 にしても、>>575 のいう最高性能が2.95っていう理由がよくわからんのだけど。 まさかコンパイル速度だけを見ているわけじゃないよね?
580 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 16:05:58 ] 見ているわけだろ。
581 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 15:55:40 ] コンパイル速度しか見ていないヤシ、以前UNIX板のgccスレにも湧いていたな
582 名前:389 mailto:sage [2007/03/20(火) 17:11:47 ] コンパイル速度とコードサイズの小ささは2.95のがよかったな。 実行速度は比べたことないんでしらんけど。 まぁ C99 や C++ や他のフロントエンドを考えると今更戻る気はしないな
583 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 17:57:44 ] 実行速度は自分が使うやつでは3.3が一番速かった 4.1は姫野ベンチってやつでは-O2以上にすると何故か3.4に比べて2倍くらい遅くなってた -O1とかでもそれまでと比べて遅くなってるけど
584 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 09:43:40 ] 姫野ベンチのソースコードは公開されてるの?
585 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 10:57:09 ] されてるよ。ググればトップに出て来るけど。
586 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 14:45:25 ] fortranがベースなのか?
587 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 17:59:33 ] ご自分でどうぞ。
588 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 20:22:54 ] >>586 Fortranベースじゃないかな。トップページに、Cの配列宣言をFortranに合わせた、って記述が。 言語の特性上、だいたいベンチ系はFortranベースのものが多いし。
589 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 15:52:02 ] 下のページを試しているのですがgcc時にエラーが出てしまいます ttp://www.hellohiro.com/native.htm jni.hがないと言われるのですが、lsで確認したところ存在します。 どこがまずいのでしょうか・・助けてください。 bash$ gcc -shared -l/usr/java/jdk1.6.0/include/ -l/usr/java/jdk1.6.0/include/linux/ HelloWorldJNI.cpp -o libHelloWorldJNI.so HelloWorldJNI.cpp:1 から include されたファイル中: HelloWorldJNI.h:2:17: error: jni.h: そのようなファイルやディレクトリはありません HelloWorldJNI.h:15: error: ‘JNIEXPORT’ does not name a type HelloWorldJNI.cpp:2: error: ‘JNIEXPORT’ does not name a type bash$ ls -l /usr/java/jdk1.6.0/include/jni.h -rw-r--r-- 1 root root 67831 11月 29 18:49 /usr/java/jdk1.6.0/include/jni.h
590 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 17:07:14 ] l じゃなくて I だよ lは -lpthreadみたいにライブラリに対して使う
591 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 17:59:14 ] >>590 ありがとうございます できました 本当に助かりました
592 名前:デフォルトの名無しさん [2007/03/31(土) 20:35:04 ] 4系ってコンパイルを正常に終わらせられるソフトウェアはまだ多くないと聞いたんだけど それと、Debianは2.95からパッケージに置いてあるのに Fedoraは3.3より先は切り捨てられているのはどうかと思うが
593 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 20:37:45 ] debianってそういうディストロだし fedoraってそういうディストロだし
594 名前:デフォルトの名無しさん [2007/03/31(土) 20:39:14 ] >>593 で、4系ってどうなのよ アレな出来なのか?
595 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 20:46:50 ] 4.0 まぁ許容範囲 4.1 ギリギリ許容範囲 4.2 …だめぽ 4.3 期待の新星 javaとfortranについては順調に進歩してる。 が、肝心のcが… コンパイル時間は増える、バイナリはでかくなる&遅くなる、 でいい事あんまなし。
596 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 20:54:41 ] >>595 ありがとう まだ3系のほうがいいのね・・・
597 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 22:15:44 ] 4.0 転換期。まぁ少しの性能の低下はしかたない。 4.1 すこし性能が回復。まだ3.6に及ばず。 4.2 なにそれうまい? 4.3 memcpy! memcpy!
598 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 22:42:26 ] 何と引き換えに性能が劣化してるの?
599 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 22:47:07 ] >>598 www.jp.redhat.com/magazine/NO5/
600 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 04:48:19 ] IA32への対応はそろそろ限界なのでは?
601 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 09:48:20 ] 案の定、4.2で多くのパッケージをコンパイルしたアホなLinuxのディストロが出てきたねぇ。
602 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 10:11:17 ] 俺は使わないが、問題の炙り出しになるので大歓迎。
603 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 10:40:42 ] 問題の炙り出しっつーても… これ、どうせ廃棄ものだぜ? 2.96や3.3みたいに残しておく価値ないし 4.2で握るんなら4.3cvsで握ってくれた方がうれしいよ… たとえ爆死してもまだ納得できる
604 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 17:28:52 ] >>601 Momonga 4なら4.2は捨てて4.1で行くことにしたらしいぞ。 ttp://developer.momonga-linux.org/wiki/?Momonga+Linux+4 ttp://developer.momonga-linux.org/wiki/?gcc-4.2
605 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 00:22:24 ] そんな日本ローカルな鳥なんてどうでもいい。
606 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 02:06:59 ] あー momonnga ってまだあったんだー
607 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 11:14:29 ] gcc(ていうかGNU ld?)で、未使用な関数とかを自動的に除去して サイズ縮小したいんですが、そもそもそんな機能ありますか?
608 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 12:24:40 ] >>607 gcc -ffunction-sections -Wl,--gc-sections 以下略 ttp://www.radiumsoftware.com/0401.html#040126
609 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 12:53:16 ] 結果的に未使用な関数の除去は出来るけど、 -ffunction-sectionsは性能の低下を引き起こすので使用には注意。 結局、その手の機能はまだ実装されてないんだね…
610 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 12:56:30 ] >>608 アリガトン!でも除去してくれなかったよorz。
611 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 13:22:17 ] >>610 ソースを一つに纏めて、全ての関数にstaticをつけると未使用関数は消えてなくなるんじゃね?w
612 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 15:49:11 ] >>611 その辺を-fwhole-programが面倒見てくれるのかと思っていた時期もありました・・・
613 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 16:09:56 ] MacOSXでg++の4系列を使い始めたのですが, 以下のコードでコピーコンストラクタがないと起こられます. #include <iostream> using namespace std; class A { A (const A &p); A &operator = (const A &p); public: A () {} friend ostream &operator << (ostream &p_os, const A &p_a) {return p_os;} }; int main () { cout << A () << endl; return 0; } エラーメッセージは test.cpp:4: error: 'A::A(const A&)' is private test.cpp:12: error: within this context です.g++-3.3では起こられないのですが,これってg++-3.3の方が正しいですよね? powerpc-apple-darwin8-g++-4.0.1 (GCC) 4.0.1 g++-3.3 (GCC) 3.3 20030304
614 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 18:54:17 ] C++相談室で聞くことにします
615 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 22:24:49 ] つ ttp://lists.apple.com/archives/xcode-users/2007/Mar/msg00193.html この辺の話じゃね?
616 名前:デフォルトの名無しさん mailto:sega [2007/04/15(日) 07:47:47 ] a==1; これについて、Warningを吐いてくれるオプションってある? -Wall とか以外で。
617 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 10:11:39 ] warningを個別に禁止・許可することができるようになりましたか?
618 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 10:56:35 ] なんで道具に頼るんですか?
619 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 15:29:58 ] チェックを人間の目に頼るのは小学生まで
620 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 17:13:21 ] 幼稚園児?保育園児?
621 名前:デフォルトの名無しさん [2007/04/15(日) 20:45:08 ] >>617 2000年問題とかは個別に禁止・許可できるよ
622 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 20:53:26 ] まだできないようですね。やれやれ。
623 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:09:08 ] できました。ありがとうございました。
624 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 00:19:47 ] ちょっと.code16モードで生成されるコードに疑問があるので質問させてください。 __asm__(".text\n.code16\n.global _start\n_start:\njmp boot_main\n"); void asm_putc_ng(char c) { __asm__("int $0x10" :: "a"(0x0e00|c), "b"(0x7)); } void asm_putc_ok(char c) { __asm__( "mov 6(%ebp), %eax\n\t" // ココ。gccは8(%ebp)を生成するが・・・ "or $0x0e00, %ax\n\t" "mov $0x07, %bx\n\t" "int $0x10\n\t"); } void boot_main(void) { asm_putc_ok('D'); asm_putc_ng('D'); } BIOSコールで文字を出力するサンプルですが、.code16モードだと 引数のスタック上位置の計算がおかしく、引数が正常に渡りません。 こんなコードが生成されます: asm_putc_ok: ! asm_putc_ng でも同様のプリアンブルを生成 pushl %ebp movl %esp, %ebp subl $4, %esp !char c用にスタック領域を取る movl 8(%ebp), %eax !第一引数をEAXに入れようとしてるがオフセットおかしくない? movb %al, -4(%ebp) !charなんでALだけ領域に書けば十分 リターンアドレスは16bitなので、ここは8(%ebp)でなく、6(%ebp)が 正しくないでしょうか?実際、それだと指定の文字を正しく出力します。 しかし、超メジャーなx86 gccでバグがあるとも思えないので、私が 単に16bitコード生成のための何かをしていないのではと悩んでます。 どうすれば正しいコードを生成させられるでしょうか?
625 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 00:41:38 ] >>624 それはそういう仕様 16bitモードで使いたいなら素直にnasmでも使っとけ いや、絶対その方が不可解なところで悩まなくていいから。
626 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 01:20:06 ] MJD?でもサンクスコ。しかし説明だけ読んでる限りだと .code16 - 16bit-based instruction, 32bit data .code16gcc - 16bit-based instruction (partly 32bit), 32bit data .code32 - full 32bit instruction/data となると思ってしまうよなー。実際には16bitモードなアセンブラを埋めるために 使うことだけ想定してて、16bit C compilerとして使うことは想定してないのね。
627 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 15:09:24 ] ttp://gcc.gnu.org/ml/gcc/2007-04/msg00509.html さてさて、4.2はどうなることやら。
628 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 17:00:31 ] ttp://journal.mycom.co.jp/news/2007/04/10/019/index.html ってことで、FreeBSD 7はgcc-4.1にしようと作業中で、 アプリとコンパイラの両方でのバグ出しも進んでいるみたいですな。 4.2系と違って4.1系はsnapshotもきちんと1週間毎に出てきているし、 4.1.3は結構よさげなリリースになる予感。
629 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 21:55:40 ] もう世間のディストリのbugzillaは4.2/4.3の対応待ちとかで埋まってるのに、1周期ずれてるなw
630 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:06:43 ] 629はかなり頭が悪そうな雰囲気
631 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:36:43 ] 広く出回ってるアプリケーション?をgcc3.4系でコンパイルする際に つけといたほうがいいオプションってありますか? ほとんどの場合以下のオプションをつけてます。(xeon 5130の場合) CC=gcc \ CFLAGS='-march=nocona -mcpu=nocona -m64 -O9 -mmmx -msse -msse2 -msse3 -mfpmath=sse' \ LDFLAGS="-z combreloc" \ ./configure \ (その他configureのオプション)
632 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:18:02 ] >>631 -Wall -pedantic -std=c99 --input-charset=??? --exec-charset=euc-jp
633 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:24:53 ] エラーチェックを厳しくするオプションと ソースにマルチバイトが含まれてるときの処理 でしょうか? 自分で書く際には役に立ちそうですが 人のコードコンパイルするときには使いにくそうですね。 最適化オプションの話がききたかったのですが ...とおもったらここプ板なんで作る側の板なんですね 検索できてそのまま書いてしまいました。 板違いですねorz
634 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 23:35:31 ] >>631 とりあえず重複が多い。info見とき。
635 名前:デフォルトの名無しさん mailto:age [2007/04/21(土) 00:58:26 ] スレ違いかもしれませんが、他に適当なスレがないのでここで質問させてください。 arについてなのですが、同じ名前でディレクトリが違うオブジェクトファイルをライブラリに詰めたとします。 たとえば、 /dir1/obj.o /dir2/obj.o があったとして、 ar rcs libtest.a /dir1/obj.o /dir2/obj.o とやったような場合です。この場合libtest.aの中にはobj.oが2つ存在することになります。 このライブラリを展開すると、obj.oは1つしか出てきません。 2つ出るのかもしれませんが、1つは上書きされるようです。 オブジェクトファイルを2つとも取り出すにはどうしたらいいんでしょうか。
636 名前:635 mailto:sage [2007/04/21(土) 13:15:51 ] どうやらどのオプションを使っても方法がないようなので、 自分でbinutilsのソースを書き換えました。
637 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 19:16:03 ] GCC 4.2.0 Status Report (2007-04-24) gcc.gnu.org/ml/gcc/2007-04/msg00850.html 4/29フリーズ&RC 5月第一週リリース予定だそうな 出来はいいからとにかくリリースして4.3に集中してほしいな
638 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 19:26:07 ] >>637 いままでのstatus reportや、RCの出来を考えると、4.2系には不安がいっぱいというか まるで期待が持てないものねぇ。
639 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 08:04:32 ] リリースするより、4.2はなかったことにして4.3になるはずのものを 4.2にスライドしてくれる方がいいんじゃない?
640 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 13:02:19 ] >>639 そういう意見も強かったようだけど、4.2をそのままリリースすることに決まっちゃったからねぇ。 しょうがないので、4.2の下手なマイナーアップデートをせず、4.1と4.3に力を注いで欲しいところ。
641 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 18:08:00 ] ttp://www.itmedia.co.jp/enterprise/articles/0705/01/news010_4.html > GCC 3.3よりもGCC 4.0でビルドする方が高いパフォーマンスを得られる 3系の方が速いのかと思ってた
642 名前:・∀・)っ-○◎● mailto:sage [2007/05/01(火) 19:51:59 ] 絶対嘘。3.3のほうがバイナリ速い。
643 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 20:26:49 ] 場合によるだろ すぐに絶対とか言っちゃうやつは馬鹿な証拠
644 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 20:57:03 ] >>641 何がしたいのかよくわからない記事だね。 ブラウザを起動させたまま同じページを100回ロードするとかの方がいいだろうに。 あえて>>641 を材料に考えると、3通りの全てのテストで3.3と4.0の差は optの方がnooptより縮まっているのだから、3.3の方が4.0より最適化が 優れていると考えるのが自然だと思う。 全条件にわたって4.0のグラフの方が短いのはシンボル解決など起動時の負担が 小さくなるような仕様の変更があったのではないかと推測。 あと、今時こういう測定で「画像主体」はないんじゃないかとw CSSバリバリとかDHTMLとかSaaSとか、重さを感じるページってのはそういうの なんだからその辺でやってくださいよと。
645 名前:デフォルトの名無しさん [2007/05/01(火) 21:26:37 ] 団子ちゃんが言うことは絶対なんデス><
646 名前:デフォルトの名無しさん [2007/05/01(火) 21:50:00 ] つーかさ、そこらのコードがちょっとばかし速く動くより、 ダンゴさんのコードが速く動くことのほうが、 全世界的に見て有用だろ。
647 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:35:36 ] 団子のコードが速くなる3系>>>>>>firefoxが速くなる4系
648 名前:・∀・)っ-くコ:彡- mailto:sage [2007/05/02(水) 00:29:51 ] いかさまだろ
649 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 05:57:54 ] 短時間で連レスする奴が並んでるな 後半消えてるけど
650 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 07:19:33 ] ITmediaも暇なことしてるなw httpなんて最適化で劇的に高速になるわけねーんだから ユーザーがビルドしても時間のムダでしかないだろ。
651 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 11:03:52 ] これほど偉そうな割にピント外れのレスも珍しい。
652 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 12:33:38 ] 社員乙
653 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 15:16:59 ] レンダリングのことをダウンロードだと思っているようで。
654 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 15:19:13 ] 言い方変だったな。 firefoxではローカルファイルを表示できないと思っている、というほうが正しいか。 まあGWだから仕方ないけど。
655 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:39:12 ] HTML解析と内部DOM生成、スクリプトとのやりとり、レンダリング どれも重そうだよ
656 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 00:51:07 ] しょうもないことしてるな。 一ランク上のプロセッサ買ったほうが手っ取り早いだろ。
657 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 00:51:56 ] そのネタもう飽田
658 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 06:06:16 ] フルアセンブラでブラウザ書けばきっと速いよ ハ_ハ ('(゚∀゚∩ はやいよ! ヽ 〈 ヽヽ_)
659 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 06:10:02 ] そのネタも、最適化なめるな突っ込みも、もう飽北
660 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 11:21:58 ] シェルスクリプトでブラウザ書けばきっと(ry
661 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:17:10 ] ハンドレンダリング これ最強。
662 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 04:56:58 ] >>661 だよな、テーブル表記なんか心が和む微妙な曲線で描かれるんだぜ
663 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 12:47:42 ] openmpが使える環境だと4.2の方が圧倒的に速いね
664 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:23:45 ] GCC って今 rand のアルゴリズムに何使っとん?
665 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:29:20 ] GCCって乱数なんか使ってるの?
666 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:30:30 ] 使っているlibraryによる。 liblibertyなら↓を読んで。 gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libiberty/random.c?rev=1.9&content-type=text/x-cvsweb-markup
667 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:37:24 ] TYPE_0 は線形合同法っぽいけど、他のは・・・何だろ。 これが噂の遅延フィボナッチとやら? とりあえず、TYPE_0 以外では >> 1 はしてるっぽいので安心した。
668 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 04:01:19 ] >>664 で、使ってるライブラリは何なの? MinGW? Cygwin? OSのlibc?
669 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 06:22:54 ] >>668 別に自分の環境のだけのが知りたいわけでもないんで。
670 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 06:43:36 ] そもそもgccとrand()に何の関係もないわな。
671 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 07:04:49 ] ぬ? UNIX/Linux だと OS が提供してるの?
672 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 07:48:20 ] コンパイラとライブラリが別
673 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 07:50:26 ] いや、ライブラリ提供者。
674 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 08:01:54 ] >>671 どんなOSでも、OSのランタイム環境の一部として、配布されている。 開発環境がない実行環境でも動かないといけないから。 今時はほとんどダイナミックリンクだしね。
675 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 08:07:18 ] >>674 OSのランタイム環境ってなんだよw rand関数提供してるOSなんて見たこと無いぞ VBのラインタイムと混同してないか? 半端な知ったかぶりするなら黙ってたほうがいいよ
676 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 08:21:27 ] >OSのランタイム環境の一部として いや、ライブラリ(ry
677 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 08:40:41 ] >>675 UNIXではOS添付のlibc内のrand()を使うのが当然。 SolarisでもLinuxでも*BSDでも、そう。 gcc以外のコンパイラでもrand()は同じ。 MinGWだって、MinGWがrand()を提供しているんじゃなくて、msvcrtが提 供しているわけで、gccとは関係ない。
678 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 09:06:49 ] へー。勉強になった。
679 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 19:38:26 ] int msvcrt_rand() { rand_seed = rand_seed * 214013 + 2531011; return (rand_seed >> 16) & 0x7fff; } int newlib_rand() { newlib_seed = newlib_seed * 6364136223846793005L + 1; return (newlib_seed >> 32) & RAND_MAX; } long glibc_rand() { x=x*1103515245+12345; return x & 2147483647; } それぞれの実装
680 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 19:47:10 ] glibc は何でいつまでもこんな糞実装なんだろう? 右シフトもしないなんて。
681 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:09:27 ] >>680 互換性
682 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:12:47 ] RAND_MAX を変えるのは流石に困るが、 乱数アルゴリズムに依存したコードなんて書いてる奴がいるのか・・・。
683 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:30:56 ] >>682 つ モンテカルロ法 乱数のアルゴリズムつーか、質が問題
684 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:32:34 ] つ[再現性]
685 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:33:23 ] 質が良くなる分には問題ないと思うけど。 というか、モンテカルロ法に rand を使う時点で問題がある気もする。
686 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:36:36 ] そんなに再現性が欲しいなら自前で実装しそうなんだがなあ。
687 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:45:00 ] だよなあ
688 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 21:49:10 ] 結局はしょっぱいプログラムの尻拭いってことか。
689 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 23:58:56 ] >>679 man読むとこんなの使ってないってはっきり書いてあるんだけど glibc
690 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 00:06:07 ] 質じゃなくて、性質に依存している。 性質が明記してあるのだから当たり前。
691 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 13:43:44 ] 擬似乱数 ttp://pc11.2ch.net/test/read.cgi/tech/1146071975/l50
692 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 13:19:01 ] ファイルスコープで extern int a = 0; とか書くと g++ 4.0.1 だと警告出るのな。 まあそれはいいんだけど、なぜか 2 度も同じ警告が出る。 これはバグと言っていいんだろうか。
693 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 06:59:55 ] 4.2きたね。 まだ正式リリースじゃないっぽいけど。
694 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 07:20:08 ] >>692 ヘッダに書いてるの? ソースは分割してるの? その定義が使われている .c ファイルは何個あるの?
695 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 07:35:16 ] やればわかる。 .c 1個のみ。
696 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 15:10:49 ] 4.2ちょっと試してみたけどやっぱりあんまり速くなってなかった。 というか遅くなってた。 4.1.2と同じオプションでコンパイルしただけだけど。
697 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 15:35:33 ] コンパイル速度が遅くなったのか。 それとも実行速度が遅くなったのか。
698 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 15:53:10 ] 実行速度だよもちろん。 -O3 -fomit-frame-pointer -march=pentiumpro くらいしか指定してないけど。
699 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 16:34:39 ] コンパイル速度の事かと思った。
700 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 17:03:08 ] コンパイル速度が速いに越したことは無いが そもそも実行速度が速くなればフィードバックするっしょ
701 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:19:15 ] May 13, 2007 GCC 4.2.0 has been released.
702 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 03:17:36 ] >>698 今時pprowmarch=nativemtune=nativeでやってみたら。
703 名前:デフォルトの名無しさん [2007/05/18(金) 15:56:09 ] openmpは反則的な速さだ
704 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 20:22:05 ] gcc 4.3.0 まだー?
705 名前:デフォルトの名無しさん [2007/05/22(火) 21:29:58 ] 3.4.2 を使っている人いますか?
706 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 15:05:21 ] います。
707 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 17:27:07 ] 1.36.3を使っている人いますか?
708 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:55:53 ] います。
709 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 05:17:05 ] 2.95.xを使った事のないひといますか?
710 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 07:10:41 ] います。
711 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 07:52:44 ] います。
712 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 09:01:27 ] living roomって日本語でなんだっけ?
713 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 09:20:11 ] >>712 居室。一般住宅なら居間。
714 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 14:52:26 ] きょます。
715 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:22:37 ] gcc-4.2.0ってなんで自分のコンパイルにあんなにいっぱいメモリ喰うの?
716 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:26:53 ] います。
717 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:20:39 ] >>715 メモリを使うことで、gccが実際に使える環境かどうかを試験しているのです。 使えない環境なら、ビルド自体ができないというフールプルーフ設計です。 gccのビルドよりメモリを食うソフトはありませんから。
718 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:31:29 ] メモリ256MB スワップ892MB FreeBSD-currentでgcc4.2使ってxorg7.2コンパイルしたら gcc internal error で落ちるから何だとおもったら swap_pager_getswapspace: failedワロタ
719 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 04:00:28 ] >>717 C++ならもっとメモリ食うよ
720 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 08:13:31 ] >>718 スワップとあわせて1G…現状では小さすぎるような。 32bitカーネル環境だとしても、合計で4Gの壁ギリギリかそれ以上とらないと、最近のアプリ全般自体が厳しいかも。 合計1Gだと、デスクトップをXfceなどで、しかもチューンして行かないと厳しいと思う。 もしくはそもそも、ビルドしている間はXやサーバ類を全て切った状態でやるか。 ま、コンパイラ周りでメモリリークしてる可能性もあるので、修正版を待ちましょう:-)
721 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 15:33:26 ] twmなら快適です
722 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 06:47:50 ] >>720 そんなことない。 メモリ 256MB、スワップ 1GB 程度でも GNOME だって充分動く。 Xorg のコンパイルでアホみたいにメモリ食うのは GCC のバグだし。 gcc.gnu.org/bugzilla/show_bug.cgi?id=30052
723 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 07:11:51 ] 4.2のかなり大きなバグがまた一つ…って感じか。 にしても、FreeBSD-currentを筆頭に、gcc-4.2に移行するOSがかなり多いのにはびっくり。
724 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 15:53:34 ] 4.2はいらない子
725 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 16:03:46 ] 4.2はダメな子
726 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 20:04:47 ] >>722 gcc-4.2.0のコンパイルにメモリバカ食いするのもgcc-4.2.0のバグですか?
727 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 20:37:33 ] 仕様です。 4.2がコンパイルできないようなマシンで使うなということです。
728 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:18:41 ] openmpのコード吐かせてるけど これ対してというか全然糞もマルチスレッド化されねーぞw どうゆうことよw
729 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:56:11 ] つ export OMP_NUM_THREADS=16
730 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 01:16:35 ] >>729 それでも全然はやくねーぞ?QuadCore-Xeon2コ積んでるけど なんもはやくね。VCCだと早くなるんだよね。 絶対4.2は障害児だ
731 名前:・∀・)っ-くコ:彡- mailto:sage [2007/05/27(日) 02:01:18 ] 4.xは何かおかしい。やっぱ3.3が最強か
732 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 13:44:26 ] >>731 gcc-snapshotが最強
733 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 14:56:04 ] 3.3.3が一番いい子 4.3がそれを越えるいい子になってくれますように… 多分4.2よりも赤帽拡張の入った4.1.xの方が性能いいと思う
734 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 15:01:22 ] >>726 つ stage2
735 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 15:08:12 ] >>733 とはいえ、C++のことを考えるとgcc4が必須になりつつあるからなぁ。
736 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 15:08:50 ] 一応今入れているのがsnapshot。これだとバージョンが4.2.1って表示されますね。 でも4.2に変えてからJavaのソースからVMをmakeしようとするとエラーが出るようになった(TT) >>731 > 4.xは何かおかしい。やっぱ3.3が最強か 詳しいことはよく解らないけど、マルチメディア系のアプリとかmakeでエラーが出るやつも 3.3とか使うと何故かエラーなしでmakeできたりしてました。以前から。。。
737 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 16:06:11 ] >>736 つ-fno-strict-aliasing
738 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 11:38:36 ] それってWarnが厳密にErrorになっただけじゃないのか。
739 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 17:44:14 ] GCCは3以降特に4.0あたりから、文法以前に論理的に怪しい挙動に陥りそうなコーディングをエラーにする方向に行ってるからね。 逆にいえば、>>736 が言っているような形でエラーが出るコードは、該当する部分の前後をチェックしながら修正かけるのが筋。 今でもコンパイルが通ってi386で動いてもPPCやSH,ARM、酷いときはamd64やia64でもコンパイルは通るけど挙動が狂ってしまうようなコードを平気で書いてるひとが少なくないようだし …Linuxなどのカーネル周りのコードでもそういうコードがあって、lkmlなどで修正が飛び交うことがよくある。
740 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 20:01:19 ] アライメント事情はよくわからんしなー
741 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 10:53:10 ] openmpは4.2じゃないと使えないの?
742 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 16:05:45 ] 4.3でもいけると思うけど。
743 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 20:55:27 ] ディストリがパッチ当てたやつだと4.1でもいける
744 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 17:09:48 ] gcc4.1で自動ベクトル化を使おうとすると too many BBs in loop というメッセージが出るのですが、BBって何ですか? それと not vectorized: multiple exits はどのようにしたら解消できるのでしょうか? インテルコンパイラではベクトル化できていました。 その際のオプションは -O3 -xW -ansi_alias です。
745 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 04:26:30 ] >>BB Bベクトルに決まってるだろ?
746 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 08:33:50 ] 真・三國無双BB
747 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 09:50:51 ] もはやBB戦士の時代ではないのか・・・
748 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 12:03:14 ] ガチャポン戦士こそ至高
749 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 13:31:50 ] BBクィ(ry
750 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 19:11:33 ] gcc.gnu.org/ml/gcc/2007-06/msg00201.html * Dataflow branch. Kenny et. al. plan to merge this Monday. gcc.gnu.org/ml/gcc/2007-06/msg00206.html I wasn't sure of the Objective-C 2.0 timing until recently... I'd like to contribute it during stage 2. gcc.gnu.org/ml/gcc/2007-06/msg00211.html Intel is planning to contribute Intel BID runtime library before July 1.
751 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 02:22:42 ] gcc4で、デフォルトで定義されてるシンボルを知るのってどうしたらいいでしょう? (-D__unix__ とか -D__i386__ とか -D__GNUC__=2 とか) 昔は gcc -v -E - < /dev/null で確認できたのですが、 gcc4からは表示してくれなくなったようなので…
752 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 04:52:28 ] gcc -dM -E - < /dev/null 詳しくはinfoのPreprocessor Optionsをどうぞ。
753 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 10:13:20 ] おおおおおおお。 ありがとうございました。一度きちんとinfoに目を通します。
754 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 08:23:00 ] よーし、おまいら、もう一度 gcc --help と叩くんだ
755 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 17:08:52 ] $ gcc --help -bash: gcc: command not found
756 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 21:37:42 ] ∩___∩ / ノ \ ヽ | ● ● | 彡 (_●_) ミ /、 |∪| ,\ >>755 この鮭の切り身やるから帰れよ /.| ヽノ | ヽ ,,/-―ー-、, --、 .|_,| r-、,'''";;:;;:;::;;;;:;;::;:;:;;::;:;`'- /_,l,,__ ) |,,ノ;;:;r'" ̄ ゙̄^"`Y'-、;;;::;:;::;:;:;:;::;:| .ヽ,′ ; `"";;;;;⌒゙') ´`゙'''''''''''‐-‐'"`‐-‐'"゛ `゙´ | .‖ / ("___|_`つ
757 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 21:58:44 ] わろす
758 名前:デフォルトの名無しさん [2007/06/22(金) 09:15:00 ] 4.2.1マーダーーーー????
759 名前:デフォルトの名無しさん mailto:age [2007/06/23(土) 03:33:34 ] うまうま
760 名前:デフォルトの名無しさん mailto:sega [2007/06/29(金) 18:51:40 ] コンパイル(リンク)時に、ある関数をリンクしようとしたら メッセージを出すようにしたいんだけど どうしたらいいのかね
761 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 18:59:32 ] >>760 ELFだったら、リンクされる関数のオブジェクト内に".gnu.warning"セク ションを仕込む。
762 名前:デフォルトの名無しさん [2007/07/01(日) 00:23:19 ] >>761 サンクスコ Cのソースからセクションを仕込む方法は自分で調べる
763 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 10:14:19 ] link-warning.hでググれ www.gnu.org/software/gsasl/doxygen/link-warning_8h-source.html
764 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 15:17:06 ] 素直に .gnu.warning でググりゃいい。 www.google.com/codesearch?hl=ja&inlang=ja&ie=Shift_JIS&num=100&q=
765 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 15:18:04 ] リンクミスった。こっち。www.google.com/codesearch?q=.gnu.warning
766 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 21:52:31 ] GCC4.0.2でCygwin上でno-cygwinオプション付けたら定義されてないって怒られた…
767 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 22:15:18 ] そりゃそうだ。Cygwin付属のGCCは特製。 自前でビルドしたGCCなら、プリプロセッサ識別子の定義と リンクさせるライブラリの選択をどうにかすれば何とかなると思う。
768 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 22:24:56 BE:396279465-2BP(8000)] ありがとう。やってみる。
769 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 17:03:47 ] 4.3.0がstage2に突入しているね。4.2.0の時とは違って、かなり順調な感じ。 ttp://gcc.gnu.org/ml/gcc/2007-06/msg00954.html
770 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 21:34:44 ] あと半年程度で出てほしいな… ディストリパッチ付きの4.1はいい環境だがさすがに飽きる
771 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:24:19 ] 4.2は鬼っ子で終わるか…
772 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 04:11:32 ] >>771 そもそも、流産させようという意見のほうが強力だったわけだし…
773 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 16:58:18 ] 4.3はいつ出ますか?
774 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 19:34:27 ] >>773 ttp://gcc.gnu.org/develop.html#timeline を見るとわかるようにgcc-4.1はstage2入ってからリリースまで約8ヶ月、 4.2は約14ヶ月という具合にバラバラ。 なので、半年以上先だろうなぁという予想は立つけど、いつになるのかは さっぱりわからん。
775 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 23:00:06 ] どうせ赤帽の都合でしょ?
776 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 01:36:09 ] ちょっとbinutils/gcc/gdbのツールチェインのビルドについて判らない点が あるので教えてください。 組み込みだとターゲット用にbinutils/gcc/gdbの3点セットをまず作る訳ですが、 ここでgccのビルド方法としては ・素の、libcなしのgcc(--without-headers)をビルドするのみ ・libcなしgccをビルドした後、そのgccを使って--with-headers=...で何らかのlibcを組み込んだgccをリビルド の2つがあります。で、質問なのですが、 ・後者のgccで-nostdlibすれば、前者のlibcなしgccを使うのと同じことですか? ・前者のgccで別途ビルドしたlibcとリンクすれば、後者を使うのと同じことですか? 色々な構成にあわせてgccをビルドするのが面倒なので、gccとしては libc抜きgccのみ用意して、後はnewlib/uclibc/dietlibc/eglibcを 別途外部ライブラリとしてビルドし、アプリ側ビルドファイルのほうで リンクするlibcを選択するような形にしようかと考えています。
777 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 10:30:28 ] >>776 libgccどうすんの?
778 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:53:08 ] from GCC ML ------------------------------------------ Subject: 4.2 branch frozen for release I plan to spin the GCC 4.2.1 release tomorrow. Please do not make any further changes to the branch. Thanks,
779 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 09:18:52 ] #define int64 long int(longとintの間にスペースがあるのがミソ)を gcc実行時の-Dオプションで実現したいんですが どうすればいいでしょうか
780 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:12:04 ] 自己解決しました どうもすみません
781 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 11:49:28 ] typedef を使わないのはソースをいじれないから?
782 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 09:33:39 ] 糞質問に糞レスw
783 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:49:21 ] 4.2.1キター
784 名前:デフォルトの名無しさん [2007/07/24(火) 15:05:58 ] >>777 そんなもん使うな。 初期化と割り算を避けまくればなんとかなる。
785 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:57:40 ] GCC でも VC++ と同じ形の #pragma pack が使えるみたいですが、 これってバージョンいくらくらいから導入されましたか?
786 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 19:01:39 ] >>785 タラちゃんに聞いてみたら
787 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:12:40 ] プリコンパイル済みヘッダってほとんど使われてないよね
788 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:20:22 ] Mac OS X
789 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:23:26 ] そもそも使い方が分からない gccをビルドするときにgch作られてるなと思うくらい
790 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:24:44 ] .hをGCCに渡すだけだったような
791 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:28:57 ] pch使うにはちょっとコツがいる。英文ページに解説があるけど...
792 名前:デフォルトの名無しさん [2007/08/05(日) 16:22:57 ] unsignedをforに使うと警告出るんだね・・・ 警告消す方法ないのかなぁ
793 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 16:36:51 ] >>792 符号有り無しの比較だろ?なら型を合わせろ。
794 名前:・∀・)っ-くコ:彡- mailto:sage [2007/08/05(日) 16:51:56 ] for (unsigned int i = 0; i < n; i++) とかなら、n の型が単にsignedなだけだろうが
795 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 16:56:22 ] ループカウンタとループ上限の値の型ははっきりと揃えるべし。
796 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:43:50 ] -Wno-sign-compareで消えるはず。
797 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:46:35 ] それは重要な警告だから解決とは言わん。
798 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:47:11 ] 消していいのか、と。
799 名前:・∀・)っ-くコ:彡- mailto:sage [2007/08/05(日) 18:53:01 ] 電車の脱線が起きても無視すれば運行に支障なしって言ってるのと変わらん
800 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:54:05 ] 集中砲火ワロタ
801 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 19:03:53 ] ダンゴ先生の発言はいつもピリリとしてるな
802 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 21:02:22 ] スレが進んでるかと思えばこんなかw
803 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 11:42:17 ] その質問をコンパイラのスレに書き込む時点で腐ってる
804 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 08:55:47 ] g++ 使って独習C++の例文ためしてたらそのままでは、エラーがコンパイルできなかった。 template <class T> class Num { public: T x; Num(T i) { x = i; } virtual T get_val() { return x; }; }; template <class T> class Square : public Num<T> { public: Square(T i) : Num<T>(i) {} T get_val() { return x * x; } }; を一応継承したクラスで、"x"を"Num<T>::x"としたらコンパイルできたけど、 他のコンパイラでためしたら↑でもできるんだが、このままで、g++で通すこと出来ませんか?
805 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 09:05:10 ] >>804 そのままじゃ無理。 this->x でもいける。 gcc.gnu.org/gcc-3.4/changes.html "In a template definition, unqualified names will no longer find members of a dependent base ..."
806 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 12:01:20 ] >>805 サンクス
807 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 10:57:04 ] インラインアセンブラの構文を知りたいと思い、 4.21のgcc.infoを読んでいるのですが、 5.35 Assembler Instruction with C Expression Operands しか見つからず、制約に関することしかわかりません。 構文はどこに載っているのでしょうか。
808 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 11:02:05 ] as.info
809 名前:807 mailto:sage [2007/08/08(水) 21:24:08 ] アセンブラの構文ではなく、 インラインアセンブラの構文なんですが...
810 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 22:46:48 ] 制約については gccint.info か gcc/config/*/*.{c,h,md} を眺めれ。 ターゲットとか記述したいものを書けば誰か答えてくれるんでね?
811 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 23:02:08 ] www.google.co.jp/search?q=gcc+%E3%82%A4%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%A9 こういうのとは違うのかね
812 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 23:16:36 ] アセンブラの構文 + インラインアセンブラの制約 以外に何が知りたいのか分からない。 asm("mnemonic" : "+r"(var), "r"(var2) : "="(var3) : "g"(var4)); のコロンで区切る部分の意味を知りたいなら 5.37 Constraints for asm Operands を。 ニモニックそのものを知りたいならここじゃない何処かへ。
813 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 12:56:59 ] >>799 いや、さすがにそれは支障あるw
814 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 12:59:35 ] ここではないどこかへ
815 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 21:15:08 ] >>813 >>796 も同じくらい支障があるって話だ。
816 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 16:43:58 ] GCC 4.3.0 Status Report (2007-08-09) gcc.gnu.org/ml/gcc/2007-08/msg00181.html 来月にはstage3に入るらしい うまくいけば今年中に出るかなぁ…
817 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 17:15:58 ] C++0x のどのくらいかは 拡張機能として対応してくれるのかね。
818 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 00:46:49 ] >>817 既にいくつか対応してる。 gcc.gnu.org/gcc-4.3/cxx0x_status.html
819 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 07:08:04 ] GCCで文法チェックだけするって無理? リンクとかしなくていいから(単体で)コンパイルできないときだけ エラー出してほしい。
820 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 07:30:56 ] >>819 リンクどころかアセンブルさえせずにコンパイルするだけなら-S アセンブルまでなら-c
821 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 08:10:07 ] && って何だー
822 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 08:16:06 ] >>821 釣り? マジならC初心者スレへ。
823 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 08:23:00 ] >>820 ありがと!でもけっこう遅いなあ・・・。文法チェックだけならもっと速いと思ってたんだが・・
824 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 08:28:40 ] >>823 Cならsplint使えば? +skip-sys-headers +single-include +posixlib な感じ?
825 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 08:40:41 ] >>822 >>818 にある右辺値参照の方ね。
826 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 09:48:04 ] >>819 -fsyntax-only
827 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 10:55:28 ] >>825 あぁ、operator&&ね。
828 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 10:56:29 ] 違うだろ。
829 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 13:21:45 ] 破壊的コピーをするみたいだが、 それを意識してプログラムするのは難しそうに感じる。 どうなんだろう。
830 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 13:33:25 ] move semanticsでググれ。 >>829 > それを意識してプログラムするのは難しそうに感じる。 それが欠点になる領域ではC++は使わないのが良い。
831 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 18:59:36 ] >829 ライブラリ作る側が頑張って対応してくれれば使う俺らはあまり考えなくても(゚Д゚)ウマー、というのが妥当な使われ方なんじゃないの? 一般人が template metaprogramming なんかしない(よな?)のと同じようなレベルで。
832 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 19:54:04 ] *_ptr見ても、それが難しいのは分かるだろ? C++はもはやプログラミング言語の実験場だ!
833 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 14:33:30 ] 次期では auto_ptr は deprecated になるっぽいな。 shared_ptr を推奨するようだ。
834 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 17:00:23 ] C++ 俺に近づくとやけどするぜ
835 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 14:41:10 ] AT互換機でMacOS用のバイナリを作るクロス環境って・・・作れないのかな? ググってみても事例が見つからない
836 名前:デフォルトの名無しさん [2007/08/27(月) 14:44:15 ] 失礼 age忘れた
837 名前:デフォルトの名無しさん [2007/08/27(月) 15:07:59 ] >>833 次期って何の次期?
838 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 15:21:49 ] ISO/IEC 14882:2003 の次期のことじゃね
839 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:52:45 ] ldd で出てくる共有ライブラリのパスを書き換えることってできない? $ ldd foobar libfoobar.so.1 => /somedirectory/libfoobar.so.1 (0x00000000) って絶対パスになってるんだけど、このsomedirectroyを移動したいの。
840 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 17:21:40 ] >>839 質問を文字通りに受け取るなら、 $ ldd foobar | sed "s/somedirectory/anotherdirectory/g" で。 ライブラリのパスは、実行ファイル内では ・相対パス(basename)が入っている場合 ・絶対パスが入っている場合 がありんす。 前者は、$LD_LIBRARY_PATH を指定すればいい。 後者は、バイナリエディタで実行ファイルを書き換えるとか、 $LD_PRELOAD で上書きするとか。
841 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 17:31:47 ] もちろん下の意味だけど、LD環境変数は使いたくない。 そーかーやっぱバイナリ書き換えが必要かー。そういうツールないのかなあ。 とにかくありがと!
842 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 17:47:36 ] /etc/ld.so.conf.d?
843 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 14:10:54 ] man ldconfig
844 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 14:21:24 ] >>842 deb系のディストリか? 普通は/etc/ld.so.confだと思うけど /etc/ld.so.conf.dがあるならそのディレクトリの中のファイルを参考に 自分でパスを追加したいのを作ればいい 追加したらrootで # ldconfig これで環境変数のキャッシュを更新してくれる
845 名前:デフォルトの名無しさん [2007/09/12(水) 14:34:48 ] gcc.gnu.org/ml/gcc/2007-09/msg00240.html GCC 4.2.2 RC1 gcc.gnu.org/ml/gcc/2007-09/msg00286.html GCC 4.3.0: Stage 3 順調に進んでるのだなァ…
846 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 16:58:07 ] >>839 chrpath は?
847 名前:デフォルトの名無しさん [2007/09/13(木) 19:56:13 ] ゲーツェーツェー
848 名前:デフォルトの名無しさん [2007/09/13(木) 19:57:04 ] っていうか、ジーダブルシーって言う奴がいてムカつく。
849 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 20:16:43 ] ジーシーシーでいいじゃんよねー
850 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 21:38:03 ] IEEEはアイイーイーイ−だよな。 GCCは日本人らしくグニュ・コンパイラ・コレクションと呼ぼう
851 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:35:40 ] あいさんいー
852 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:50:28 ] イェェェ!
853 名前:デフォルトの名無しさん [2007/09/14(金) 08:58:48 ] 発音は大事だ。 ヘッケラー・アンド・コッホ とか言うバカもんがいるが、なぜドイツ語の間に「アンド」などという英語が含まれているのか。 元がドイツ語なのだから、全部ドイツ語にして 「ヘッケラー・ウント・コッホ」と呼ぶべきだ。
854 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 09:13:36 ] GNUで言語も作ってしまえ ライセンスはもちろんGPL
855 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 09:15:43 ] ・ウン ・コ
856 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 09:40:30 ] >>854 言語にはライセンス/コピーライトがありません。
857 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 09:41:48 ] マジレス禁
858 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 09:42:35 ] やけに伸びてるな、というときは期待できない と予め思いつつ見たけど、やっぱりウゼェ…… なんでこういうのにだけは以上に喰い付きがいいんだ
859 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 10:49:09 ] マジで言ってるわけじゃないだろw
860 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 13:11:54 ] ぐくっ
861 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 14:19:13 ] >>856 言語の仕様書がGFDLなんだろう、たぶん。
862 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 17:02:05 ] ADAスレがもう織田信長スレしか無い件
863 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 17:02:58 ] 違った武田信玄だったけどもう落ちてるオワタ
864 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 17:16:05 ] 英語は発音大事と言ってはいるものの、実際に インペろぅベド(imperoved)とか言われるとムカッと来るからな。
865 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 17:17:55 ] グロゥバロゥとかヴァアミアンとかね
866 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 01:22:29 ] 織田信長って言語まじであるの?
867 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 02:28:47 ] >>864 そんな英単語は無い
868 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 11:11:33 ] いまgdbのバグ?みたいなものを追いかけてて、再現条件が ・ある64bitローカル変数(long long)が ・最適化によってもoptimized outされずに ・スタックに取られずレジスタに直接アサインされる というあたりにあるのではないかと考えてます。この時 (gdb) p var の 出力での sign bit のハンドリングが違うような感じ>gdbのバグ? で、これの再現コードを作ろうとしているのですが、 ・レジスタに乗せる方向に誘導 -> register ・最適化させない -> volatile? にすると、register は無視で普通にメモリに乗ってしまってうまく いきません。で、 volatile register int64_t max asm("%edi:%esi"); でそんな風にならないかと試し中なのですが、↑はレジスタ1つ(32bit)なら いけるものの、2つで64bit変数を表したい時の書き方がわかりません。 どなたか教えてくださいませ・・・
869 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 12:47:51 ] アセンブリ手で書けばいいじゃん
870 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 14:00:44 ] デバッガから見える変数にバインドされるレジスタを、どうやって アセンブリ手書きで設定するのか、正直わかりません。 シンボルデバッグ情報に変数<->レジスタ・メモリアドレスマッピングは 入っていると思うんですが、これも手書きできるということ?もしかして インラインアセンブラではなく、フルアセンブラで書くという話なら それはちょっと自分の能力を越えてるような・・・
871 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 14:05:42 ] >>870 こんな関数でもコンパイルしてみりゃ何をすればいいか判るんじゃね? -- long long func(long long foo) { return foo; }
872 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 18:20:08 ] >>971 それって .debug_* セクションを自分で作れとやっぱり言ってる? info gdb-int してみたけど、激しくハードル高い・・・
873 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 18:37:11 ] >>872 戻り値は64bitのレジスタ変数と同じ状態になるわけだが。 ついでに、gcc -S-gすればデバッグ情報が漏れなく埋め込まれるわけだが。 もしかして、その程度の知識もないのにデバッガを疑っちゃってるわけ?
874 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 19:19:00 ] >>873 gdbが黒だとは言ってなくて、ただgdbからの見え方がその条件差で 必ず違うので、もっと詳しく見たいと思ってます。 そのコードだとgdbからは変数はレジスタにバインドされて見えないので 別の方法をまだ考えてますが、-Sのダンプでデバッグ情報埋め込み方法を 調べられるという考えは頭から抜けてました。やってみます。
875 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 09:32:01 ] もっと謙虚になって出直せ。
876 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 20:52:19 ] gdb のソース読めばいいのでは?
877 名前:868 mailto:sage [2007/09/16(日) 22:08:28 ] すみません、>>875 の通り、私ごときのレベルでしていい話ではなかったと 痛感しているので、全部なかったことにして下さい。このスレに書いていいと 認めてもらえる程度になるまでROMってます。
878 名前:デフォルトの名無しさん [2007/09/18(火) 13:32:01 ] i686環境で例えばPPC用に何らかのアプリなどをクロスコンパイリンゲすると 本当にPPC環境で動くもんなの??? 玄箱HGでも買おうかと思うのだが、さすがに玄箱でビルドとかすると、 PPC266MHzじゃつからろうなあ、と思って、 できれば速いi686環境でPPCにガチガチに最適化してから玄箱に転送できれば。
879 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 13:49:25 ] 何をビルドするの? ほとんどバイナリパッケージが揃っているけど? > 玄箱debian 「ガチガチに最適化」とかヲタ臭いことがやりたいなら、 ソースからバイナリパッケージを再ビルドすれば?
880 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 13:49:31 ] >>878 簡単なテストプログラム書いて、動くかどうかやってみればいいんじゃないの?
881 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 13:59:31 ] >>880 まだ買ってないだろw
882 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 14:01:16 ] >>881 linuxじゃないけど、クロス環境でやったことあるけど...
883 名前:デフォルトの名無しさん [2007/09/18(火) 14:28:24 ] クロス・ダァイッチュラント
884 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 14:29:50 ] kurohako遅いよ
885 名前:デフォルトの名無しさん [2007/09/18(火) 14:58:58 ] ゲーツェーツェーを来んあぴるするのに4時間くらいかかりそうだな Pentium3 500MHzでさえ4時間かかったのだから
886 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 15:04:49 ] コンパイルを4時間とか考えられないし見たことも無い俺は素人
887 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 15:24:52 ] X68kでgcc1.3のコンパイルに一晩かかった時代もありました
888 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 15:32:21 ] 動画のエンコードをやるようになると、4時間というのは大した時間に思えなくなる。 2passで47時間とかあるからな。
889 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 16:31:48 ] それはさすがにPCごと買い替えとか考えるべき時間のかかりようだと思う。
890 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 17:06:07 ] 24時間ビーテレだから 1時間2時間コンテンツでそれだけかかったらアレだが。
891 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 17:06:17 ] >>885 もっとかかったような気もするが… 寝る前にmakeしておくと、起きるまでには終わってるくらい。
892 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 17:13:12 ] 起きたらエラーで止まってたとか?
893 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 17:59:15 ] 昔は X11 をコンパイルするのに12時間とか普通やったよねぇ…
894 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 19:19:35 ] 今はOpenOfficeが身近で最もヤヴァいヤツだと思うんだがどうよ?
895 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 19:22:28 ] Qtのビルドはまいったな。ホントに一晩かかってしまった。
896 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 22:04:58 ] 時間かけたくないから、クロスコンパイルするって話じゃないのか?
897 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 09:59:48 ] 今でもクロスコンパイルが難しいアプリもあるけどね。 コンパイル時に実行ファイルを生成して利用するような奴。 昔Linux Zaurusで結構苦労した。
898 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 10:18:38 ] ちゃんとしたプロジェクトなら configure等でhostとtargetを指定できる
899 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 15:15:18 ] そもそも、クロスと名の付く奴はどれもこれもむずかしい。 「クロスカウンター」狙ってできる奴などいないであろうほど難しい。 「クロスコンパイル」やり方がまず難しいし、それでいいのかどうかの判断も難しい。 「マクロス」ガンダムのパクリなのか何なのか、評価の付け方が難しい。 「セクロス」難しい。
900 名前:デフォルトの名無しさん [2007/09/19(水) 15:25:33 ] GCC5になって3系で作ったときのバイナリの実行速度と4系の新機能がついに統合される夢を見たこともある。
901 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 15:33:37 ] ia32の最適化は限界なんだろ? 世の流れは爆速、爆熱CPUを求めてるみたいだね?
902 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 16:31:06 ] 流れは爆数コア、爆並列だ。
903 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 16:31:48 ] え、OSがついていけてないような?
904 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 16:44:53 ] 時代はオプテロン
905 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 16:55:13 ] >>903 そこで仮想化ですよ
906 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 17:48:48 ] いきなり豆知識 「殺菌灯」 ディパートメントゥストゥア(英語は発音大事だがこのように書くと非常にムカつくので注意が必要)などでよくある殺菌灯は 何か特別なものだと思い込んでいるのもいるが、あれは蛍光灯と同じである。 蛍光灯というのは水銀蒸気を封入し、そこに電荷をかけることで強力なUV-Cと呼ばれる紫外線を発生させる。 (封入されているのは水銀蒸気であるから、割れた蛍光管のそばにいるのは危険である) 蛍光灯と殺菌等の違いは、この紫外線をどう利用するかによって異なり、 蛍光物質で紫外線を吸収して可視光線に変換するのが蛍光灯 そういうことをせず、直にUV-Cを出すのが殺菌灯 というわけだ。 UV-C領域の紫外線は殺菌性に優れるが、皮膚に深く浸透して細胞まで害を及ぼすため 直視してはいけないのである。
907 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 17:50:44 ] GCCとどういった関係が
908 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 21:09:59 ] >>907 >水銀蒸気で殺菌する まで読んだ
909 名前:デフォルトの名無しさん [2007/09/19(水) 21:35:13 ] ↓で誘導されますた マルチスレッドプログラミング相談室 その6 pc11.2ch.net/test/read.cgi/tech/1187008532/ 【OS】 Debian Etch Linux kernel 2.6.18 【言語】 C pthread 【実行環境】 GNU gdb 6.4.90-debian gcc (GCC) 4.1.2 gdbでのマルチスレッドのデバッグ中、任意のスレッドでステップ実行をしていると とつぜんカレントスレッドが切り替わり、 ステップ実行していたスレッドの実行位置が失われる現象に遭遇します。 デバッグ対象のプログラムは、動作確認がとれているオープンソースのプログラムです。 原因、回避法等ご存知のかた、ご教示いただけないでしょうか
910 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 21:59:00 ] >>909 裏のブレークも引っかかった
911 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 22:12:45 ] >>910 仮に別スレッドのブレークポイントでスレッドが切り替わったとしても threadコマンドで元スレッドにもどれますよね? 切り替わった時点でステップ実行していたスレッドの現在位置が??() (こんな表示) になって元に戻れなくなってしまいます。
912 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 18:39:25 ] GCC4.2.2を使ってました。このスレを読んでいたら4.1か4.3にした方が良いような気がしてきたので 4.3をコンパイルしたらエラーもなく終わったのでインストール。 しかし。。。カーネルのコンパイルが出来ません(TT) getnstimeofdayとかudivdi3とかのエラー関係がでます。おとなしく4.1系に戻そう・・
913 名前:デフォルトの名無しさん [2007/09/22(土) 23:26:06 ] Linux(x86,32bit)で下記プロセサを使っている場合、-mXXX や -mcpu=XXX や -march=XXX には何を書くのが良いのでしょうか? processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 47 model name : AMD Athlon(tm) 64 Processor 3200+ stepping : 2 cpu MHz : 999.876 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow up pni lahf_lm ts fid vid ttp tm stc bogomips : 3537.29 clflush size : 64
914 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 23:46:49 ] -march=athlon
915 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 00:26:42 ] -march=athlon64
916 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 00:59:43 ] >>913 ゲントとかいうLinuxのサイトからですが gentoo-wiki.com/Safe_Cflags
917 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 01:33:38 ] じぇんつー
918 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 22:39:33 ] >>913 -march=k8 -msse3
919 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 23:43:46 ] 頼むからmarchを「マーチ」ちゅうのやめてくれと。
920 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 23:47:09 ] マーチです
921 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 01:23:18 ] ですマーチ
922 名前:920 mailto:sage [2007/09/24(月) 01:34:19 ] 予想通り
923 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 01:59:33 ] さりげな・く〜♪
924 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 10:05:21 BE:23579377-2BP(1)] >>913 -march=native
925 名前:デフォルトの名無しさん [2007/09/24(月) 18:27:32 ] gcc -Wp,hogehoge の-Wpって何をするオプションですか?
926 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 18:38:12 ] そんなんも知らんのか バカじゃねぇのw
927 名前:デフォルトの名無しさん [2007/09/24(月) 18:42:32 ] 質問を変えよう。 Fedoraのrpmのspecファイルを見ていると、CFLAGSに-Wp,-DXXX=YYYという指定をしている例がみられるの だけど、単に-DXXX=YYYとしない理由は何か考えられますか? gcc-4.1.2のinfoだと、-Wpはなるべく使うなと書かれているのだが...。 よろしくおねがいします。
928 名前:デフォルトの名無しさん [2007/09/24(月) 18:43:53 ] >>926 よろしく。
929 名前:デフォルトの名無しさん [2007/09/24(月) 21:57:37 ] 天才926降臨期待age
930 名前:デフォルトの名無しさん [2007/09/26(水) 12:27:49 ] MinGWの中の人がいつかきっとGCC3.4.6 for MinGWをリリースしてくれると信じてる。
931 名前:デフォルトの名無しさん [2007/09/27(木) 00:33:49 ] MinGW ゴールデンウィークが最小限なこと。 休みが一日しかないに違いない。
932 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 00:49:16 ] ゴールデンウィークなんて死語だぜ
933 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 00:50:02 ] ゴールデンウィークなんて(毎年)仕事だぜ
934 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 12:48:27 ] GCC online docs ジーシーシー オンライン ドクス なんだよドクスって ドクスとか言うな!!
935 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 13:04:36 ] >>931 2008年や2014年の 5月3日 = 土曜日 5月4日 = 日曜日 5月5日 = 月曜日 のことかー!!! # でも4月29日の昭和の日が火曜日だから、4/26(土)・27(日)・28(月)・29(火)の連休もとりやすいんだよねw
936 名前:935 mailto:sage [2007/09/27(木) 13:06:58 ] # やべっ、忘れてた。法改正されたから、2008年や2014年は5月6日が振替休日!
937 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 14:59:21 ] 掴もうぜ ゴールデンボール
938 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 15:55:44 ] gcc4.2.2rcが先月末にあがってたので入れてみた。 マーチネイチブ、エムチュンネイチブ、何気にいいですね。なんかアプリの動きが早くなった。
939 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 16:05:31 ] >>938 >なんかアプリの動きが早くなった。 たぶん気のせいだよw
940 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 16:28:39 ] >>939 気のせいかなwww 4.2が正式リリースされてすぐに入れた時は逆に遅くなったような気がしたけど、今度のはいい感じなんだけど なあ。mplayerなんかではgcc関連の値をセットしなくてもconfigureかけるとアプリが勝手に-mtune=nativeに 設定してくるね。
941 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 12:21:41 ] >>938 mtuneをエムチュンと読むのにmarchがマーチと読む心は?
942 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 22:06:39 ] >>941 エムアーチ
943 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 22:21:24 ] えむつね/えむあーち
944 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 23:02:36 ] むちゅーん むあーき
945 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 23:41:23 ] むとーね まるは
946 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 00:47:05 ] まーくエッチ
947 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 01:21:57 ] こうして日々GCCは進化していくのであった
948 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 17:34:00 ] エムアークゥィティクチュワ!
949 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 18:45:18 ] ウィキピィーディア
950 名前:デフォルトの名無しさん [2007/10/06(土) 18:25:57 ] gccの--paramって、gcc4から使えるオプションだっけ? あと、paramってコマンドラインでしか指定できないの?#pragmaで指定できると嬉しいのだが。
951 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 18:32:43 ] >>950 3でも使える。pragmaの件は知らん。
952 名前:大槻 [2007/10/06(土) 19:00:47 ] すべてはpragmaのせいです。
953 名前:デフォルトの名無しさん [2007/10/07(日) 00:18:12 ] ストールマンって今何してんの? まだemacsでオナニーしてんの?
954 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 08:52:40 ] 秀○やSAKURAでオナニーするよりよっぽど良いべ。
955 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 09:15:57 ] 少なくとも人の役にたってるオナニーだからいいじゃねぇか
956 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 09:38:54 ] 公開オナニーてっこと?
957 名前:デフォルトの名無しさん mailto:sega [2007/10/08(月) 01:29:18 ] あるデバッグオプションを有効にしてコンパイルすると、 Segmentation faultで落ちたときにソースのファイル名と 行番号を表示するという機能があるらしいんですが どのオプションでしょうか
958 名前:デフォルトの名無しさん [2007/10/08(月) 01:39:02 ] >>957 OSがわからんからLinuxだとエスパー。 行番号情報をバイナリに埋めるには、gcc -g だ。できあがったバイナリをstripしないこと。 % file ./your_broken_software して、not stripped と表示されることを確認。 でも、SEGV食らったときに自動で落ちた場所を表示するコードを埋める機能はgccには無いよ。 一部のLinuxには、catchsegvというコマンドがついてるからそれ使え。 % catchsegv ./your_broken_software
959 名前:デフォルトの名無しさん [2007/10/08(月) 01:46:54 ] うそだ、ごめん。catchsegvだと、PCの値とかバックトレースはでるけど、行番号は出ないね。 素直にgdb上で実行するのがよいと思うが?
960 名前:957 mailto:sage [2007/10/08(月) 02:39:57 ] >>959 catchsegvか・・・ オッケー、刻んだ!
961 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 03:56:23 ] PCがわかれば addr2line -e a.out pc で行番号わかるよ。
962 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 09:29:06 ] $ gcc -g foo.c $ gdb --batch -ex 'run あれば引数' ./a.out
963 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 11:05:30 ] gccのループ展開の抑制について質問させてください。 コードサイズの評価をしようとして、常用している -O3 に ループ展開の抑制だけを加えて -O3 -fno-unroll-loops -fno-peel-loops と したんですが、ループ展開を止めてくれません。どうやればいいんでしょう? gccのバージョンは4.1.2(tarballから展開・パッチなし)、 実行環境はi686-pc-linux-gnuとpowerpc-linuxです(どちらでも現象は同じ)。 問題のコードを直接晒せないので、再現コードを書きます: #define N 5 int foo(int a[]) { int t = 0, i; for (i = 0; i < N; i++) t += a[i]; return t; } 上のように定数回の小ループがあって、ループ回数が少ないと展開するようです。 展開した場合は、ループ構造は削除され、中身が回数分反復されます。 -O2 とすればループ展開を行わなくなります。 でも、ループ展開以外の最適化は -O3 のままにしておきたいんです。
964 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 11:47:28 ] トゥーチャノー(英語は発音大事)での、話のループを抑制したい。 こればっかりは、流れ石のGCC様の-Oも効かんでのう〜ゴホゴホッ(持病の癪が)
965 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 12:06:44 ] >>964 癪は胸部腹部の痛みの総称なので、癪で咳き込む人はいない
966 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 12:38:41 ] ボケ殺し……
967 名前:デフォルトの名無しさん [2007/10/09(火) 21:19:18 ] GCC 4.2.2 リリース age
968 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 21:51:46 ] >>963 4.1.2で色々やってみたけど抑制できなかった
969 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 22:02:20 ] そこだけソース別けて-O2でコンパイルするとか...
970 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 23:04:35 ] >>967 了解。今から長いコンパイルを開始します。
971 名前:963 mailto:sage [2007/10/10(水) 00:53:43 ] >>968 どもです。お手数おかけしてます。やっぱり地味に難しいんでしょうか。 >>969 避けてしまうのはどうにでもできるんですが、ほしいのは 「このコードをこういう条件でコンパイルするとこういう結果になります」という コード評価でして。コードの一部だけ最適化条件を変えるのは できるだけしたくない、という事情です。 ただ、ここで詰まっていてもしょうがないので、 適当なところで見切りをつけますけどね。全体を-O2にしてしまうとか。 4.1.2のmanを調べたら「-O3は-O2に-finline-functions -funswitch-loops -fgcse-after-reloadを足したもの」と書いてあったのですが、 -O2にこれらを足しても-O3と等しくはなりませんでした。うーむ。
972 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 02:02:49 ] -O3 -fno-unroll-loops でいいんでないの?
973 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 04:53:20 ] >>971 manは結構いいかげんなのでソースを当たるべし。
974 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 08:52:16 ] さんざん既出だが、 自分で細かくコントロールしたければ、 -O3, -O2などを使ってはいけない。
975 名前:868 mailto:sage [2007/10/10(水) 11:29:11 ] 逆に考えて -O2 に -O3 で追加されるような -fhogehoge 追加してけば?
976 名前:私立ミンミンゼミ [2007/10/10(水) 12:24:09 ]
977 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 15:01:37 ] 念のため聞くけど、>>972 とか>>975 はギャグだよね……??
978 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 15:18:43 ] >>975 の何がおかしいのかわからない。
979 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 15:22:26 ] きっと、-fhogehogeって名前のフラグがあると思ってるんだと推測。
980 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 15:29:25 ] >>978-979 >>971 に既にその方法でやってるが、manでは正確ではないようだ という話が出てるのに>>975 を敢えて書くってのは自爆ギャグとか かと考えないと、辻褄が合いそうにない。 ま、ギャグだとしても全然面白くないけど。 てか、おまえらも注意力散漫なんだな。
981 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 15:35:05 ] GNU製品のmanなんて宛てにしないでソースで正確なの調べろよ。
982 名前:デフォルトの名無しさん [2007/10/10(水) 18:33:46 ] GNU製品のmanなんて信用せずに素直にinfo見ろよな
983 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 18:58:49 ] GNU製かどうかは関係ない。 ソースから生成してるのでもないかぎり文書は不正確なもの。
984 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 19:45:03 ] いや、info見ろよ。
985 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 20:57:03 ] infoもこう書いてあるけど `-O3' Optimize yet more. `-O3' turns on all optimizations specified by `-O2' and also turns on the `-finline-functions', `-funswitch-loops' and `-fgcse-after-reload' options.
986 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 21:53:56 ] >>983 でもさ、それって実装であって設計じゃないよね ソフトウェア工学的にはうんこだよな
987 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 22:31:46 ] >>986 いまだにMDAとか言ってる位に仕様書からの実装合成はhype気味なんだから 一介のフリーソフトがそこまでできてなくてもしょうがないだろう。だって人間だもの(みつを
988 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 08:03:19 ] >>975 -O2使ったとたんに他の指定は上書きされるのが現実です。 個別に設定しても必ずその通りになるものではないし。 最適化技法間の制約があるので。 暗黙に無効、有効にする時に、Warningも出しません。 ソース読むしかないんです。
989 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 09:27:31 ] どの最適化をするかくらいならすぐ読めるよね
990 名前:963 mailto:sage [2007/10/12(金) 00:58:21 ] ソースを読みました。opts.c の decode_options() に最適化オプション読み込みの 基本部分がありました。大雑把には次のような構造でした。 for (i = 1; i < argc; i++) { /* すべての-Oxオプションを通し読み */ } if (optimize >= 1) { flag_hoge = 1; ... } /* -O1以上でのフラグ設定を適用 */ if (optimize >= 2) { flag_geho = 1; ... } /* -O2以上でのフラグ設定を適用 */ ... handle_options(argc, argv, ...); /* 各オプションを処理 */ optimize >= 3 では、flag_inline_functions と flag_unswitch_loops と flag_gcse_after_reload を 1 にしていました。 その箇所だけ読むとmanやinfoの記述は正しいことになるんですが、はて。 結局追いきれませんでした。 それから、>>988 の通り、フラグ変数を書き換えてもその情報をどこにも伝えません。 ちょっと不便なような。。。 で、別解なんですが、「-O3 --param max-completely-peeled-insns=0」 と指定してpeelingを止めてしまえば目的を果たせることがわかりました。 この指定で行こうと思います。
991 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 01:22:28 ] いや、該当するフラグ変数を全ソースで検索しないと。 コンパイル中にフラグの値変ることもあるし。
992 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 02:23:32 ] >>991 ヒントありがとうございます。flag_unroll_loops と flag_peel_loops に 当たりをつけて探してみました。これだろうな、ってのが出てきました。 tree-ssa-loop.c: static void tree_complete_unroll (void) { if (!current_loops) return; tree_unroll_loops_completely (current_loops, flag_unroll_loops || flag_peel_loops || optimize >= 3); } "optimize" でも軽く眺めてみましたが、フラグではなく最適化レベルの数値を 最適化の適用条件にしている箇所はそれなりに珍しいようです。
993 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 08:47:02 ] > optimize >= 3 ワラ イヤだねー
994 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 09:03:27 ] 将来を見据えた設計なのでは?
995 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 12:37:26 ] >>994 断言できる。何も考えてないだけ。
996 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 22:06:08 ] >>987 いや、ストールマンって趣味ならとても楽しくやりそうだけど 絶対に一緒に仕事やりたくない人種だよな
997 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 22:10:13 ] 次スレ建てられなかった 誰か頼む
998 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 00:08:45 ] GCCについて part8 pc11.2ch.net/test/read.cgi/tech/1192201659/
999 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 00:36:21 ] >>998 乙 次スレでもみんなよろしく
1000 名前:デフォルトの名無しさん [2007/10/13(土) 00:37:18 ] 1000
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。