- 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
- 101 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 09:14:46 ]
- GCC クロスコンパイル でぐぐれ
- 102 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 20:19:01 ]
- 使ってるレンタル鯖が C/C++ で書いた CGI を使えるって書いてあるんだけど、
シェルは解放してないからクロスコンパイル環境を作って対応したことはある。 (鯖は無料だからその程度の手間は仕方ないんだが。) 最近の GCC ならそんなに難しいことではない。 でも、ライブラリ類はコンパイル済みのをどこかからもってきた方がいいぞ。
- 103 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 23:55:37 ]
- g++ には VC のプリコンパイル済ヘッダみたいな機能はないんですかいの?
boost 使ったソースをコンパイルしようとしたら遅すぎてやっとれんです。
- 104 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 00:24:16 ]
- gccにもpchぐらいあるわい
- 105 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 00:25:09 ]
- あ、ごめん、boostは知らんです…
ccacheで我慢するくらいしか思いつきません
- 106 名前:103 mailto:sage [2009/09/13(日) 00:38:06 ]
- おお、あるのね。どもっす。
とりあえずあとはぐぐってみます。
- 107 名前:デフォルトの名無しさん [2009/09/26(土) 23:08:03 ]
- すみません質問なのですが,最近vc++からgccに乗り換えたのですが
vc++にある wmain( int argc, wchar_t *argv[ ]) みたいに引数をwchar_tにすることはできるでしょうか?
- 108 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 23:13:13 ]
- エントリポイントwmainは非標準なので、gccにはない
main関数内でargvをワイド文字列の配列に変換してwmainに渡すという手が有る
- 109 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 23:15:14 ]
- ありがとうございます,それでやってみます.
- 110 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 18:52:06 ]
- 質問です。
コンパイルオプションとして-Werrorをつけたいのですが、 実装上どうしても、取り除くことができない警告があります。 この警告だけはWerrorの対象からはずすということができますでしょうか? もしできるならその方法を教えてください。
- 111 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 19:29:47 ]
- gccのソースをいじる
- 112 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 20:24:23 ]
- >>110
外したい警告がどういう警告なのか書けよ。
- 113 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 22:47:25 ]
- -Whogeで有功になる警告なら-Wno-hogeで無効に出来るだろうし、
gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html なんてのもある
- 114 名前:110 mailto:sage [2009/10/01(木) 23:00:07 ]
- >>111-113
返答ありがとうございます。 Werrorの非対象にしたいのは-Wをつけた際に出力される、longjmp関連の警告です。 -Wは複数の機能を持つオプションなので、-W自体を無効化はできない状況です。
- 115 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 23:21:56 ]
- gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
にある通り、-Wは-Wextraの別名で、含まれる警告オプションのうち longjmpが関連しそうなのは-Wclobberedと-Wuninitializedだから、 -Wno-clobbered -Wno-uninitializedをつけてみたらどうか
- 116 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 23:23:49 ]
- -Wno-error=uninitializedとかでも良いかもな
- 117 名前:110 mailto:sage [2009/10/01(木) 23:34:35 ]
- >>115-116
ありがとうございます! 今は試せる環境がないので明日挑戦してみます。
- 118 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 00:59:23 ]
- -fltoが入る前に-combine試してみたけど、
4.4だと引数が多すぎって言われてコンパイル出来ない事があるな 4.5になると引数の最大値が大きくなったりするんだろうか… というかしてくれないと困る。 -combine -fwhole-program -ftoでビルドしたいんじゃー
- 119 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 05:13:28 ]
- 4.4.2
- 120 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 09:29:17 ]
- >>118
> 4.4だと引数が多すぎって言われてコンパイル出来ない事があるな これってどういうメッセージ?
- 121 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 11:16:12 ]
- あーもうconstructors_destructor_fn_imps.hpで一晩潰しちゃったよ><あほか
- 122 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 22:28:44 ]
- >>120
cc1: error: too many filenames given. Type cc1 --help for usage
- 123 名前:デフォルトの名無しさん mailto:sage [2009/10/17(土) 04:15:11 ]
- binutils 2.20
- 124 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 17:31:01 ]
- HelloWorldを、gcc・g++を使用してWinXP・Ubuntuでコンパイルしてみた。
---------------------------- #include <stdio.h> int main(int argc, char** argv) { printf("HelloWorld!"); return (0); } ----------------------------- WinXPは正常に実行できたけど、Ubuntuのgccがうまくいかない。 /tmp/ccaeafnN.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' collect2: ld はステータス 1 で終了しました バージョンは4.3.3。 上記のようにリンクでエラーがでる。 コンパイラはもともと入ってたやつだから、導入に失敗したわけではなさそうだけど。 オプションも出力先以外は指定してないし。 原因が分かるエスパーな方はいませんか?
- 125 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 17:40:09 ]
- #include <stdio.h>
を #include <cstdio> に printf を std::printf に替えてみたらどうなる?
- 126 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 17:46:22 ]
- >>124
g++標準のライブラリがリンクされてないように見える。 g++ hello.cc ではなく gcc hello.cc でコンパイルしてない?
- 127 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 18:06:18 ]
- この手の「普通にやったらエラーが出るはずが無い」のに
gccを使っていてリンクエラーが出る場合、大抵は>>126だよな。 普通にg++とするか、あるいは-lstdc++とかでもなんとかなるもんだけど 意外にそこでひっかかる人も多いよね。 まあ>>124の原因は知らないけど。
- 128 名前:124 mailto:sage [2009/10/18(日) 18:44:08 ]
- 拡張子を.cにしたらいけました。
ありがとう。 それにしてもアホすぎる……。 TDM/Mingwだと「gcc hello.cpp」は通るけど「g++ hello.cpp」がリンクエラー。 \(^o^)/
- 129 名前:デフォルトの名無しさん [2009/10/18(日) 19:27:04 ]
- -lstdc++
か?
- 130 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 19:32:55 ]
- gccの#defineマクロの記述で
通常の関数のreturnに相当する記述ってどうやって書けばいいのでしょうか?
- 131 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 19:34:07 ]
- それがわからないようならマクロなぞ使うな。あぶなっかしすぎる。
- 132 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 19:44:13 ]
- >>131
まさか知らないのですか? バカなんですか?
- 133 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 19:56:48 ]
- gccの話題じゃないな
- 134 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 20:16:45 ]
- >130
cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/gccextend.html ここでも読んだらいいよ もっとも僕は、-pedantic-errorsを付けてコンパイルしているから無縁だけど
- 135 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 02:34:19 ]
- >>128
要するに、GCCでは拡張子で動作が変わるってことか。
- 136 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 06:36:28 ]
- C Compilerでなくて Compiler Collectionだからね。
拡張子を識別して使う言語を選択する。
- 137 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 08:03:15 ]
- 拡張子で言語は選んでくれるのにライブラリは選んでくれないという気
の利かなさ。
- 138 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 08:12:59 ]
- extern "C" {
とかあるしね。言語と実行環境を分けているんだと思う。
- 139 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 22:46:09 ]
- だってオブジェクトはどちらも.oで、そこからリンクする時に
必要に成るライブラリがどちらかなんて ld には分からない。 増改築を繰り返した田舎の温泉旅館みたいなc++は捨てて、 ISO C(c99)でええやん。
- 140 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 22:49:08 ]
- c99のほうが田舎の温泉旅館みたいなんだが……
- 141 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 18:22:28 ]
- C99って使ってる現場あるのか。
- 142 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 21:12:36 ]
- 全機能ばりばり使ってます、という所は少ないと思うが、
//コメントとか、変数定義の混在とかは割と使ってるんじゃないか?
- 143 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 21:37:37 ]
- 変数は最初に必要になった箇所で宣言するようにしたらかなり見易い。
変数はなるべく使い棄てにしたほうがコンパイラもフロー解析しやすいらしいし。
- 144 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 22:44:44 ]
- 数値計算のパッケージ書いてるから、
<fenv.h>がないとどうしようもない。
- 145 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 01:03:11 ]
- 使い捨てと言うか、スコープを狭くすると、フロー解析もやり易いし
レジスタ割り付けも楽。最適化もやりやすく成る。
- 146 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 11:44:01 ]
- 俺の周りではC99という言葉すら通じん…
- 147 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 11:54:24 ]
- >>144
Fortran使えよ
- 148 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 00:51:59 ]
- レジスタは一括宣言のほうが楽なんじゃね?
だってベースポインタ一緒なんだぜ?
- 149 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 02:41:36 ]
- Javaじゃねーんだから汎用レジスタに乗せて使い捨てることもあるだろ
- 150 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 02:50:57 ]
- いかにメモリアクセスを少なくするかが鍵みたいだよ。
- 151 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 03:03:23 ]
- >>149
そういう最適化はどこで宣言しようと同じだろ
- 152 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 08:52:09 ]
- >>148>>149
40年くらい前の最適化の話みたいですね。
- 153 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:41:30 ]
- 変数を宣言する=メモリ上に領域を確保する
変数に代入する=メモリ上に書き込む こんな基本も分かってないようじゃ駄目だろ。 でも、キャッシュから追い出される前に破棄できるデータ領域は重要だよな。 1ms以下で終わる関数は終了までキャッシュメモリから追い出されない可能性あると思うし、 使い終わったらすぐ破棄すれば、その分多くグローバル/スタティックデータをキャッシュで保持できるようになる。 ところで、CPUロジック的には破棄したデータ領域の変更内容ってメインメモリに反映されるんだっけ? キャッシュが破棄されるのって内容が同一のときだけだろ? じゃあいくら破棄しても中身書き換えた以上はメインメモリに書き込むんじゃね? メインメモリへの書き込みを減らすには、できるだけ同じデータ領域を使いまわすのがいいんじゃないかな。 ヒープ領域とかなら繰り返し使われるよね。 でもJavaの場合で最小値が2MBだって。 優先的に実行されるアプリじゃない限り使い回しは難しいね。 確実に使いまわせるのはやっぱりスタック領域だよね。 直近の4kByteが必ず1次キャッシュに入る。 スタックに確保するには、引数渡ししたデータと普通に宣言した変数だよね。 少々のデータなら参照渡しするより値渡ししたほうがキャッシュ効率がいい事になる。 わけないか。 使った分だけ古いのがキャッシュから追い出されるんだ。 だから、ループで散らばったデータを使うくらいなら、ループだけを関数宣言してでもデータを一箇所に集めることが重要なのかな。 あ、そこで書き込みしないデータをループの直前でフォーカス作って変数宣言してコピーしたらいいわけだ。 結局おんなじか。 何度もスタックをキャッシュから追い出すくらいなら普通にヒープにまとめて領域取ったほうがいいな。 変更しなければ書き戻されはしないんだし。 結局小さいデータはオート変数ででっかいデータはアロケート・・ごく普通だな。
- 154 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:48:42 ]
- コンパイラの最適化舐めんなよ
- 155 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 09:57:23 ]
- gccの最適化は糞過ぎる
ICCを少しは見習えつーんだよ
- 156 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 10:59:38 ]
- >>153
35年くらい前の知識で停まってるね。 register宣言が出てきた頃かな?
- 157 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 10:59:52 ]
- ごめんなさい。。。
- 158 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 11:53:01 ]
- ICCがgccより明かに優れているところなんてループ展開とかベクトル化とかだけだろ
スタックをどういう風に使うかなんて部分では大差ないよ
- 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に逝け
|

|