- 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
- 207 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 20:28:58 ]
- register int ret asm(レジスタ);
にしたら指定のレジスタ使ってくれました gccのバージョンで変わったりしないか不安ですけど
- 208 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 21:01:15 ]
- ほうほう
- 209 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 07:17:49 ]
- 戻り値に使われるレジスタ以外を
asmで破壊されるレジスタに指定するという方法もあるのでは
- 210 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 09:52:26 ]
- >>207
その仕様は今まで変わったことないから大丈夫でないかとは思うが。 >>209 clobberしすぎるとcc1が文句言ってくるので程々にしませう。 ということで妙なコードを書くときは、その関数を __asm__( "func:\n\t" : "ret"); みたいに書かないとダメだと思う。
- 211 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 11:25:56 ]
- peephole2って凄いね
- 212 名前:デフォルトの名無しさん [2010/01/19(火) 22:22:38 ]
- Linux x86_64 な環境において、gcc version 4.3.4 (Target: x86_64-pc-linux-gnu) な GCC を使って
下記のような XXX.so の中の関数を dlopen、dlsym を使ってよびだせるようにコンパイル すればどうすればいいのでしょうか? XXX.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped 調べて、-m32 -ldl をオプションに指定するようにしてみましたが segmentation fault になってしまいます。 アドバイスいただけないでしょうか?
- 213 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 22:42:40 ]
- 基本的に無理
- 214 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 01:30:21 ]
- どうしてもということになれば、nspluginwrapperみたいな物を
作って何とかするしか。
- 215 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 10:29:14 ]
- gcc -m32 hoge.c でいいんじゃないか?
- 216 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 06:11:12 ]
- 4.4.3
- 217 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 12:28:56 ]
- GCC開発者らがGoogleの「Go言語」をサポートする方針を発表
sourceforge.jp/magazine/10/01/29/0250228
- 218 名前:デフォルトの名無しさん [2010/02/02(火) 19:20:20 ]
- >>217
ブランチ、既にできてるよ。> gccgo
- 219 名前:デフォルトの名無しさん [2010/02/02(火) 19:21:42 ]
- か
- 220 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 20:11:27 ]
- goってgccに入れるほどのもんなの?
- 221 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 20:12:43 ]
- 政治的な圧力はあったかもね。
- 222 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 20:22:23 ]
- 単にぐぐるがメンテナを出しただけだろ?
- 223 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 23:11:44 ]
- llvmじゃなくてgcc、というのが面白い。
ライセンス的にllvmの方が好まれると思ったんだが
- 224 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 23:26:35 ]
- adaとか使ってる人いるの?
金さえ出せばなんでも入れてもらえるんじゃない?
- 225 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 00:01:39 ]
- Google勤務のgccコミッターが何人もいたはず。
- 226 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 00:12:26 ]
- >>223
llvmはgccのbackendに出来るし。
- 227 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 00:54:01 ]
- >>224
カネじゃダメだろ 人とコードを出さないと
- 228 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 00:55:22 ]
- 逆に言えば、人とコードの切れ目が縁の切れ目
- 229 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 01:10:11 ]
- C#とかは、金と人は出せるが、コードが出せないMSだからか。納得。
- 230 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 01:23:58 ]
- MS は自前で開発環境用意して囲い込みしたいからだろ。
と、マジレス
- 231 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 23:09:07 ]
- arm用gcc遅いなんとかしろ
- 232 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 10:16:35 ]
- arm社に文句言え
- 233 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 10:45:29 ]
- ARM社に言ってもしょうがないだろ
IARとか、RVDSはもっと速いのかな?
- 234 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 15:55:30 ]
- なぜgccにはstricmpが無いんだ?アホなのか?
- 235 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 15:57:47 ]
- コンパイラの問題じゃないだろ
- 236 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 19:55:21 ]
- strcasecmpがあるから
- 237 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 20:15:07 ]
- strcmpiじゃなかったっけ
まあ今となっては良い思い出
- 238 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:40:15 ]
- >>234,236,237
コンパイラとライブラリは切れば切れる関係。 例えば同じ Windows 上の gcc でも、Cygwin と MinGW で使える関数が 違うでしょ。
- 239 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:17:07 ]
- ところでnewlibって何なの?
こういうネーミングはやめてほしいんだが このセンスはさすがに引く 古くなったらどうすんだよ
- 240 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 11:09:27 ]
- 最近は年末にリリースされてるから
- 241 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 17:00:11 ]
- それならclibだと。
- 242 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 17:56:29 ]
- clubt.jp/product/92651_3621255.html
- 243 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 02:55:25 ]
- >>234
STRing Ignore Compareってw センスの悪い命名…
- 244 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:11:16 ]
- i は Ignore なのか?
case Insensitive の i だと思った 悪い命名なのは疑いようがないけど
- 245 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 23:46:25 ]
- sprintfおせーぞ
gccだけおせーんじゃ なんとかしろ
- 246 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 23:53:27 ]
- 文句言う前に、自分で早いsprintfを書けばいいのに
- 247 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 00:29:39 ]
- std::sprintfとかsprintfと紛らわしい
関数作るんじゃねーよ
- 248 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 03:13:31 ]
- >>231=>>234=>>245=>>247だとすると、
何のプラットフォームでどんなものを作ってるのか、大体予想つくな
- 249 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 21:20:29 ]
- >>248
こういう発言ってついったの方が楽しいのにね
- 250 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 07:09:00 ]
- 笑われてるだけでしょ
- 251 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 14:34:01 ]
- >>250
笑うなよ
- 252 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 18:55:54 ]
- gccスレでぐっちてる時点で...
- 253 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 16:26:44 ]
- >233
ARM固有の最適化部分のメインコミッターのほとんどはARM社からお金もらっている人々だよ 最適化で、いつまでたってもARM純正に勝てないのはARM社がコントロールしてるから ARMのプラットホーム使わないといけない人のほとんどは、gccの中身なんて弄ってる余裕が無いよ ARMを使ったPCが普及すれば、変わると思うけど
- 254 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 22:12:55 ]
- 昔、玄箱スレでgccはARMよりPPCのが効率よいコード吐くって話があったけど、
状況変わらず? ARMの命令セットがやや特殊なせいなのかな
- 255 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 22:21:04 ]
- >>254
自社のコンパイラより効率的なバイナリを 生成するコンパイラは、排除するって明言しているから どうにもならないよ。
- 256 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 07:57:43 ]
- gccの文字列処理おせーんだよ
なんでgcc3.4でSSE4.2に対応してねーんだよバカ
- 257 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 08:01:10 ]
- おそい書き方したお前が悪い
- 258 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 12:45:50 ]
- >>256
gcc4使えばいいじゃん。
- 259 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 02:57:51 ]
- pc1:
2.95.3 3.3.6 pc2: 4.3.4 4.4.3 二つずつ入れてて計4つ >>256 使い分けりゃいいじゃん。
- 260 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 14:06:45 ]
- gccの文字列処理ってどこを指すの?
- 261 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 16:41:37 ]
- さあ、ビルトイン関数のことかも
- 262 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 10:12:29 ]
- >>260
printfの警告とか。
- 263 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 13:27:36 ]
- ストリーミング命令使ったstr系関数の変態最適化ってやってるんだっけ
- 264 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:17:34 ]
- gccは
char buf[256] = {0};って記述しても 0に初期化されることはない 腐ってやがる
- 265 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:31:09 ]
- >264
バージョンはいくつですか
- 266 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 03:05:21 ]
- >>264 んなこたーない
- 267 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 04:30:31 ]
- 起動時にbssをクリアしてないとか
- 268 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:19:47 ]
- >>264
いつの時代のgcc?
- 269 名前:デフォルトの名無しさん [2010/03/10(水) 18:20:46 ]
- char buf[256] = {0};
で、後ろの255バイトも自動的にゼロクリアされるのは Cの仕様?それともgccのやさしさ?
- 270 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:20:51 ]
- >>269
Cの仕様
- 271 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:41:05 ]
- >>269
{1}のケースもどうなるか理解しといた方がいいよ。 > the remainder of the aggregate shall be initialized implicitly > the same as objects that have static storage duration.
- 272 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 05:07:16 ]
- binutils 2.20.1
- 273 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 07:47:11 ]
- binutils-2.16.1
- 274 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:40:41 ]
- mallocだと0フィルされる保証はない?
- 275 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:53:06 ]
- 普通、確保されるだけじゃないの?
callocなら0フィルされると思うけど
- 276 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:53:09 ]
- 今時gcc使ってるやつは莫迦
- 277 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:21:50 ]
- >276
は、何を使ってるのよ
- 278 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:00:29 ]
- sourceforge.jp/projects/freshmeat_ack/
かな?
- 279 名前:デフォルトの名無しさん [2010/03/15(月) 00:17:30 ]
- codesourceryのg++ってdo_global_ctorsとかstartup関連がないみたいなんですけど、
自分で実装するとき、.init_arrのグローバルコンストラクタを呼び出す以外にやることありますかね? あと、libc(newlib)の初期化とかもやらないといけなさそうですが、方法がわからない。 codesourceryでstl使ったプログラムかけた人いたら教えてください。
- 280 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 10:56:04 ]
- >>274
無い。 セキュリティホールになるってんでゼロ梅してた時期もあったけど。
- 281 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 11:08:15 ]
- セキュリティホールってより、暴走の原因とか
- 282 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 11:37:41 ]
- >>281
それはない。 それはただのバグだ。
- 283 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 18:31:56 ]
- 不定値前提で安定したプログラム作れないほうがよっぽど
- 284 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 18:48:52 ]
- 0クリアするくらいならdeadbeefで埋めたほうがまし
- 285 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:00:57 ]
- 新規割り当てメモリを初期化しない場合のセキュリティーホールというのは
上位権限のプロセスが開放したメモリにある情報を読めるかもしれないとい問題
- 286 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:01:25 ]
- フフフフフフフフフフフフフフフ
- 287 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:06:26 ]
- oppai
- 288 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:09:27 ]
- >>285
そりゃライブラリ側の仕事でなくOSの仕事だろう
- 289 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:14:24 ]
- malloc(3)の話だから、OSの仕事も含むのは普通。
- 290 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:23:13 ]
- char buf[256] = {0};
ってやるとgccだとmemset関数を呼び出す 糞実装になってるw アホだろw
- 291 名前:デフォルトの名無しさん [2010/03/17(水) 00:24:54 ]
- そこでmemsetを呼び出さない処理系を教えてくれ
- 292 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:29:33 ]
- gcc糞だからなぁ
- 293 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 01:22:05 ]
- >>291
gcc-4.3は呼び出さない
- 294 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 01:33:32 ]
- -minline-all-stringopsって使っていいの?
- 295 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 01:51:04 ]
- >>290
どうしてほしいの?rep stosdにでもしてほしいとか?
- 296 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 03:38:41 ]
- >>289
含まねーよ。物事を区別して考えられないバカっているんだねえ。
- 297 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 07:31:27 ]
- >>284
いい悪いってか、用途によるでしょ。 バイナリはでかくなるよ
- 298 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 07:33:10 ]
- ちょっとタンマ
>>297の答えに自信ない
- 299 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:11:14 ]
- 1kbも増えんだろ
- 300 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:57:20 ]
- >>296
あるライブラリ関数について、 C標準では定義されてないことを、 OSの方で定義していることは良くあること。 たとえばスレッドセーフかどうか。
- 301 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 09:48:55 ]
- それはそのライブラリ関数を使う側にとっての関心事項。
>>285のは他プロセスないしカーネルにとっての関心事項。 別の話だね。
- 302 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 10:28:13 ]
- 他プロセスがmallocおよびその下請システムコールを呼ぶ場合の話でしょ?
- 303 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 07:04:48 ]
- >>300
OSじゃなく処理系だろ
- 304 名前:デフォルトの名無しさん [2010/03/20(土) 09:55:19 ]
- CPU Frequencyをリアルタイムで取得するgoodな方法を教えてくれ
- 305 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 10:10:30 ]
- RDTSC
- 306 名前:デフォルトの名無しさん [2010/03/23(火) 22:46:45 ]
- プリプロセッサの処理中にメッセージを表示したいのですが、
gccでも可能でしょうか? Visual C++ では #pragma message("msg") などと書けばできたのですが。
- 307 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 00:12:02 ]
- >>306
gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas によると、 #pragma message "Compiling " __FILE__ "..." とか出来るっぽいぜ
|

|