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/
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 ] 逝ってるなコンパイラは逝ってるなことやってるんだ
195 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 15:53:57.15 ] 4.7.1
196 名前:デフォルトの名無しさん mailto:sage [2012/07/04(水) 18:10:06.71 ] system関数を使ってmpg123を呼び出し、 mp3ファイルを再生しようとしています。 そして、再生の途中で再生を終了させるにはどんな方法があるでしょうか? 端末からコマンドラインで直接打つ場合はctrl+cで止められますが、 ctrl+cと同じことをgccでやろうとしたらどうすればいいのでしょうか? 環境はlinuxです。
197 名前:デフォルトの名無しさん mailto:sage [2012/07/04(水) 18:37:19.91 ] systemはやめてfork-execでpidを得た後killすればいい
198 名前:デフォルトの名無しさん mailto:sage [2012/07/05(木) 12:04:38.02 ] >>196 popenとmpg123 -Rでやれば
199 名前:デフォルトの名無しさん mailto:sage [2012/07/24(火) 01:02:18.16 ] kill `ps | grep mpg123 | awk '{print $1;}'` ってやるシェルスクリプトをsystemすればいいんじゃね?
200 名前:デフォルトの名無しさん [2012/07/27(金) 08:18:19.48 ] os xをマラにしたらgccが消えてしまいました。 どこへ行かれたのでしょうか?
201 名前:デフォルトの名無しさん mailto:sage [2012/07/27(金) 09:17:44.29 ] >>200 XcodeのメニューPreferencesからDownloadsタブのComponentsにあるCommand Line Toolsをインストールしれ
202 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:08:45.92 ] gcc/config/i386/i386.cの distance_non_agu_define_in_bb の関数が ヌルポで落ちることがあるぜえ
203 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 14:31:42.91 ] つ bugzilla
204 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 15:01:23.80 ] 自力で何とかしたから、そこまでやる気なし
205 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 16:25:58.44 ] ちょっwww
206 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 17:12:11.88 ] こうして不具合は残ったままになるのでした。おしまい。
207 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 17:27:52.03 ] たまに、 引掛け? みたいなことしてることあるし
208 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 18:30:39.29 ] ヌルポでコンパイルが止まるだけ 君には見つけられるかって感じだからね
209 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 13:29:25.72 ] gcc4.7.1+pthreads_win32でスレッドモデルposixでビルドすると、c++のプレコンパイルヘッダのmakeでこけます。 operator<でエラーで、どうやらptw32_handle_tが構造体だから比較できないってことらしい。 どなたか対処法などご存知ではないでしょうか?
210 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 13:35:58.92 ] クラスにする
211 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 15:02:52.41 ] おそらく文脈的にoperator<なんていらん所だろう コンパイラが変な解釈してるだけと思う
212 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 15:43:14.51 ] そっちかよw pthreads_win32をやめるのがいいかと。
213 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 20:40:29.10 ] >>212 無茶言うなよ・・・
214 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 21:22:45.78 ] ここの3番 ttp://sourceforge.net/mailarchive/message.php?msg_id=26533137
215 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 22:49:01.09 ] 楽しようとして、ハマりましたって、オチにならなきゃいいけどね
216 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 23:08:57.58 ] >>214 サンクスです。 さっそく、試してみます。
217 名前:デフォルトの名無しさん mailto:sage [2012/08/30(木) 20:29:33.41 ] コンバイン1,2,3 状態 ありがと
218 名前:デフォルトの名無しさん mailto:sage [2012/09/03(月) 03:13:46.95 ] 単独行動できる仕掛けが
219 名前:デフォルトの名無しさん mailto:sage [2012/09/21(金) 03:07:46.70 ] 4.7.2
220 名前:デフォルトの名無しさん [2012/10/11(木) 22:53:24.71 ] ほしゅあげ
221 名前:デフォルトの名無しさん mailto:sage [2012/11/09(金) 02:16:10.23 ] ビルド時に内部エラーが出るとバックトレースしてくれるようになってるな
222 名前:デフォルトの名無しさん mailto:sage [2012/12/17(月) 08:18:28.87 ] forの中のx++をx+1とかx+2にすると無限ループになってしまいます。 x++以外にしたいときはどう書くのでしょうか? linuxで4.4.5です(円記号は実際にはバックスラッシュです) #include <stdio.h> int main() { int x; for(x=0; x<10; x++) { printf("%d\n",x); } return 0; }
223 名前:デフォルトの名無しさん mailto:sage [2012/12/17(月) 08:20:09.02 ] >>222 x+=1 とか x+=2 とかにすればいいよ。 gcc 特有の事情でない話は C スレに行った方がいいよ。
224 名前:デフォルトの名無しさん mailto:sage [2012/12/18(火) 17:31:31.01 ] x = x++; 以来の衝撃を受けた気がする
225 名前:デフォルトの名無しさん mailto:sage [2012/12/19(水) 22:42:12.03 ] 沖林正紀 を超えたかも知れない
226 名前:デフォルトの名無しさん [2013/01/13(日) 11:32:27.35 ] mesてsh3のローカルバージョンなんだが、setjmp.hが無い。 longjmpの代わりになる方法とかないか?
227 名前:デフォルトの名無しさん mailto:sage [2013/01/13(日) 23:44:34.43 ] >>226 newlibあたりからもらってくればいいんでないかい
228 名前:デフォルトの名無しさん mailto:sage [2013/01/13(日) 23:56:49.15 ] gcc の新しい CPU 向けのポートの話はここでいいの?
229 名前:デフォルトの名無しさん [2013/01/14(月) 04:45:24.75 ] >>228 yes
230 名前:デフォルトの名無しさん [2013/01/14(月) 17:31:06.90 ] >227 なるほど。 とはいったものの、どうしたらいいのやら。 newlibのソースって当然ASMだろうな。mesのGCCですんなりコンパイルできる だろうか?
231 名前:デフォルトの名無しさん mailto:sage [2013/01/14(月) 18:00:13.06 ] >>229 あれはふつーのsh-coffだろう 何も考えずにプロジェクトに入れちまえ
232 名前:231 mailto:sage [2013/01/14(月) 18:00:54.52 ] すまん s/229/230/
233 名前:デフォルトの名無しさん mailto:sage [2013/01/14(月) 18:35:07.31 ] 何を悩むことがあるのか分からん。 とりあえずnewlibをコンパイルしてみればいいじゃないか。SH4ということにして。
234 名前:デフォルトの名無しさん mailto:sage [2013/01/16(水) 01:59:09.30 ] newlib/libc/machine/sh/setjmp.S
235 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:02:32.76 ] GDBについて聞きたいんだが、ファイルポインタなどで外部ファイルからパラメータを読み込むプログラムなんだけど デバックする場合、エラーは起きる?それともこれがエラーの原因なんかな
236 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:13:10.35 ] 日本語でok
237 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:13:54.81 ] うーん、ダメやなGDBうまくわかってないから伝えられないな すまんな
238 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:16:38.64 ] ニシくんテクとして壊れたパーツもあえて保持するというテクがあるんやで
239 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:17:21.02 ] gbk
240 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:17:26.27 ] GDBの問題じゃないからね、それ
241 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:27:31.25 ] プログラム的におかしいってことなんかな コンパイル時にエラーは言われないんだけど、実行結果でエラー言われるんだよね もう一度確認してみますわ
242 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:31:35.73 ] scanfの使い方がおかしいだけでしょ &のつけ忘れとか
243 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:33:52.87 ] エスパーすげえな SetFilePointerとデバッガで挙動が変わるのと何の関係が?としか思えなかったわ
244 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:47:35.79 ] 書き方がおかしな所はコンパイル時にわかるけど 実行時の問題まで探してくれてるわけじゃないからね
245 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:59:32.49 ] エスパーな質問なのに答えてくれてほんとありがとう scanf確認したんですが&は一応ついてました もう少し色々お聞きしたいのですが、C言語の話題になってしまいそうなのでC言語スレで聞いて見ようと思います GDB自体は実際の実行と同じように動作すると分かって良かったでうs
246 名前:デフォルトの名無しさん mailto:sage [2013/01/22(火) 00:45:18.92 ] GCCVer3の最終版使うのとGCC最新版(Ver4)使うのではどっちが安定なんだろうか
247 名前:デフォルトの名無しさん mailto:sage [2013/01/22(火) 00:56:08.11 ] 対応したarchなら、コンパイルという動作はどっちも安定してるんじゃね
248 名前:デフォルトの名無しさん mailto:sage [2013/01/22(火) 09:26:59.11 ] 4の安定版使え。
249 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2013/01/22(火) 09:44:34.52 ] コンパイラ単体で見れば歴史の長い3の方が枯れていると言えるかもしれないけど、 そう単純なものでもないんだよね。 C++ABI がちょっと違ったりするので、今更3を使うのは問題の種になると思う。 と言うわけで私としては4を推す。
250 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 20:15:33.81 ] short-enum な --taret=arm* な 4.6.4 で, short-enam な --hist=arm* な 4.6.4 を作ろうとすると 色々まずいっぽいんだが, 既知の事実ですか?
251 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 20:24:56.18 ] コンパイル時にしてするものでビルド時に指定するもんじゃないような
252 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 20:36:24.41 ] >>251 やっぱそうなるか じゃあ libgcc だけ, 単独に short-enum にできる安直な方法ってある?
253 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 20:40:44.15 ] 4.7だと libgcc/config/arm/t-linux に仕込めばいいような
254 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 20:43:16.98 ] もしくは make CFLAGS_FOR_TARGET="-g -O2 -fomit-frame-pointer" CXXFLAGS_FOR_TARGET="-g -O2 -fomit-frame-pointer" な感じか?
255 名前:デフォルトの名無しさん mailto:sage [2013/03/06(水) 23:53:27.37 ] たのもう gcc 4.7.2 のコンパイルでつまづいてる (gmp 5.1.1、mpfr 3.1.1、mpc 1.0.1 はコンパイルできた) ../configure --enable-languages=c,c++ --enable-bootstrap --enable-shared --enable-threads=posix \ --enable-checking=release --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object \ --disable-dssi --disable-multilib --with-gmp-lib=/usr/local/lib64 --with-mpfr-lib=/usr/local/lib64 \ --with-mpc-lib=/usr/local/lib64 --without-ppl --with-tune=generic の後の make 実行したら mkdir -p -- x86_64-unknown-linux-gnu/libgcc のあるフェーズで、 checking for suffix of object files... configure: error: in `/w/gcc/gcc-4.7.2/build/x86_64-unknown-linux-gnu/libgcc': configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details. とか言われた x86_64-unknown-linux-gnu/libgcc/config.log には configure:3344: /w/gcc/gcc-4.7.2/build/./gcc/xgcc -B/w/gcc/gcc-4.7.2/build/./gcc/ -B/usr/local/x86_64-unkn own-linux-gnu/bin/ -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem /usr/local/x86_64-unknown-linux-gn u/include -isystem /usr/local/x86_64-unknown-linux-gnu/sys-include -V >&5 xgcc: error: unrecognized command line option '-V' とか出てるんだけど、何が悪いかわかる人いたら教えてくらさい ただし英語のドキュメントは読めない
256 名前:デフォルトの名無しさん mailto:sage [2013/03/06(水) 23:56:04.33 ] ちなみに OS は CentOS 5.3 x86_64 でございますれば 他に補足の情報が必要であれば指摘ください
257 名前:デフォルトの名無しさん mailto:sage [2013/03/07(木) 00:20:28.62 ] command line option とみなされてるのが問題なんだろ shell 変えてみるとか
258 名前:デフォルトの名無しさん mailto:sage [2013/03/08(金) 09:11:55.41 ] うーん、sh、csh、ksh、bash を試しましたが変化ありませんなあ・・・orz
259 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 02:46:26.94 ] -Vを消しちゃえばいいやん
260 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 13:30:08.59 ] >>255 同じような症状で --disable-libquadmath つけたら通った
261 名前:デフォルトの名無しさん mailto:sage [2013/03/11(月) 04:33:46.70 ] 'unrecognized' command line optionでxgccのエラーだぜ、ってことで>>257 はおかしい xgccってのはまさにいま作ってる最中のgccで、そいつが-Vを受け付けてない(手元のgccで試したら確かに4.7系は-Vを受け付けない) -Vの出力から'compute suffix of object files'をしようとしてるんだから>>259 もおかしい エラーはlibgccのconfigureで起きてるっぽいので>>260 もどうかなあ つーことで、configureのその行の前後にxgcc -B中略 -Vの結果を加工して suffix of object files(たぶん.o)をどっかの変数に入れてるところがあるはずなんで その辺書き換えて直接.oをセットしてしまえばいいと思う 環境差かなんかで普通入り込まない過去のgcc互換かなんかの分岐に入ってしまってるんだろう と予想、外れてたらごめん
262 名前:デフォルトの名無しさん mailto:sage [2013/03/11(月) 05:49:25.22 ] たぶん、glibc-develあたりのパッケージが入ってないような # yum groupinstall "Development Tools" をやれば、いいような
263 名前:257 mailto:sage [2013/03/11(月) 07:03:51.09 ] >>262 漏れも最初にそう思ったんだけど、 わざとボケてみたんだ。 ごめん。
264 名前:デフォルトの名無しさん mailto:sage [2013/03/11(月) 09:38:08.17 ] 俺も俺も
265 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 14:29:39.93 ] すいません、これでできました su mkdir /w; mkdir /w/gcc; cd /w/gcc wget ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.7.2/gcc-4.7.2.tar.bz2 wget ftp://ftp.gmplib.org/pub/gmp/gmp-5.1.1.tar.bz2 wget www.mpfr.org/mpfr-current/mpfr-3.1.2.tar.bz2 wget core.ring.gr.jp/pub/GNU/mpc/mpc-1.0.1.tar.gz tar xvfj gcc-4.7.2.tar.bz2 tar xvfj gmp-5.1.1.tar.bz2 tar xvfj mpfr-3.1.2.tar.bz2 tar xvfz mpc-1.0.1.tar.gz mkdir gcc-4.7.2/build mkdir gmp-5.1.1/build mkdir mpfr-3.1.2/build mkdir mpc-1.0.1/build cd gmp-5.1.1/build ../configure --enable-cxx make #make install cd ../../mpfr-3.1.2/build ../configure make #make install cd ../../mpc-1.0.1/build ../configure make #make install cd ../../gcc-4.7.2/build ../configure --enable-languages=c,c++ --enable-cxx --with-newlib --disable-multilib --enable-threads=posix --with-tune=amdfam10 export LD_LIBRARY_PATH=/usr/local/lib64 make #make install
266 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 15:08:52.01 ] あ、↑の #make install は make install でございますれば で、 ../configure --enable-languages=java --with-newlib --disable-multilib --enable-threads=posix --disable-bootstrap とするとコケて、どうしても Java コンパイラが作れないです libtool: compile: /w/gcc/gcc-4.7.2/build_java/./gcc/xgcc -shared-libgcc ---snip--- java/net/.deps/natVMInetAddress.Tpo -c java/net/natVMInetAddress.cc -fPIC -DPIC -o java/net/.libs/natVMInetAddress.o java/net/natVMInetAddress.cc:42:52: error: declaration of C function ‘int gethostname(char*, int)’ conflicts with In file included from java/net/natVMInetAddress.cc:12:0: /usr/include/unistd.h:845:12: error: previous declaration ‘int gethostname(char*, size_t)’ here make[3]: *** [java/net/natVMInetAddress.lo] Error 1 Web 検索しても、なぜかコケて回避できないみたいな記述があったような無かったような
267 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 15:44:56.69 ] あー、 ../configure --enable-languages=java --disable-multilib --disable-bootstrap にしたらコンパイルできますた が、実際に .java ファイルをコンパイルしようとすると gcc: error trying to exec 'ecj1': execvp: No such file or directory とか怒られる ググったらこんな感じ barutan.s296.xrea.com/cgi-bin/tdiary/?date=20100220#p04 お手上げでしょか?
268 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 16:31:58.39 ] ecj1って、eclipse関連のパッケージみたいだね。 https://launchpad.net/ubuntu/+source/ecj/3.5.1-6
269 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 16:41:06.65 ] GCJ使うのが目標だったのね。 ディストリビューションのspecファイル参考にするといいんじゃないかな。
270 名前:デフォルトの名無しさん mailto:sage [2013/03/20(水) 09:53:14.28 ] 4.8.0リリース?
271 名前:デフォルトの名無しさん mailto:sage [2013/03/20(水) 19:02:05.70 ] リリースアナウンス出てないからまだだろう
272 名前:デフォルトの名無しさん mailto:sage [2013/03/21(木) 12:32:55.08 ] gcc 4.8.0をmakeしようとしたらこんなの出ました。 この前にmakeをビルドしたのですが、makeのビルドに失敗したって意味でしょうか? www.07ch.net/up2/src/lena8828.png
273 名前:デフォルトの名無しさん mailto:sage [2013/03/21(木) 16:35:57.64 ] makefileの1〜6行目を晒すとか
274 名前:デフォルトの名無しさん mailto:sage [2013/03/21(木) 16:42:10.00 ] makeで始める行はmakeコマンドが出力してる。[n]はネストの深さ。 エラーが起きているのはシェルにコマンド行で渡して実行させているコード。 EOFが出てるのは、Win32上で有名な > [Please ignore a syntax error on the next line - it is intentional] じゃないんだな。この部分は出てないので。
275 名前:デフォルトの名無しさん mailto:sage [2013/03/21(木) 19:49:40.74 ] www.07ch.net/up2/src/lena8830.png すみません。今見たらbuild/libiberty/config.logにNo such file or directoryと書いてありました。 ぐぐってみます。 ありがとうございました。
276 名前:275 mailto:sage [2013/03/22(金) 11:21:05.10 ] しつこくてすみません MinGWにpthreadsをインストールしてgcc 4.8.0をコンパイルしようとしたのですが、sys/systemcfg.hが無いといわれて ググったのですが、見当たらないのでwinpthreadsをコンパイルしようとしたのですが、makeでエラーになります。 www.07ch.net/up2/src/lena8836.png configureもmakeも改変せずにビルドしているのですが、makeが存在していないファイルを作ろうとしていてmakefileに問題があるのでしょうか?
277 名前:デフォルトの名無しさん mailto:sage [2013/03/22(金) 13:45:00.07 ] windowsでは無理
278 名前:デフォルトの名無しさん mailto:sage [2013/03/23(土) 01:57:39.27 ] GCC 4.8.0 released [2013-03-22]
279 名前:275 mailto:sage [2013/03/23(土) 10:20:20.80 ] しつこくてすみません make[1]: *** `src/libwinpthread_la-barrier.lo' に必要なターゲット `src/.dirstamp' を make するルールがありません. 中止. make: *** [all] エラー 2 となるんですがmakefileの該当部分は libdummy.la: $(libdummy_la_OBJECTS) $(libdummy_la_DEPENDENCIES) $(LINK) $(libdummy_la_OBJECTS) $(libdummy_la_LIBADD) $(LIBS) src/$(am__dirstamp): @$(MKDIR_P) src @: > src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/$(DEPDIR) @: > src/$(DEPDIR)/$(am__dirstamp) src/libwinpthread_la-barrier.lo: src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) これでは.dirstampは作れていないのでしょうか?
280 名前:275 mailto:sage [2013/03/23(土) 10:27:04.93 ] くっつけるerr.logを間違えました上の部分のエラーログは process_begin: CreateProcess(NULL, /bin/mkdir -p src, ...) failed. make (e=2): 指定されたファイルが見つかりません。 make[1]: *** [src/.dirstamp] エラー 2 make: *** [all] エラー 2 こちらです
281 名前:275 mailto:sage [2013/03/23(土) 10:57:48.87 ] cd src touch .dirstamp cd .deps touch .dirstamp したらmakeできました お騒がせしました
282 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 12:34:35.28 ] 4.8で動かなくなる奴たくさんありそうだな 普通の実行順序で考えると動きそうだし たまたまローカル変数ですべて収まってたから、 過度に最適化されたのかな?
283 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 12:48:29.38 ] SPECのコードが壊れた話? C言語は高級アセンブラで、思った通りの機械語コードを吐いてくれる、 なんてのが昔話だと、いい加減みんな認識すべきなんだな。 現代のC言語は、最適化オプション付けていて、未定義を踏んでたら 悪魔と契約してでも最適化を掛けてくるもんだ、と思うべき。
284 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 12:53:58.03 ] 日本語でどうぞ
285 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 13:01:18.08 ] 壊れるようなコードを書いているやつが悪い
286 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 13:26:59.99 ] >>284 このスレでこの程度のジャーゴンもわからないとか。
287 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 13:55:39.89 ] >>286 単語の問題ではなく文法の問題では?
288 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 14:46:33.36 ] brokenな日本語でも日本語の話者ならば補って理解できる。
289 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 21:04:51.78 ] 実行される可能性がある未定義動作のコードが一行でも混じっていれば そのプログラムは起動直後からソースコードを一切無視してどういうふるまいをしても構わない。 過度の最適化ではない。
290 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 22:16:03.70 ] >>286 底辺職種に従事している人が多いからね そんな奴は脳レベルが低すぎてbrokenな日本語は理解不能
291 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 23:31:42.31 ] 罵倒遊びも飽きた
292 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 12:01:59.57 ] 4.8、動かない以前にビルド通らんのが出てきたぞ バージョン上がる度に型チェック厳しくなる一方だぜ
293 名前:デフォルトの名無しさん mailto:sage [2013/04/02(火) 05:44:55.99 ] gcc.gnu.org/projects/cxx0x.html Rvalue references for *this : GCC 4.8.1
294 名前:デフォルトの名無しさん [2013/04/06(土) 15:49:25.58 ] fast-mathオプションをつけるとisnanが機能しなくなるのだけど、何かいい手はない?
295 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 16:06:06.33 ] そのファイルだけfast-mathを外してコンパイルする。 と、どうなるか試してほしい。
296 名前:デフォルトの名無しさん [2013/04/06(土) 16:45:32.27 ] fast-mathつけなければ大丈夫。 fast-mathをつけると、isnan以外にも、a != aで判定する方法もダメ。 何かいい方法ないかな
297 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 16:57:51.17 ] -ffast-math をばらして必要なオプションだけを指定してみたら? -ffast-math Sets -fno-math-errno, -funsafe-math-optimizations, -fno-trapping-math, -ffinite-math-only, -fno-rounding-math, -fno-signaling-nans and fcx-limited-range.
298 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 22:18:43.85 ] -ffast-math -fno-finite-math-only の併用でok
299 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:00:04.38 ] 4.8ビルドしようとするとgccでintl-printと__printf__が不明と怒られる 仕方ないのでconfig.hに#include <libintl.h>を書き足すと>>255 と同じ事 言われて怒られる、しかしgmp等はインスト済み これってx64のライブラリ以外にx86のライブラリも必要って事なのかな?
300 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 22:29:24.61 ] コマンドラインまで >>255 と同じなら × --with-gmp-lib=/usr/local/lib64 ○ --with-gmp=/usr/local mpfr,mpc も同様
301 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 23:18:38.75 ] レスありがとう! んでも 64ビットのWindowsおよびgccだけSJLJ例外の32ビットベースのmultilibの バージョンについては#エラーがサポートされています。 って怒られた。。。ウチの環境はWin7x64、gccはTDM64です configureはこれ LIBS="-lintl -liconv " ../gcc-4.8-20130404/configure --prefix=/usr/gcc \ --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 \ --with-tune=generic --enable-threads=posix --disable-multilib --enable-static \ --enable-languages=c,c++,objc,obj-c++ --enable-libgomp --disable-sjlj-exceptions \ --with-dwarf2 --enable-version-specific-runtime-libs --disable-win32-registry \ --disable-werror --disable-nls --enable-lto --with-system-zlib \ --enable-libstdcxx-debug --enable-cxx-flags='-fno-function-sections -fno-data-sections' \ --enable-fully-dynamic-string --disable-libstdcxx-pch --disable-bootstrap \ --with-mpc-lib=/usr/tool/lib --with-mpc-include=/usr/tool/include \ --with-mpfr-include=/usr/tool/include --with-mpfr-lib=/usr/tool/lib \ --with-gmp-include=/usr/tool/include --with-gmp-lib=/usr/tool/lib \ --with-cloog-include=/usr/tool/include --with-cloog-lib=/usr/tool/lib \ --with-isl-include=/usr/tool/include --with-isl-lib=/usr/tool/lib --disable-multilibを消しても、やっぱりx64云々で蹴られますた ってかconfigureのログ見てると、intl=ok, iconv=okって言ってるのになんで intlの関数が不明って言われるのかなあ。
302 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 23:45:08.36 ] 消すなら --disable-multilib ではなくて --disable-sjlj-exceptions だろjk あと、もし binutils を一緒にビルドしようとして、 gcc のフォルダ内に binutils/{なんやらかんやら} へのリンクを張ってるなら、 両者に共通のライブラリが、バージョン違って失敗するかも
303 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 00:07:40.47 ] 消したけどダメ。。 ターゲット・ホスト・ビルドのx86_64-w64を消さないとどうしても 「はぁ?x64?」みたいな事言われるので消して、それでもintlで文句言われて config.hに<linintl.h>書き加えてビルド進めるとlibgccで Assembler messages: Error: invalid instruction suffix for `push' アセンブラ関連のエラーだと思うんだけど、ターゲットをx86_64-w64にすると怒 られ、libintlで怒られ…gccサイトのQ&A見ても「我々は悪くない、文句言われる テメーが悪い」みたいな事書いてあるし。。。。 もうネルソン!
304 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 22:43:32.74 ] やっとでけたあああ 七誌さんそして>>300 ありがとう! 一応手順 gcc用のディレクトリを作成、binutilsをビルド→インストール gccをコンパイラのみビルドしてinstall-gcc ここでmsys上のmingwを今作ったgccに切り替え mingw-w64ランタイムをヘッダのみビルド→インストール ランタイムをビルド→インストール gccの残りをビルド→インストール 今まで通常使ってるmingwだけでビルドしようとしてたのが間違ってた?っぽい
305 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 22:49:25.32 ] なんだかよく分からなかったけど強引に潰したエラー、3件 1.↓って言われる i386/cygming.h:358:2: error: #error For 64-bit windows and 32-bit based multilib version of gcc just SJLJ exceptions are supported. i386/mingw32.h:101:2: error: #error DW2 unwind is not available for 64-bit. i386/cygming.h:358:2: error: #error For 64-bit windows and 32-bit based multilib version of gcc just SJLJ exceptions are supported. i386/mingw32.h:101:2: error: #error DW2 unwind is not available for 64-bit. i386/cygming.h:358:2: error: #error For 64-bit windows and 32-bit based multilib version of gcc just SJLJ exceptions are supported. i386/mingw32.h:101:2: error: #error DW2 unwind is not available for 64-bit. コメントアウト 2. intl_printが不明 config.hに<libintl.h>を書き足す 3. libstdc++-v3/include/bits/basic_string.hでエラー call googleで外人さんのパッチをクローン +++ ./libstdc++-v3/config/os/mingw32-w64/os_defines.h +#include <_mingw_mac.h> +#if !defined (__MINGW64_VERSION_MAJOR) || (__MINGW64_VERSION_MAJOR < 3) #define _GLIBCXX_HAVE_BROKEN_VSWPRINTF 1 +#endif 3は、なんだか公式のmingw32使えみたいな事言ってた気がするけど1.2が分からんち 特に2番、なんでヘッダを要求されるのか。公式になんか書いても怖い人しかいないよう な雰囲気なので聞けない。。。 グダグダ書いたけど結局は>>302 のbinutils云々がヒントになってビルド出来た、ありがとね
306 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 23:22:10.38 ] 追記:libintlがぶっこわれてた 今までどうやってビルド通ってたんだろ・・・・・・・・・
307 名前:デフォルトの名無しさん mailto:sage [2013/04/10(水) 12:19:18.40 ] 馬鹿には無理
308 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 12:00:07.40 ] ネタじゃないので聞いてください。 一番最初のgccはどのようにコンパイルされたのですか?
309 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 13:04:09.04 ] 別のコンパイラを使う。UNIXのccとか。 歴史の話じゃなくて実用的な意味でどうするかといえば、 オフィシャルでバイナリのgccが配布されているのでそれを使う。
310 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 13:12:18.33 ] 最初のGCCはCで書かれていたわけでは無いらしい
311 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 13:13:20.52 ] ネタじゃないので聞いてください。 一番最初のccはどのようにコンパイルされたのですか?
312 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 13:25:22.63 ] 最初のコンパイラは機械語で書いた
313 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 14:56:44.41 ] 最初のコンパイラはA-0 Systemらしい。
314 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 18:04:08.51 ] gccをどうやってコンパイルするかを勉強してると そのあたりまで平然と遡らされるよな
315 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 18:20:46.26 ] Z80アセンブラをN88-BASICで実装しようとしたのは良い思い出…
316 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 23:18:45.40 ] >>311 > 一番最初のccはどのようにコンパイルされたのですか? 当時一般的に使われていた, Unix 上の PCC 互換コンパイラでコンパイルされたんだが, なんか問題あるの?
317 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 00:00:12.33 ] >>316 どこまで遡れるか大会だろ空気嫁よ
318 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 05:34:33.84 ] ネタじゃないので聞いてください。 一番最初のアセンブラはどのようにアセンブルされたのですか?
319 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 05:50:10.27 ] ネタじゃないならアセンブラスレで訊きましょう
320 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 10:08:15.61 ] 2chは優秀な技術者が議論する場所
321 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 10:54:15.95 ] >>318 ハンドアセンブル
322 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 11:37:22.44 ] multilib有効にしてGCCビルドしたら、ライブラリビルドでldちゃんが 32ライブラリに64libを合体させてしまいまする export -m32 -L/lib32 とかにしても言う事を聞いてくれませぬ ググっても、バカには無理みたいな風潮 TDMとか、どうやってmultilibなGCCビルドしてるんだろ?
323 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 21:32:17.28 ] gccの2.95.3なんですが、 gccがコンパイルされたときの./configureに渡された設定など 調べる方法は無いでしょうか?
324 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 02:22:37.84 ] gcc -vは? どうでもいいことだが、なぜそんな化石を使うのか聞いてみたい
325 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 15:12:42.53 ] gccで、以下のような情報を得るためのコマンドラインオプション、あるいは ツール・手段はありませんでしょうか? 知りたいのは、どういう過程でライブラリがリンクされているかです。 例えば、main.cでprintf()が使われている時、 (1) main.o には未解決のシンボル'printf'がある (2) 未解決シンボル'printf'を解決するため、libc.a 内の lib_a-printf.o をリンクした (3) さらに lib_a-printf.o には未解決のシンボル'vfprintf'がある (4) 未解決シンボル'vfprintf'を解決するため、libc.a 内の lib_a-vfprintf.o をリンクした (5) さらに lib_a-vfprintf.o には未解決のシンボル・・・・ : のような情報が得たいのです。 目的は、組み込み用でコードサイズ小さくしたい場合に、想定外のライブラリがリンク されているような場合、何が起点になっているかを調べるためです。 (例えば、標準入出力は使ってないのに標準入出力関係のライブラリがごっそりリンクさ れてしまう場合に、sprintf()→vfprintf()→・・・と、sprintf()を使っているのが原因 であることを知りたい) -Wl,--verbose は試してみましたが、ダメでした。
326 名前:デフォルトの名無しさん [2013/05/22(水) 15:23:31.68 ] man(2)
327 名前:デフォルトの名無しさん [2013/05/22(水) 15:25:10.67 ] lint
328 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2013/05/22(水) 16:31:27.29 ] >>325 スマートリンクを使った方がてっとりばやいんじゃね?
329 名前:325 mailto:sage [2013/05/22(水) 19:12:38.41 ] >>328 レス、ありがとうございます。 スマートリンクもコードサイズ削減に効果が無くはありませんが、(newlibは結構細かく ソースが分けてあるので)効果は小さいと思われます。 例えば、newlibの場合newlib内で使用する静的変数を(マルチスレッド対応等が容易なよ うに)_reent構造体にまとめてありますが、これをリンクするような関数を一つでも使用 してしまうと_reent構造体に関連する関数が多数リンクされ、コードサイズが肥大します。 これは(実行時に呼ばれることは無くても)未定義シンボル解決には必要であり、 -Wl,--gc-sectionsでは防止できません。 コードサイズの肥大の起因となるライブラリ関数が(質問に記述のように)特定でき、これ がごく少数なら、この関数を使用しないようにプログラムを書き換えてしまえ、という わけです。
330 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 19:16:10.03 ] gccじゃなくてリンカの仕事 例えばAppleのldなら-why_liveとかあるから、とりあえずman ld
331 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 19:58:13.29 ] 使ってる*.oをnmして未定義シンボルをリストして、 シンボルがどの*.aで定義されてるかnmして調べて、 *.aをar xして*.oにしてnmして、 以下収束するまで繰り返し。 多分機械的に出来るんじゃないか? Cの場合、使われる*.aは引数で与える必要があって、 最初から全リストが分かってるわけだし。
332 名前:325 mailto:sage [2013/05/22(水) 20:31:03.39 ] >>330 誤解を招く文章ですいません、ld(binutils)を含めてgccと書いていました。 -why_live(https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/ld.1.html) はまさに欲しているものでしたが、使用しているld(GNU ld version2.15 arm-elf/cygwin のクロス環境)には実装されていないようでした。 * ld.info(manがなかったので) * arm-elf-ld --help * sourceware.org/binutils/docs-2.15/ld/Options.html#Options で、why/live/chain/refferenceなどのキーワードで探してみましたが、同等のものは 見つけられませんでした。 >>331 はい、その方法(それを行うツールの作成)は最後の手段として考えています・・・
333 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 21:59:40.34 ] ld --help --cref 相互参照表を出力する -Wl,--cref
334 名前:325 mailto:sage [2013/05/23(木) 12:04:25.97 ] >>332 ありがとうございます。 --crefで目的を達せそうです。
335 名前:デフォルトの名無しさん mailto:sage [2013/06/01(土) 20:00:59.98 ] cygwinで gcc 4.8.1 コンパイルしたけど、エラーが2つでてインスコできんわ・・orz
336 名前:デフォルトの名無しさん mailto:sage [2013/06/02(日) 11:49:35.35 ] gcc -S -g で出力されるアセンブルコード中の.locの情報を 該当するCソースに置換するフィルタはどこかで公開してませんか?
337 名前:デフォルトの名無しさん mailto:sage [2013/06/02(日) 23:36:32.81 ] as --help -a[sub-option...] turn on listings Sub-options [default hls]: c omit false conditionals d omit debugging directives g include general info h include high-level source l include assembly m include macro expansions n omit forms processing s include symbols =FILE list to FILE (must be last sub-option) gcc -c -O2 hoge.c -Wa,-ahls=hoge.lst
338 名前:336 mailto:sage [2013/06/03(月) 10:32:13.74 ] >>337 ありがとう。それに-gつけたら出来ました。
339 名前:デフォルトの名無しさん mailto:sage [2013/06/13(木) 05:42:57.74 ] gcovの使い方の質問ここでしたらスレチですか?
340 名前:デフォルトの名無しさん mailto:sage [2013/06/13(木) 11:06:32.53 ] profとかcovはいいんじゃない?
341 名前:デフォルトの名無しさん mailto:sage [2013/06/14(金) 00:47:14.15 ] ではお言葉に甘えて。 カバレッジを調べるためgcovすると自分のソース以外の iostream.gcovとかも大量にできてしまいます。 これを指定のディレクトリ以外は生成しないようにできないものでしょうか? 今のところ-pをつけてファイルを生成し必要のないフォルダのものをrmで消してます。
342 名前:デフォルトの名無しさん mailto:sage [2013/06/14(金) 01:08:14.99 ] gcov --help -o, --object-directory DIR|FILE オブジェクトファイルを DIR 内または呼び出し用 FILE 内で検索する
343 名前:341 mailto:sage [2013/06/15(土) 01:10:38.28 ] >>342 使い方が間違っているのか期待した結果になりませんでした。 srcディレクトリに.h / .ccがあるので -o src と指定しましたがiostream.gcovは生成されました。 objディレクトリに .o があるので -o obj と指定すると obj/test.gcno:cannot open graph file といったエラーが表示されます。そこでobjにtest.gcnoをmvすると処理は通りますが 相変わらずiostream.gcovは生成されます。 ただlcovすると.gcovは消えるので気にしなければ済む問題かもしれません。
344 名前:デフォルトの名無しさん [2013/08/06(火) NY:AN:NY.AN ]
345 名前:デフォルトの名無しさん [2013/09/13(金) 23:40:52.15 ] プリプロセッサの話ってここで大丈夫?スレチだったら流して gccの-EオプションでCライクな言語のプリプロセスかけてるんだけど、そのマクロの記述で #define get_pi(data) (6'(data)<<3)って感じの記述してて、 これの ' の部分が文字データ記述の開始として扱われてdataが置き換わらないんだけど、対策ないですかね?
346 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 00:07:31.67 ] SystemVerilogかね? #define s ' #define get_pi(data) (6 s (data)<<3) 空白が入るけど動くよ。警告も出るけど。 規格上問題ないか、どのGCCバージョンでも動くかは分からん。
347 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 00:25:12.48 ] >>346 返信ありがとう御座います! 早速試したら出来ました。けどなぜ動くのかわからない… 因みに使ってるのNSLという言語です。ハードウェア記述言語なのは一緒ですかね
348 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 00:39:13.04 ] >>347 dataが置換された後に再走査されてsが置換されるから動く。 だから#define s ' が動けば、問題なく動く。
349 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 00:48:05.09 ] >>348 プリプロセッサってプロトタイプ宣言みたいに上から順に〜ってわけではないのか。一緒だと思ってました
350 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 04:44:31.37 ] gcc4.9のtrunk版、3ヶ月くらいプラグマバグでビルド出来なかったんだけどようやく修正された
351 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 10:36:33.97 ] >>349 いやいや、上から順で正しい。再走査はマクロ展開時の話だよ。 マクロ引数dataが展開された後に、その結果に対して再走査されて 普通の地の文と同じようにsがマクロ展開される。 最初のやつがうまく動かないのは、Cプリプロセッサは文字置き換えでなくて トークンを置きえるから。 (6'(data)<<3) は (, 6, '(data)<<3) という3つのトークンになってしまう。
352 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 13:34:26.01 ] プリプロセッサなんて自作しちゃいなよ
353 名前:デフォルトの名無しさん mailto:sage [2013/09/17(火) 16:30:56.00 ] 正確に標準に従ったcppを作るのは案外大変だぞ?
354 名前:デフォルトの名無しさん mailto:sage [2013/09/24(火) 00:04:00.29 ] >>345
355 名前:デフォルトの名無しさん mailto:sage [2013/11/04(月) 10:16:18.31 ] dev/nullを出力先に指定するとscanfなどで入力した内容が表示されなくなるという噂を聞きました どのように指定すると良いか教えてください
356 名前:デフォルトの名無しさん mailto:sage [2013/11/04(月) 10:35:57.62 ] >>355 入力した内容なら、必要に応じて"/dev/stderr"(stderr)にでも出力すればいいじゃん。
357 名前:デフォルトの名無しさん mailto:sage [2013/11/04(月) 19:25:05.12 ] >>355 scanf を実行する前に標準出力を /dev/null につけかえるのでは、pipe(), pipe2() とかで?
358 名前:デフォルトの名無しさん mailto:sage [2013/11/04(月) 19:39:51.62 ] >>357 意味不明
359 名前:デフォルトの名無しさん mailto:sage [2013/11/04(月) 21:46:42.94 ] >>357 はい、そのとおりです。
360 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 14:08:37.22 ] >>357 pipe2はlinux専用関数だがな
361 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 17:17:29.77 ] >>360 ウイーンドーズにも/dev/nullがあるんですか?
362 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 17:20:56.19 ] Windows だと NUL だろ。
363 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 21:07:31.14 ] 察するに、パスワード入力ではechoさせたくないとかそれ系の話だろ? 普通はtermiosやSetConsoleModeでやることで、標準出力を/dev/nullに付け替えるなんて教えた奴は凄いんだか意地悪なんだか
364 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 21:23:56.90 ] >>363 標準出力のリダイレクトでは、その望みを叶えられないのだが。 凄くも何ともない。
365 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 17:40:38.34 ] int f(int n) { while (--n) ; return n} がgcc -O2 (4.6.3)で int f(int ) { retunr 0; } のようにコンパイルされました。 この最適化がヒューリスティック(パターンデータベースのようなもの)を使っているのか 知りたいのですが、どのへんを調べればいいのでしょうか? (質問の意図は、自作の最適化器にもこの手の処理をいれたいのですが、 場当たり的に入れるしかないのか、一般的な方法があるのかを知りたいということです。)
366 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 18:35:36.33 ] ただの定数最適化に見える。 あなたのレベルを分かるようにしないと、ドラゴンブック読めとか言われちゃうよ。
367 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 18:37:40.20 ] >>366 なんか見当違いなレスだなぁ
368 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 20:37:34.22 ] すいません。ドラゴンブックは学生時代に買って眺めたことはあります。専攻はコンピュータ科学でした。 コンパイラ関係はあまり深く学ばなかったとの、なにぶん10年以上のブランクがあるので、 どの程度の難しさの問題なのかもわからないのです。 定数最適化、なんでしょうか? while文が終わるとすれば0しかありえないですが、while文の停止性まで最適化器が判断できるのか疑問だったのです。 追伸: int f(int n) { while (n=n-2) {} return n; } main() { f(-2); } とかだとnの偶奇(もっと一般のケースもいけるみたいです)で結果を変えるようです。 -O0 と -O2 で実行時間が全然違ってしまいますが速くなる分にはいいんですよね。
369 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 21:40:38.13 ] GCCはどうだか知りませんのでドラゴンブックレベルの一般論ですが、 ループ最適化は普通にやるので、条件式は判断します。 制約条件がそこではっきりするので最終的には通常の定数最適化 パスで消えてるんじゃないでしょうか。 ドラゴンブックに書いてなかったっけ? 停止性が判断できるかという疑問ですが、判断できなければ 最適化はやらないということになるはずです。 逆に聞きたいのですが、ヒューリスティックに何かできる んでしょうか? 実行時判断みたいなもの?
370 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 23:40:22.44 ] 前半はなんとなくわかりました。ドラゴンブックは多分実家にあるので参照できませんが、、、 後半ですが、誤用かもしれませんが経験則の意味で使いました。 停止性は当然一般には判断できないので、どんな経験則を使ってるのかな、ってぐらいで、 深い意味はなかったです。
371 名前:デフォルトの名無しさん [2014/01/04(土) 22:39:03.46 ] ドラゴンブックってなーに
372 名前:デフォルトの名無しさん mailto:sage [2014/01/04(土) 23:07:48.15 ] ぐぐれ
373 名前:デフォルトの名無しさん mailto:sage [2014/01/06(月) 14:56:20.27 ] 教科書的な最適化はやってないと思うよ
374 名前:デフォルトの名無しさん mailto:sage [2014/01/06(月) 23:57:03.34 ] >>365 ブロック内の変数に関数外の部分から影響を受けるかどうか(volatileやrestrictじゃないメモリ参照とか)のフラグを用意して、 外部の影響を受けない変数や定数から構成された条件式は停止時の条件が計算できる可能が高いので最適化を試みるとか。 似たような考え方でブロックが(大域変数などに)副作用を与えるかどうかを判断すれば簡略化やコードの削除ができるんじゃない?
375 名前:デフォルトの名無しさん mailto:sage [2014/01/09(木) 18:39:35.49 ] >>371 中学生が大好きな架空の生物が掲載された魔導書だよ 恐れおののきつつも憧れを抱き、本棚の奥で埃を被っている一冊 忘れた頃に自分の娘がドラゴンを召喚して世界を崩壊へ誘ったりするアレ
376 名前:デフォルトの名無しさん mailto:sage [2014/01/09(木) 19:05:21.73 ] >>365 l1: --n; if (n != 0) goto l1; return n; 不変式解析で、 l1: --n; if (n != 0) goto l1; return 0; nの非到達性で、 return 0;
377 名前:デフォルトの名無しさん mailto:sage [2014/01/09(木) 23:33:20.23 ] >>375 おもしろそうですね
378 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 22:45:26.19 ] libdwarfがELFに依存してて泣ける… Windows(MinGW)だとPE+DWARFだから使えないのが残念 MinGWのobjdump.exeは自力で解析してるから、ソースを参考にすれば なんとかなりそうだけどDWARFの知識が必要になるし…
379 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 23:18:17.02 ] libdwarfをPE対応にしてupstreamにパッチ投げれば 他の人も幸せになれるんでないの
380 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 23:46:19.90 ] 正直libdwarf内で最低限のELFエミュレーションをしようと思ってソース 見たけどめげた…ごめんよ とりあえずobjdump.exeがやってるDWARF解析部分を解析してみるよ それでDWARFになじんだらまたトライしてみたい
381 名前:デフォルトの名無しさん [2014/02/13(木) 21:57:38.58 ] どうでもいいがCentOS最近入れたらデフォルトではインスコされてないんだな gccのないLinuxなんてLinuxじゃないやい
382 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 22:29:35.18 ] CentOSのGCCは糞古いから最初から入ってなくても問題無い ただ新しいのを入れるには色々手間は掛かる
383 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 22:46:51.56 ] 3回コンパイルすりゃいいだけだろ
384 名前:片山博文MZ無能 ◆T6xkBnTXz7B0 mailto:sage [2014/02/14(金) 19:50:03.01 ] gccとg++は最近不具合があるから、clangに乗り換えることにした。
385 名前:デフォルトの名無しさん mailto:sage [2014/02/14(金) 20:02:18.20 ] あそう
386 名前:デフォルトの名無しさん mailto:sage [2014/02/14(金) 21:13:38.73 ] あべ
387 名前:デフォルトの名無しさん mailto:sage [2014/02/14(金) 23:07:39.94 ] あべし
388 名前:デフォルトの名無しさん mailto:sage [2014/02/15(土) 01:10:07.47 ] ひでぶ
389 名前:デフォルトの名無しさん mailto:sage [2014/02/15(土) 04:20:34.58 ] たわば
390 名前:デフォルトの名無しさん mailto:sage [2014/02/15(土) 20:59:09.39 ] >>389 やぁ 先輩
391 名前:デフォルトの名無しさん mailto:sage [2014/02/15(土) 21:26:10.59 ] お こんなとこいたか まぁ上がれ
392 名前:デフォルトの名無しさん [2014/02/15(土) 22:58:41.46 ] おう、唐突なあ〜るスレやめろや
393 名前:デフォルトの名無しさん mailto:sage [2014/02/17(月) 15:17:28.49 ] うるさい! おまえなんかロボットだ
394 名前:デフォルトの名無しさん mailto:sage [2014/02/17(月) 16:03:52.41 ] 助けて あーりんロボ!ピンチなの!
395 名前:デフォルトの名無しさん mailto:sage [2014/02/17(月) 21:00:58.58 ] とほほ
396 名前:デフォルトの名無しさん mailto:sage [2014/02/18(火) 21:19:37.28 ] 埼玉県の地図さえあれば
397 名前:デフォルトの名無しさん mailto:sage [2014/02/18(火) 21:57:49.43 ] 山田うどんの場所がわかる
398 名前:デフォルトの名無しさん [2014/02/18(火) 22:39:44.23 ] いろんなレガシー言語の墓場になってて面白いよね
399 名前: ◆QZaw55cn4c mailto:sage [2014/03/17(月) 18:34:12.34 ID:rLCh2DtT] >>394 「ロボットじゃないよ,アンドロイドだよ」って応えないと
400 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 17:27:54.35 ID:Qhdzl4hJ] 何を言ってる。 あれは立派なロボだ。設計図を知らんのか。
401 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 14:20:24.04 ID:4BzhBi/8] >>381 Solarisにccがないとかいう話が昔なんとかかんとか > どうでもいいがCentOS最近入れたらデフォルトではインスコされてないんだな > gccのないLinuxなんてLinuxじゃないやい
402 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 22:27:08.61 ID:SeS398JM] デフォってなによー の話だな
403 名前: ◆QZaw55cn4c mailto:sage [2014/03/25(火) 19:24:42.50 ID:I6L0W68I] え?Linux ですら clang に移行したの?
404 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 20:02:11.82 ID:AvCKhDY2] >>403 ちげーよ、標準インストールと開発インストールの違いもわかんねーコゾウだよ
405 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 20:57:10.65 ID:gYecV8lQ] 今日4.9をsvnからチェックアウトしてビルドしたんだけど、gfortranのopm_lib.modとかバイナリになった? 去年9月頃ははテキストだったけど仕様変わったのかなそれともビルド失敗したのかな
406 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 21:00:28.08 ID:gYecV8lQ] あ、opm有効にしてビルドしたら実行ファイルは動いてるから仕様変わったのね 履歴にはなんも書いてないっぽい 同じく昨日ビルドした4.8.3のスナップは未だにテキスト形式なんだけどなー
407 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 21:20:14.97 ID:gYecV8lQ] 更に勘違い。去年9月の4.9もバイナリだった、4.8はずーっとテキスト形式 あーんもう、ごめん!
408 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 23:27:56.52 ID:6NPXk5PR] MacOSとFreeBSDはclangだよな
409 名前:デフォルトの名無しさん [2014/03/26(水) 00:54:07.95 ID:+kV1DCY1] せやな MacOSは-stdlib=libc++をつけるのがめんどくさい
410 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 00:58:28.85 ID:JdSV9wAR] ツール使えよ
411 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 17:35:18.77 ID:NoRZCfW9] trankのgccが4.10になってた セグメントエラー多すぎ
412 名前:デフォルトの名無しさん [2014/04/29(火) 09:38:50.75 ID:ysohpla1] GCC4.9ってOpenMP4.0フルサポートしてんの?
413 名前:デフォルトの名無しさん mailto:sage [2014/04/30(水) 12:26:36.46 ID:RKEixZj5] 4.9.0 出てたんだ
414 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 16:53:49.90 ID:D1oOHYCI] 次は4.10なのか 5になるためのネタがない?
415 名前:デフォルトの名無しさん mailto:sage [2014/05/30(金) 10:15:09.82 ID:A+ocbhhF] 415 のテスト