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


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

GCCについて part9



1 名前:デフォルトの名無しさん [2009/06/27(土) 08:34:50 ]
史上最強かもしれないツール、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について part8
pc12.2ch.net/test/read.cgi/tech/1192201659/l50

307 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 00:12:02 ]
>>306
gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas
によると、
#pragma message "Compiling " __FILE__ "..."
とか出来るっぽいぜ

308 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 17:22:22 ]
>>305
今はだめだろ。CPUいっぱいあるから。

309 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 19:57:17 ]
ついでにいうとCPU, OSの組み合わせによってはRDTSCがエミュになってしまい
数百クロックを要する。
だがそのような環境では逆に全コアでタイマカウンタが一貫してたりする。

310 名前:306 mailto:sage [2010/03/25(木) 21:44:47 ]
>>307
ありがとうございます。しかし試してみたところダメでした。
-Wunknown-pragmasでコンパイルしたら「無視しました」みたいなメッセージが出ました。
gccのバージョンによるんですかね。4.3.2でした。


311 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 00:23:57 ]
>>307
#warningで出来るかなと思ったら引数のマクロ展開はしないとか
ふざけた事を抜かしているのであまり使えないな。 この程度は
出来るけど。

#warning Message

$ gcc -c source.c
source.c:1:2: warning: #warning Message

waring:#warning が冗長で醜いなあw



312 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 09:37:53 ]
俺もそれは浮かんだが、-Werrorを入れてる環境だと止まるので完全ではないわな

313 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 23:33:33 ]
Xeon 5500って、最適化オプションの名前って何ですか?

nocona?
core2?


314 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 07:35:10 ]
>>313
たしか〜

nehalem-exかNorthwood

315 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 10:42:05 ]
最適化してもあまり変わらないんだけどな
SSE2を使うだけで十分だと思う



316 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 21:31:49 ]
nativeでいいよ

317 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 10:20:40 ]
4.5.0-RC-20100406

318 名前:デフォルトの名無しさん [2010/04/14(水) 15:49:00 ]
GCC4.4.1は-msse・最大最適化でコンパイルすると、float演算はSSE命令により
自動ベクトル化されるが、整数演算はベクトル化されない。整数移動はベクトル化
されるが、float用SSE命令が使われていた。GCCはMMXや3DNOWコードを吐かないの?

319 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 21:08:15 ]
GCC 4.5.0 release

320 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 21:43:24 ]
MMXは基本的にshort以下の整数に使うもんだし
飽和演算とか利用してこそだし
あまり自動最適化には向かないんじゃない

321 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 01:44:02 ]
MMXは切替えなくちゃ使えないから使わないみたいなのを読んだような気がする

322 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 07:15:21 ]
SSEの整数命令使えばいいんじゃない

323 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 12:53:50 ]
整数はベクタ化の恩恵を受けにくいからじゃないかな。
単なるコピーならfloat32でも同じことだし。

324 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 22:23:12 ]
-mmmxとか-m3dnowじゃないと使わないんじゃない
SSEで全部まかなえるわけだし

325 名前:デフォルトの名無しさん [2010/04/15(木) 23:35:38 ]
>>324
普通のSSEには整数命令入っていないよ
-mmmxや-m3dnowでもMMXレジスタは使っていなかった。



326 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 23:52:09 ]
alignmentしてないと速くなんないからじゃね?

327 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 00:02:00 ]
普通のSSEじゃないだろ最初のSSEだろ

328 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 20:29:37 ]
Pen4あたりから入り始めたんだっけ?

329 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 19:38:11 ]
何が? 最初のSSEはPenIIIだよ。

330 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 01:19:50 ]
pen3のsseは整数演算できない

331 名前:デフォルトの名無しさん [2010/04/18(日) 02:33:27 ]
GCC4が登場した頃には整数SIMDができるSSE2の登場から数年経過しており、MMXに
よる整数SIMDの需要が少なかったからか?さらに、GCC4登場初期はスマートフォンや
PDAにiwmmxtが搭載されていたが、そもそも当時はスマートフォンが普及しておらず
MMX系の需要は少なかったからか。で、今ではスマートフォンが普及しgccに
armの128bit自動ベクトル化が搭載されたが、既に時代遅れのiwmmxtは対象外
という事か。

332 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 14:05:30 ]
gccは商用コンパイラにどれくらい負けますか?

333 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 14:06:59 ]
MMXはintに大体適用できないから
一生懸命対応するメリットが少ないんじゃないの

334 名前:デフォルトの名無しさん [2010/04/19(月) 03:58:34 ]
>>332
あらゆるCPUに同じコアで対応しているから、乗算結果の上位の取り出しや飽和演算で
最適コードを吐かない、MMXのように切り替えが必要な処理は実装されないんじゃね?
>>333
iwmmxtならそもそもfpu搭載していないので切り替え不要だし、加減算やshort乗算には効果あるよ

335 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 17:17:45 ]
gcc4って最初かなりすごかったのに、後からどんどん遅くbuggyになってるよね
プロプライエタリの工作員が本気出し始めたのかな



336 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 17:19:45 ]
4.5からbackendをplugin化出来るようになったからいつでもllvmに逃げられるようになったけどね

337 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 21:03:17 ]
Benchmarks Of GCC 4.5.0 Compiler Performance
www.phoronix.com/scan.php?page=article&item=gcc_45_benchmarks

338 名前:デフォルトの名無しさん [2010/04/21(水) 02:45:57 ]
ポインタ渡しの関数内でSIMDを使いたい場合、仮引数をstruct{long __attribute__((aligned(16)))
a[2][8];}*aのようにして、a->a[i][j]でアクセスしないとアライメントデータとして扱われない。
ソース冒頭で構造体型定義を使っても可。もっと簡単にポインタがアライメントされて
いる事をgccに分からせる方法はないの?
また、func(struct{long __attribute__((aligned(16))) a[2][32];}*__restrict a,
struct{long __attribute__((aligned(16))) a[2][32];}*__restrict b, int *__restrict c){
int i;for (i=0;i<8;i++){a->a[0][*c*4+i]=b->a[0][i];a->a[1][*c*4+i]=b->a[1][i];} }
のように二次元配列を2つ受け取り、ポインタ渡しで指定されたオフセット分ずらして
転送する関数を書くと、versioning for alias requiredとなり非SIMDコードも生成
されるが、[*c*4+i]を[(*c+=0)*4+i]とすると非SIMDコードは生成されない。
>>335
OSSへの破壊工作ってあるの?

339 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 09:15:33 ]
十分簡単だろ。

340 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 10:53:16 ]
>>338
マクロ使えよ

341 名前:デフォルトの名無しさん [2010/04/21(水) 11:15:06 ]
codepad.org/AKWhbBiV
のコードを g++ 4.3.2 で最適化なしコンパイルして実行したら,

--Start 1--
Destructor
Destructor
--End 1--
--Start 2--
Destructor
--End 2--
Destructor

という結果になった.
(Start 2 と End 2 の間にもう1つの"Destructor"があることを期待していた)

G++ だと,返されるオブジェクトが関数のローカル変数の場合は,
戻り値用の一時オブジェクトは作成されない仕様なの?

342 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 11:33:58 ]
>>341
Start 2 〜のように戻り値と同じ型のローカル変数を return した場合、
C++ の規格でコピーの省略が許されている。 (ISO C++ 12.8 p15)

これに対して Start 1 〜のほうで必要になる、既存の変数から関数引数への
コピーは省略できない。

コピーの省略が許されているだけなので、実際にコピーされるかどうかは
コンパイラやコンパイルオプションやコードの複雑さなどで変わる可能性がある。

343 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 11:38:09 ]
>>342
コピーの省略が認められているとは知りませんでした
大変勉強になりました
どうもありがとうございます

344 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 11:44:51 ]
>>341
en.wikipedia.org/wiki/Return_value_optimization

345 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 12:09:15 ]
>>341
g++ の場合、それで困るようなら -fno-elide-constructors を使うという手がある。
gcc.gnu.org/onlinedocs/gcc-4.3.4/gcc/C_002b_002b-Dialect-Options.html



346 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 15:53:02 ]
>>345
分かりにくいオプション名だなあ。
RVO(Return Value Optimization)を使うべきだよね。

347 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 16:03:12 ]
頭にno-が付いてるおぷそんは嫌やな
じゃあyea-があるのか?と思ったらないし

348 名前:341 mailto:sage [2010/04/21(水) 16:09:23 ]
>>344-345
ご親切にありがとうございます

349 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 21:33:42 ]
Benchmarking LLVM & Clang Against GCC 4.5
www.phoronix.com/scan.php?page=article&item=gcc_llvm_clang

350 名前:デフォルトの名無しさん [2010/04/26(月) 19:48:31 ]
for (i=0;i<128;i++)c[i]=a[127-i]*b[127-i];のように配列に乗算して順番を
反転するコードもSIMD化されない。a[i]やb[i]への書き込みが禁止されているのなら、
for (i=0;i<128;i++)c[i]=a[i]*b[i];for (i=0;i<64;i++){buf=c[i];c[i]=c[127-i];
c[127-i]=buf;}としなければならない。

351 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 20:02:49 ]
どんなコードを吐いてるの?

352 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 20:10:51 ]
>>350
マジ?
swap処理なんて最悪に遅いのだけど。sizeof(* c)が判らないからなんとも言えないけれど、
a*bを別に保存しておいて転送した方が速い希ガス。

353 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 20:30:01 ]
最適化オプションを知らないとか?

354 名前:デフォルトの名無しさん [2010/04/29(木) 02:14:24 ]
MakefileでCPUの種類を判別してコンパイルオプションを変更したいのですが、
どのようにすればよいのでしょうか?

355 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 02:24:37 ]
CPUの種類からコンパイルオプションを生成するコマンドを作ればいいんじゃない



356 名前:デフォルトの名無しさん [2010/04/29(木) 05:05:38 ]
kwsk

357 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 05:20:55 ]
configure書けば

358 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 13:00:52 ]
CPUの種類が自分でわからないのに、コンパイラがわかるわけがない

359 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 16:38:25 ]
MakefileでCPUの種類を判別するプログラムを実行すりゃいいだろ
アホか

360 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 16:42:38 ]
どこにあるんだよ

361 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 16:47:11 ]
CPUの種類を判別する
でググれ

362 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 16:56:36 ]
組み込み向けとかも判別してくれるのかよ
x86用で個別にtuneしてもあんまりかわらんだろ

363 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 17:24:23 ]
クレクレ言うな
自分で「やれ」

364 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 17:46:22 ]
探しているものは、たいてい見つかる
必死で探せばな

365 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 17:54:58 ]
すべてを網羅するようなものはないみたいだ。



366 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 18:19:12 ]
>>365
ある程度までならあるってことだ。
判別不能な分はunknownでいいだろ。
細かいところはあとでなんとかしろ。

367 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 20:44:54 ]
最適化してもデバッグ出来そうにないから、オプションつけても無駄のような

368 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 21:35:41 ]
march=nativeで十分だって

369 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:09:29 ]
>>366
でも90MHz Pentium で受け入れられるのに 550MHz K6-3 で蹴られるのは悲しい。

370 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 11:32:43 ]
あむどはふりむかない

371 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 11:51:08 ]
あむどは最適化しなくても早いって、言ってなかったけ

372 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 05:50:20 ]
4.4.4

373 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 07:21:14 ]
>>371
Intel みたいに gcc にコミットできないから、
最適化できないのだよ。
Windows 以外では、gcc を1割最適化できれば、
クロックを1割早くするのと同じなのにな。

374 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 11:57:23 ]
つってもなー、CPUの内部アーキテクチャ変わったらまた最適化変えなきゃだろ?

375 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 18:24:01 ]
これまでのAMDのCPUはフル機能命令デコーダただ並べてたりクセの少ないアーキだから
(Intelはフル機能と機能限定の組み合わせで省電力&面積削減の分キャッシュ増量可能に振ってる)
x86一般最適化がしてあればそれ以上は大して高速化しないと思われ



376 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 19:18:08 ]
いくらあむど贔屓に作ってもgccが1割最適化するなら
印р1割早くなる気がする


377 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 12:40:22 ]
>>376
Intelへの最適化は結構進んでるよ。
もちろん icc ほどじゃないが。

378 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 02:52:03 ]
あむどは各板でバカにされててかわいそうでつ
gccぐらい夢みさせてあげてえ

379 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 16:00:40 ]


380 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 18:05:00 ]
>>378
もっさり、じゃないぶんましではないかと。

381 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 18:16:27 ]
MinGW64_x64で手持ちのアプリを片っ端から64ビット化してるんだが
__fastcall の指定で大量のワーニングが出たのでびっくりして調べてみたら
x64は基本レジスタ渡しで __fastcall とかは指定しても意味がないということを初めて知った
レジスタ渡しの方法がVC++と非互換らしいけどいつかどっちかに統一されるんだろうか

382 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 18:55:52 ]
レジスタ16個もあるからかな

383 名前:デフォルトの名無しさん [2010/05/04(火) 19:07:42 ]
アセンブラでプログラムしてるんですが、普通にasでアセンブルするとサイズが
デカくなるんですが、単純にアセンブルだけしてくれるようなパラメータが
あったら教えてください。スレちだったらスマン。。

384 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 19:34:18 ]
LLVMの方が性能上だしなぁ
gccなんて意味があるのだろうか?

385 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 20:02:40 ]
性能ってどういう所がいいの?



386 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 20:14:09 ]
>>381
非互換ってそれgcc for Linux/x86-64と VC++ for Windows x64それぞれのことを言ってたりしないか?
例えば↓こことか
homepage1.nifty.com/herumi/prog/x64.html

387 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 20:32:11 ]
gccのソースみると、ms_abiってのがあるよ

388 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 22:48:06 ]
>>384
ffmpeg
インラインアセンブラに対応できないと思う
gccに依存してるffmpegが糞とも言う

389 名前:デフォルトの名無しさん [2010/05/08(土) 11:08:45 ]
Intel compilerでffmpegをコンパイルする方法を教えて

390 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 13:10:04 ]
GCC4.5もう使った人いるのかな。

391 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 00:27:44 ]
必要に迫られてsnapshotのころから。

そういえばリリース版に入れ直してなかった。



392 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 20:22:24 ]
GCCを改変して、任意のアセンブラを吐かせたいのですが、
どのようなワードで検索してよいのかわかりません。

具体的には、自作した仮想マシン向けのアセンブリ言語を吐かせたいとおもっております。

アセンブラとアセンブリ言語は適当にでっち上げた物がありますので、
ぜひGCCを利用してCやC++でプログラムを組めるように仕立て上げたいです。

393 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 20:27:51 ]
すれ違いだが、いま流行りの COINS を利用した方がいいんじゃないかな?
あとは時代遅れの Xbyak とか。

394 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 20:37:04 ]
テキストファイル置換ソフトの方があってるんじゃないか

395 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 20:40:48 ]
>>392
調べるなら >>391 やLLVMとか。pccいじるのも楽でいいかもね。



396 名前:395 mailto:sage [2010/05/10(月) 20:42:38 ]
>>391じゃねえ>>393

397 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 20:42:40 ]
COINSは初めて知りました、ずいぶんモダンな作りをしていますね。

特定アセンブラを吐くドライバだけを作成できれば、
目的が達成できそうな感じでしょうか?

斜め読みしかしていないので、もっと深くよんでみます。

Xbyakは動的にx86のバイナリを吐くライブラリでしょうか?

ソースは見てないのでなんともいえませんが、x86バイナリ生成部を
オレオレバイナリに置き換えればよさそうですね。

いろいろありがとうございます。

398 名前:392 mailto:sage [2010/05/10(月) 20:51:17 ]
>>395
pccも改造ベースにはコンパクトで良いとの評判みたいですね。
こっちもソース覗いてみます!

399 名前:393 mailto:sage [2010/05/10(月) 21:11:41 ]
>>393 は釣りで、いまは LLVM 一択でしょう。(スマ

400 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 01:00:09 ]
俺もLLVM一択だと思うが、
gccを改変する話に戻すと、検索ワードは「バックエンド」な

401 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 17:36:51 ]
>>392
gcc.gnu.org/onlinedocs/gccint/Back-End.html#Back-End

402 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 18:50:03 ]
gdbの質問もここでおk?

403 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 19:06:29 ]
グデブ

404 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 06:26:37 ]
適切なスレが思いつかないんで、
とりあえず聞くだけ聞いて、それから誘導されるがよい

405 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 20:35:56 ]
apachでGCCが使えないのですが、gccオプションなどで可能になるものでしょうか?
exeファイルのバイナリーに含まれる文字が原因のようなのですが。
pc11.2ch.net/test/read.cgi/mysv/1245157265/770



406 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 20:38:59 ]
gccに問題ないから。exeファイルうんぬんも関係ない。

407 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 20:42:18 ]
はい、
apachとのバイナリーレベルでの相性のようです。

408 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 21:14:23 ]
"\r\n"


409 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 21:52:11 ]
>>408
Windowsなら、"\n"と"\r\n"は、同じ"\r\n"を出力します。

410 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 20:19:00 ]
>>409それだとちょっと語弊があるような最終的にはそうなるけどさ
Windowsの場合"\n"だけでCRLF(復帰改行)が出力されるから"\r\n"を明示する意味はない

411 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 20:57:56 ]
>>410
どうも405の問題は、Windows上においても処理系によっては
¥nがLFであってCRLFで無いという問題の様に思える。 

412 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 04:55:08 ]
標準出力をバイナリーモードにすればいいとかじゃないの?

413 名前:405 mailto:sage [2010/05/18(火) 20:11:57 ]
Apache統合スレ 10 (HTTPServer以外も含む)
pc11.2ch.net/test/read.cgi/mysv/1245157265/770-786
C言語でstdoutをbinモードにするには?
www.tohoho-web.com/lng/200003/00030242.htm

解決しました。

414 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 20:23:13 ]
窓でパイプ処理やろうとすると必ず通る壁だな

415 名前:409 mailto:sage [2010/05/22(土) 22:05:47 ]
>>410
違ってた、GCCの場合だけは "\n" なら、\n しか出力しないようなEXEを作る。
実験はWINのサクラエディタで実行してみた。



416 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 10:11:53 ]
May 22, 2010
The GNU project and the GCC developers are pleased to announce the release of GCC 4.3.5.
This release is a bug-fix release, containing fixes for regressions in GCC 4.3.4 relative to previous releases of GCC.
gcc.gnu.org/gcc-4.3/

417 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 18:06:00 ]
なんでGNU公式の統合開発環境ってないのだろうね。

418 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 18:49:24 ]
GUIなんて要らないとおもってるから。

419 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 18:58:16 ]
GNU統合開発環境ってemacsじゃないの?

420 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 19:22:27 ]
>>419勘違いも甚だしいぞ、失礼なやつだ。

421 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 20:27:02 ]
教祖に聞け

422 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 10:41:11 ]
デバッガだけはGUIあった方が断然いい。
異論はまったく認めない。

423 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 12:28:09 ]
>>530
心配性だな、とっても大人数でいじらなければいけない案件なのか?

424 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 18:15:08 ]
ロングパスだな

425 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 20:36:12 ]
>>422
かなり同意。 OllyDBG になれたら GDB なんて使う気にならん。
symdeb に疑問を感じなかった昔の自分が信じられん。



426 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 02:17:03 ]
おまえらデバッガだの統合開発環境だの言うけど、何がそんなに便利なのか俺に見せてみろよ。

そう後輩に言った10分後、おれは「すまんかった、ちょっとこれマジで教えてくれ…。」と言っていた。

427 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 06:57:24 ]
>>418
そんなこと思っていたらGDB/MIなんてないだろ。

428 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 19:14:57 ]
graphite関係のオプションで詳しい説明あるところを教えてください。
キャッシュサイズとかどこで取得するのかなー?

429 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 15:30:28 ]
4.5はやくしてくれねーかなー
ラムダ式つかいたいから開発保留してるんだけど。

430 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 01:30:35 ]
>>429 保留してる間に gcc のリリースに貢献すればよいではないか。

431 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 00:42:37 ]
GCC が C++ を採用するとはビックリした。これも LLVM の影響なのかな(LLVM は C++)?

news.ycombinator.com/item?id=1392601

432 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 01:28:58 ]
なんだ?って思っちゃったがGCC自体のコードをC++で書き直そうって話ね。

433 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 07:15:10 ]
>>431
> The goal is a better compiler for users, not a C++ code base for its own sake.
とか言ってるわりに、とりあえずどの機能が欲しくて使うことにしたのか、よくわからんな。

434 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 10:09:50 ]
むこうにも中二病開発者がいるんだろ

435 名前:デフォルトの名無しさん [2010/06/01(火) 11:36:30 ]
C言語でもオブジェクト指向なプログラミングはできるし、
継承や多態性も実現できるが・・・。

まあコード量がおおくなって手続きがうざくなるからな。




436 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 16:56:31 ]
せっかくgccなんだから、objc とか ada とかで書いてみるとか。

437 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 21:19:39 ]
まじめな話、gcc が c で書かれているから、いろんなプラットホームに移植されたわけで‥‥‥。

438 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 21:52:21 ]
bootstrapのプロセスはどうなるんだろう? 

439 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 07:33:00 ]
>>438
クロスが基本となるだろう。

440 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 13:57:57 ]
>>437
昔はクロス環境作るの大変だったけど、今は普通だし、
開発環境そこらじゅうにあるし、問題にならないんじゃね

441 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 19:31:49 ]
--enable-build-with-cxx

442 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 21:30:05 ]
gcc動くけどg++ダメなんて環境はそんなになさそうだしなあ。

ついでにどうでもいいことだがRMSがこの決定に同意しているのか気にならんでもない。


443 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 09:55:20 ]
おっ、初めての経験。 ちょっと複雑なデーター構造の初期化を実験してたらg++を無限
ループに入れる事に成功したw 以下のコードをg++でコンパイルしてみてくれ。
g++ 4.0.1, g++ 4.1.2で再現された。 gccではすぐに止る。

struct {
 int value;
 union {
  int value2;
  struct {
  int value3;
  int value4;
 } s;
 } u;
} local = { value : 0,
u : s: { value3 : 3, value4: 4 }};

こういう無限エラーループに入る.
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’



444 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 10:19:07 ]
ちなみにこれが正解だった

...
local = { value : 0, u : { s : { value3 : 3, value4 : 4 }}};


445 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 17:27:31 ]
書けるけど読みたくは無い構造してんなぁ



446 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 17:29:15 ]
>>443
∞ループに入る最小の構造を作るためにもうちょっと単純化してみたら面白いかもよ。


447 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 20:57:18 ]
mingwのLTOまだあああああああああああ

448 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 06:25:05 ]
これって知ってた?
sourceware.org/gdb/wiki/STLSupport

試したらこんな事が出来て涙が出た。
(gdb) list
7 map<char*, int> test;
8
9 test["hoge"] = 111;
10 test["mage"] = 222;
11 test["moge"] = 333;
12 }
(gdb) p test
$1 = std::map with 3 elements = {
 [0x8049760 "hoge"] = 111,
 [0x8049765 "mage"] = 222,
 [0x804976a "moge"] = 333
}



449 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 06:33:01 ]
これを/rオプション(raw)で見るといつもの様に

$2 = {_M_t = {
_M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<char* const, int> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<ch¥
ar* const, int> > >> = {<No data fields>}, <No data fields>},
_M_key_compare = {<std::binary_function<char*, char*, bool>> = {<No data fields>}, <No data fields>}, _M_header = {
_M_color = std::_S_red, _M_parent = 0x804b028, _M_left = 0x804b008, _M_right = 0x804b048}, _M_node_count = 3}}}




450 名前:デフォルトの名無しさん [2010/06/29(火) 22:13:29 ]
FreeBSDの人いる?
gcc 4.5.0で-O2で最適化したら例外をキャッチできないケース見つけた。-O1だとOK。
再現できるか試して欲しい。

再現パターンはこんな感じ。
分岐の中にthrowがあって、最適化の結果throwにあたるコードが関数のエピローグコードの
後ろに移動してしまった場合にたまに発生。

bool flag = true;
void f()
{ if(flag) throw 1; }
int main()
{
try{ f(); }catch(...){ cout << "ok" << endl; }
}

451 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 08:36:05 ]
4.5.0 ということは ports ? 野良ビルド?

452 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 10:26:36 ]
うん

453 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 10:40:31 ]
結局どっちなんだよと思ったのは私だけじゃないはず

454 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 11:36:41 ]
結局どっちなんだよ!

455 名前:デフォルトの名無しさん [2010/06/30(水) 16:40:24 ]
>>451
ftp.riken.go.jp/の.tbzと野良の両方で再現した。

ただ、OSXからのFreeBSDクロスコンパイル→転送して実行、ではAdaのほうでも再現したのに、
FreeBSD上のセルフコンパイルでは野良ではAdaでは再現しない(C++では再現、gcjはビルドできなかった……)と
結構ばらつく。よくわからん。



456 名前:デフォルトの名無しさん [2010/07/02(金) 17:51:11 ]
うーむ






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

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

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