1 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 14:13:04.14 ] 史上最強かもしれなかったツール、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 前スレ GCCについて part9 hibari.2ch.net/test/read.cgi/tech/1246059290/ 関連スレ 【最速へ】LowLevelVirtualMachine【LLVM】 hibari.2ch.net/test/read.cgi/tech/1211547655/
121 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 01:15:56.76 ] gcc4.7を使ってみたくて自前ビルドで詰まったんだけど,質問はここでいいのだろうか. 場所が悪ければ誘導願いたい Ubuntu 11.10で,gcc-4.7.0-RC-20120302をビルドしようとしてる. 標準エラーの最後の方がこんなのだったんでリンクができてなくて止まってるのはわかるんだけど glibcやらbinutilsあたり,aptにあるそれらしいやつは違うようだった 入れるべきパッケージなりが足りてない? それともlocateで出てくる奴にシンボリックリンクでも貼ればいいものだろうか ↓エラーログ /usr/local/bin/ld: cannot find crti.o: No such file or directory /usr/local/bin/ld: cannot find -lc /usr/local/bin/ld: cannot find crtn.o: No such file or directory collect2: error: ld returned 1 exit status 解決法探すコツみたいなものも教えていただけるとありがたい ログが膨大で何に重点をおくべきかわからなくなってる
122 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 01:31:56.68 ] glibcのdevelみたいなのが入ってないような感じ、debian系はよー知らんけど 今のgccはビルドするときに必要なパッケージが増えてるから、ご注意を ttp://packages.ubuntu.com/oneiric/gcc
123 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 07:45:36.03 ] >>121 Ubuntuにもmultiarch問題があるのか。
124 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 08:35:59.30 ] 自分で答え書いてるやん
125 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 10:05:25.71 ] リナックスは問題だらけで使い物にならんよ。 リナックスがパッケージシステムが出来て糞になってる間に windowsは安定してみんな使うようになった。
126 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 10:54:37.12 ] >>125 のようなバカが使ってるよな
127 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 10:59:19.59 ] メーカーがドライバーを作らないからな。 偽者のドライバーでは機能制限が多すぎて 最高のパフォーマンスを出すことは到底不可能だからな。
128 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 11:05:01.38 ] 釣りにしてはネタが腐ってるような?
129 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 11:23:08.62 ] 寿司じゃないんだから・・・・ それを言うならエサでしょう。あいにっく 釣りっぽい発言には見えないが・・・
130 名前:121 mailto:sage [2012/03/08(木) 14:24:03.17 ] パッケージのgcc4.6は入ってるから,glibc系の依存してるパッケージは入ってるはず. /usr/libとかに勝手に作っちゃうと先々何か入れるときに衝突しそうで避けてたんだけど /usr/libにあるはずのものが/usr/lib/i386-linux-gnuに入っちゃってるって記事を見て シンボリックリンク貼って走らせておいたら通ってたよ 現在make check中. ものすごく無理やりな感があって正しいのか不安だけど,とりあえず回答に感謝
131 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:27:12.80 ] multiarch問題は--libdir=/usr/lib/i386-linux-gnuで解決するんじゃないのか?
132 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:46:40.72 ] あ,まさにそれっぽい これか. --libdir=dirname Specify the installation directory for object code libraries and internal data files of GCC. The default is exec-prefix/lib. 勝手に作ったシンボリックリンク外してやってみる
133 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 22:22:39.29 ] うまくいかないな configureに--libdir=/usr/lib/i386-linux-gnuやら --libexecdir=/usr/lib/i386-linux-gnuやらつけて 何回か試してみたけど見に行ってくれてないみたい ldが探す場所ってld.so.confが読んでる奴じゃなかったっけ. こっちに/usr/lib/i386-linux-gnuも入ってるのだけど, ldconfig -pに出てこないから探しに行ってないんだよな ここが解決すればよさそうな気もするのだけど. このあたりの話題はスレ違いだろうか
134 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 22:25:33.52 ] 64bitなgcc作りたいの? なら、32bitな環境入れとかないとコケるような
135 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 22:34:00.66 ] いや,そも全部32bit環境…のはず. i386,i686はアーキテクチャの差であってbit数は関係ないよね?
136 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 22:37:31.73 ] どこでコケてるのか、文章だけじゃ、わからないよ rpmなら、specファイル見たらって言えるんだけど
137 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 22:56:36.35 ] あ,出てるエラーは>>121 です ldが/usr/lib/i386-linux-gnu/を見ずに/usr/libまでしか見てないらしくて crti.oとかが無いと言われる /usr/libから手動でシンボリックリンクを貼ってみたら一回通ったけど, そうじゃなくてオプションでそちらを見る方法があるなら知りたい 直前のコマンドは引数多すぎて何をしてるのかよくわからないけど (ビルドしてるディレクトリ)/gcc/xgcc のようです
138 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 23:57:50.14 ] なんかまだ具体性欠いてるきがするので追記. gcc4.7.0RCのmake中,>>121 のエラー そのあとの出力は以下,直前のコマンドは貼れないくらい長いものでxgccを起動してるらしい make[3]: *** [libgcc_s.so] エラー 1 make[3]: *** 未完了のジョブを待っています.... make[3]: ディレクトリ `($HOME)/build/gcc-4.7.0-RC-20120302/build/i686-pc-linux-gnu/libgcc' から出ます make[2]: *** [all-stage1-target-libgcc] エラー 2 make[1]: *** [stage1-bubble] エラー 2 make: *** [all] エラー 2 make[2]: ディレクトリ `($HOME)/build/gcc-4.7.0-RC-20120302/build' から出ます make[1]: ディレクトリ `($HOME)/build/gcc-4.7.0-RC-20120302/build' から出ます ---ここまで--- 自分で判断できることと知りたい内容は>>137 の内容.
139 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:03:21.81 ] --disable-bootstapつけてやってみるとか、適当だけど 自分もその辺でハマった口だけど、 build.log見たりとか コケたところを部分的に手動でやってみたりとか gccのビルドって、自力でやるのがだんだん難しくなってる、自分的には 4.6あたりで出来るか試してみるのも、ひとつの手
140 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:48:37.07 ] そりゃ、野良のldをmultiarch対応せずに使っているなら見ねーよな
141 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:56:54.52 ] いろんなアーキテクチャに対応するために /usr/libにあったものを/usr/lib/(アーキテクチャ名)に移動してあるものがあって ldもmultiarchに対応したものを指定してやらないとならない,ってことか ldはbinutilsに含まれるってことで合ってる? binutilsも新しいもの入れたつもりだけど,古いの呼んじゃってるかもしれないから そのあたり調べてみる
142 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:58:53.88 ] 本当にバカだな 意味が分からないなら、ubuntuのbinutilsつかってみろ それで解決
143 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 01:03:33.54 ] Debianのgcc-4.7をリビルドして使おうとしないところが、頑なな奴だな。
144 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 01:26:26.28 ] >>142 Ubuntu,もしかしたらDebianからかもしれんけど ディストリビューション特有の問題でそれに対応したのがちゃんと用意されてるから 素直にそれを使え,でいいんだろうか とりあえず自分で入れたbinutils削除してld -vでfor Ubuntuの文字を確認してから もう一度make中 >>143 Linux使い始めてそう経ってないから,常識をわかってないところは多々あると思うんで そういうところこそ聞きたかった 4.7使いたいだけならgnuの素のソースだけじゃなくて, Debianから試験的パッケージ出てたんだね だめならこっち試してみる
145 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:02:07.11 ] --- a/src/gcc/config/i386/t-linux +++ b/src/gcc/config/i386/t-linux @@ -3,3 +3,5 @@ # t-slibgcc-elf-ver and t-linux SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \ $(srcdir)/config/i386/libgcc-glibc.ver + +MULTIARCH_DIRNAME = i386-linux-gnu
146 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:22:47.12 ] GCC 4.7.0 released [2012-03-22]
147 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 01:22:03.60 ] __transaction_atomic の使い方がわからん 中に出てくる変数全部アトムボーイになるの?
148 名前:デフォルトの名無しさん [2012/03/25(日) 01:32:10.51 ] 超高速にシンタックスチェックだけしてくれるモードとか無い?
149 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/25(日) 01:40:49.49 ] lint 使えよ。
150 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 11:27:59.90 ] >>148 -fsyntax-only
151 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 21:53:44.63 ] 何の処理もせず、時間稼ぎをしたいとき、どのような方法がありますか? 例えば、キー入力を受け付けてから、5秒あけて、入力された内容を表示するという場合です
152 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 21:54:50.20 ] sleep(5);
153 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 22:58:58.43 ] >>147 gcc/testsuite/c-c++-common/tm/trxn-expr-2.c
154 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 23:48:00.43 ] >>153 __transaction_atomic (a+b+c); これがどう働くのかを聞いてるんだよ・・・
155 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 00:25:25.52 ] >>154 噛み付かれても、俺もわからんのだけど gcc gcc/testsuite/c-c++-common/tm/trxn-expr-2.c -S -fgnu-tm -O2 でもやって、自力で答え見つけたら なんとなく、ポインターアクセス経由でやってるだけな感じだけど (思ってる答えとは違うかもね)
156 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 17:18:46.67 ] gcc (GCC) 4.8.0 20120316 (experimental)
157 名前:デフォルトの名無しさん [2012/03/27(火) 15:41:50.42 ] macportで入れたgcc46で gcc-mp-4.6 -march=corei7 -E -v - </dev/null 2>&1 | grep cc1 としても、>.75のようではなく -fPIC -mmacosx-version-min=10.6.8 -march=corei7 -m64 としかででないのですけど、march=corei7の効果はないということでしょうか? corei7をcorei7-avxやcore2にしてもどうようです。nativeにしたときだけ>>75 のようにでてきます。
158 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 18:00:44.76 ] だって明示的にCPU指定したら命令セットは自明だろ キャッシュサイズは個々に違うから指定されないわけで
159 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:31:02.63 ] そうか。d ということは、corei7でmarch=nativeやmarch=corei7を使うと、 mfpmath=sseを使う意味はないという理解で大丈夫ですか?
160 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 13:32:02.99 ] >>159 定義済みマクロがあるやつは cpp -march=core2 -dM < /dev/null | grep SSE とかで分かるな
161 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 18:27:01.41 ] 混乱中 manを読むと、-mavxは MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,SSE4.2 and AVXをサポートしているから 配布目的でなければ、-mmmxや-msseなどは付ける必要ないんだろうか? >>75 を見ると、-march=nativeをしたときには-mavxが自動的につくけど、 march=corei7-avxでは-mavxは自分で付けなければいけないということなのか? うむむむ
162 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 22:26:55.80 ] >>161 avxが有効だと__AVX__が1に定義されるから>>160 でそれを調べたら分かるのでは
163 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 22:33:05.99 ] >>161 -marchや-mtuneは-msseや-mavxみたいなオプションのセットという認識だけどな nativeの場合はプロセッサのフラグを呼んで有効になっている機能を使おうとするから msseみたいな物が個別につくのでは 例えばKVMとかで仮想CPUの場合に、物理CPUにある機能が一部無効になってると個別のオプションが変わったりする
164 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 23:01:18.78 ] ぶっちゃけアセンブリ出力を見たらどうか
165 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 23:51:52.73 ] {"corei7-avx", PROCESSOR_COREI7_64, CPU_COREI7, PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3 | PTA_SSSE3 | PTA_SSE4_1 | PTA_SSE4_2 | PTA_AVX | PTA_CX16 | PTA_POPCNT | PTA_AES | PTA_PCLMUL}, if (processor_alias_table[i].flags & PTA_AVX && !(ix86_isa_flags_explicit & OPTION_MASK_ISA_AVX)) ix86_isa_flags |= OPTION_MASK_ISA_AVX;
166 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 12:06:21.03 ] SSEにしろAVXにしろ、OSが明示的に許可してないと使えないんだから 勝手に生成されたらまずいんでね
167 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 12:20:20.92 ] 自分で指定しておいて勝手にとは如何に
168 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 10:04:51.69 ] gcc -Q --help=target -march=corei7-avx でわかるね
169 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 15:45:06.79 ] 現在時刻を端末上で、 ○時○分○秒 と表示させるにはどのような関数があるでしょうか? 環境はlinuxです。
170 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 16:25:22.33 ] info gcc そんな機能あるのか?
171 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 16:38:51.56 ] >>169 このへんから ttp://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/settimeofday.2.html
172 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 17:14:32.47 ] >>170 若干ずれるがcppに頑張っていただけば #include <stdio.h> int main(void) { puts(__TIME__); }
173 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 17:53:35.07 ] >>172 なるほど、それをcppの代わりにインストールすればいいのか。
174 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:31:19.31 ] >>171 もうこんなの使うのやめなよ・・・
175 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:35:48.24 ] >>174 最近の事情はよー知らんので教えて欲しいな、どこ見りゃいいの?
176 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:50:52.52 ] >>175 下の方だよ
177 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:52:15.40 ] >>175 POSIX.1-2008 marks gettimeofday() as obsolete, recommending the use of clock_gettime(2) instead. って書いてある。
178 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:54:59.95 ] >>177 ありがと
179 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 09:02:00.63 ] clock_gettimeは致命的な遅さ
180 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:27:36.86 ] >>179 じゃあどうすりゃいいんだよ!
181 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:50:43.92 ] どうやって測ったのか知らんけど 遅いっていうのなら、glibcのソース見て、自前で実装するしかないでしょ
182 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 07:08:36.38 ] get_wild関数で変数名がxyzです。 何が起こるでしょうか?
183 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 07:31:21.19 ] >>181 つまりclock_gettimeは使わないという結論か
184 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 14:43:38.38 ] >>183 time関係は遅いのかもしれんけど、今時の実行環境ならさほど問題になるようなことはない気がするけど 何をするかによっても関数の実行時間が問題になるかは変わってくるからね
185 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 01:36:44.09 ] >>182 アスファルトにタイヤを切りつける
186 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 12:34:06.48 ] >>182 プログラム「都市狩り」起動
187 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 12:35:16.88 ] >>182 プログラム「都市狩り」起動
188 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 22:37:53.88 ] >>182 恋人が交通事故死します。
189 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 18:17:28.30 ] 冴羽遼は関係無いだろ
190 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 20:46:36.79 ] じゃあ何ならいいんだ
191 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 11:29:23.10 ] gccをビルドすると/usr/lib/に妙なperlかpythonのスクリプト(忘れた))が生成されるけど、あれ何するためのものなの?
192 名前:age mailto:sage [2012/05/03(木) 11:31:53.03 ] GCC4.7でIntelコンパイラーのように__Cilk命令がマージされたような話を聞いたけど、これ本当にマージされてるの? どうやったら動くの?何か特殊なビルドオプション等が必要?
193 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 00:57:31.93 ] ?-gdb.py 消しても問題みたいだけど
194 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 01:00:40.04 ] 逝ってるなコンパイラは逝ってるなことやってるんだ