[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 07/07 10:02 / Filesize : 96 KB / Number-of Response : 416
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

GCCについて part10



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 のテスト






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<96KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef