[表示 : 全て 最新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

159 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 12:23:37 ]
記憶だと、gcc 4.4でiccの最適化を越えてる

160 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 12:59:09 ]
それはないから

161 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 13:05:18 ]
GCCをアーキテクチャ決め打ちのICCと比較しようとする時点で
頭の悪さが丸出しw

162 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 14:10:45 ]
multimedia.cx/eggs/last-performance-smackdown-for-awhile/
multimedia.cx/eggs/wp-content/uploads/2009/05/64-bit-performance-2009-05-04.png

163 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 14:35:52 ]
やるじゃんgcc

164 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 20:50:27 ]
>>162
64Bitだと偉い差だ。そうえいばx264なんかもビルドしてバイナリ配ってる人なんか32Bitは
gcc3.4.6なんだけど64Bitはgcc4.4を使ってる。

ちょっとgcc4.4.2を落として来るわw ffmpeg自己ビルドなのでw

165 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 21:06:59 ]
gcc4.4系統はバグもあるし
ライセンス問題もあるから使わないほうがいいぞ

166 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 21:10:40 ]
まあ! なんて素敵なFUDでしょう!!

167 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 21:15:05 ]
とりあえずbinutilの2.20が10/16に新しいの出てたんでまず更新。

でgcc4.4.2を気合のシステム上書き(現状4.3.4)の--prefix=/usrインスコでコンパイルスタートして
5分くらい経ってやっぱダメだろって思ってCTL+C押して--prefix=/opt/gcc-4.3 --program-suffix=-4.3
にしたヘタレです・・・

今コンパイル中、CPUフェノムなんで--with-tune-32=k8 --with-tune-64=amdfam10こんなのもつけてみました。



168 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 21:16:54 ]
おおお、焦ったww
--prefix=/opt/gcc-4.4 --program-suffix=-4.4ですねw
変なとこからコピペしたから4.3になってた。本当に4.3のままconfigしちゃったかと思って自分でビビったわ

169 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 21:28:09 ]
>>164
グラフの目盛りよく見ろ。そのうえでえらい差って感じたんならいいけどさ。

170 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 21:30:37 ]
>>169
ああああああああああああああああああああああああぁぁぁぁ

171 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 21:52:36 ]
とか言いながら終わった、しかしグラフには騙された・・・
$ /opt/gcc-4.4/bin/gcc-4.4 -v
Using built-in specs.
Target: x86_64-linux-gnu
コンフィグオプション: ../configure --prefix=/opt/gcc-4.4 --program-suffix=-4.4 --enable-shared --with-system-zlib
--without-included-gettext --enable-threads=posix --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug
--enable-objc-gc --enable-mpfr --with-gmp --with-tune-32=k8 --with-tune-64=amdfam10
--with-multilib-list=x86_64-linux-gnu,i386-linux-gnu --build=x86_64-linux-gnu --host=x86_64-linux-gnu
スレッドモデル: posix
gcc version 4.4.2 (GCC)

172 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 20:19:45 ]
こんな目盛りなら騙して欲しいよな
i.msdn.microsoft.com/Aa290049.vcia64alignment_fig2(ja-jp).gif

173 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 21:57:31 ]
ゲーツェーツェーにはCPP CXX g++ などなど
C/C++フンパイラだけいろいろあるけど


何がどう違うの。





174 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 23:20:15 ]
CPP CXXはシェルの変数じゃなかろうか

175 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 23:28:55 ]
cpp はプリプロセッサだろ。 常識的に考えて。
C++ のコンパイラやコンパイラドライバではない。

システムによってはコマンドに + の文字が使えないことがあるので、
便宜上用意されているのが cxx 。
たぶん、中身は一緒だと思う。

176 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 00:23:33 ]
cc、cxx、c++辺りは、GCCでないシステム標準のコンパイラのことがある。
LinuxなどGCCを標準のコンパイラとして採用していると、GCCへのシンボリックリンクになっているけど。

177 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 03:47:24 ]
>>159
よぉ、AMD使い!




178 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 00:13:00 ]
AMDでgccに負けるほどiccってダメなのか

179 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 01:14:48 ]
商用コードは品質が悪いから仕方ない

180 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 08:35:20 ]
最近のGCCは結構すごいよん
参考 www.linux-kongress.org/2009/slides/compiler_survey_felix_von_leitner.pdf

181 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 11:15:09 ]
それ読んでgcc 4.4.3で試したけどその通りに最適化してくれないことがままあって困るw

182 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 19:54:02 ]
パーパプー パーパプー パーパプーパーパプーパーパプー
ピーロピーローリーローリロ
ででーででーででー
パスーン

ピンポロピンポロピンポロピロピロプー



未だに自作のプログラムでダウボーイを作ってやろうと思っているのにできねえ俺は
もうだめだ

183 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 12:27:58 ]
gcc(ver4.3.2) のコンパイルオプションで、
-lXm -lXt -lSM -lICE -lXpm -lXext -lX11 -lm
とか必要なライブラリ全てを記述しなくても
-lXm
だけでOKでした。
何か指定したライブラリ(この場合 /usr/lib/libXm.so.2.0.1) の依存ライブラリを調べてリンクしてくれるようですが、これって昔からそうだったのでしょうか?
10年近く前は、一つでも指定を忘れると駄目だったので、よく知らないライブラリも呪文のように指定していたような記憶があるのですが。

184 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 19:08:48 ]
>>183
ライブラリが収まってるディレクトリに libXm.la ってファイルがないか?
それ読んでみ

185 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 01:34:35 ]
gcc 単体で libtool ライブラリなんか見るの?

186 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 20:54:52 ]
ビルドした時刻をバイナリに埋め込みたいんだけど
なんかいい方法ある?
最後にリンクするときに日時がわかるものを埋め込みたい

187 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 21:22:47 ]
コンパイル日時じゃなくてリンク日時?
前者は__DATE__とか__TIME__とかあるけど



188 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 21:36:38 ]
>>187
Makefile で、リンクの直前にそれかけるしか無いんじゃないかな。


189 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 21:56:37 ]
__DATE__,__TIME__を初期値にしたグローバル変数だけの
オブジェクトをリンクごとに生成して埋め込めば?

190 名前:189 mailto:sage [2009/12/01(火) 21:58:39 ]
ごめん、>187と同じだった。

191 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 13:41:22 ]
質問!
Linux@i386(IA-32)のgccでC言語とアセンブラを組み合わせて使っています。
ebx, esi, ediは通常ならcallee-saveですが、
アセンブラ側の都合でcaller-saveとして扱わなければならない箇所があります。
今はmanを参考に-fcall-used-〜オプションを付け
プログラム全体でcaller-saveとして扱っています。
関数ごとにcallee-save, caller-saveを切り替えて速度を稼ぐことは可能ですか?
可能なら方法を教えてください。

192 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 14:57:42 ]
>>191
特殊な ABI を要求する部分だけ別モジュールにして、
そこだけ CFLAGS 切り替えればいいんじゃない?

昔組み込みでそんな感じにしてたけど。

193 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 15:19:44 ]
ああ、でも callee-save 環境から caller-save 環境を
どう呼び出かってのがあるね。どうやってたかな…。

194 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 15:22:57 ]
ttp://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Function-Attributes.html#Function-Attributes
この中になければないと思う

195 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 15:28:05 ]
ようわからんけど、attributeで指定するとか?

196 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 15:31:40 ]
すまん、ちょっとよく覚えてない。多分 hook を挟んで
どうにかしていたと思う。

ただ 個別に -fcall-used-REG を保守するのも段々面倒
になってきて、最後は「えいや」で setjmp ばりに保存
する hook にしちゃった気がする。

197 名前:191 mailto:sage [2009/12/06(日) 16:52:18 ]
>>192-196
ありがとうございます。
まず__attribute__((returns_twice))を調べてみます。



198 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 15:41:53 ]
教えてください

gccでjavaの練習をやろうと思うのですが、
gcc -vで
--enable-languagesにjavaが含まれていれば大丈夫でしょうか
gcj -vだとcommand not foundになります

199 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 16:54:23 ]
どうしても gcj を使わなければならないという理由がないのなら
Sun の JDK をインストールして勉強しれ。
# command not found に対処できない人が使えるようなものじゃないから…

200 名前:198 mailto:sage [2010/01/08(金) 19:20:48 ]
レストン

もう少しgccを触って駄目だったらJDK逝きます

201 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 09:12:51 ]
とっととJDKに逝け

202 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 07:23:45 ]
naked属性な値を返す関数でreturnがないって警告が出るんだけど
この警告だけ消す方法ないですか?
戻り値はインラインアセンブラ内で書いてる

203 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 10:03:10 ]
戻り値をインラインアセンブラで
int
hoge(void)
{
int ret;
asm ("hoge":"=r"(ret));
return ret;
}
みたいに書いてみたら

204 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 19:10:06 ]
gotoでぶっ飛ぶのかもよ。

205 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 19:16:31 ]
>>203
やっぱそれしかないですか
その方法だと余計なレジスタが増えるのがどうも
ありがとうございました

206 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 19:25:26 ]
余計なレジスタは増えんでしょ
-fomit-frame-pointer付きでコンパイルしてみたら

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
使い分けりゃいいじゃん。






[ 続きを読む ] / [ 携帯版 ]

前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