02/05/12 22:46
IA-64のRedHat7.1の上で、gcc2.96も、gcc-3.0もソースからでは
全然コンパイルできないよ。変だね。
117:デフォルトの名無しさん
02/05/12 23:29
どんな手順でコンパイルしてんの?
118:名無しさん@そうだ選挙にいこう
02/05/12 23:48
>>116
IA-64 (・∀・)スゴイ
119:名無しさん@お腹いっぱい。
02/05/12 23:56
>>116
その石ホスィ…
120:名無しさん@お腹いっぱい。
02/05/13 14:46
URLリンク(gcc.gnu.org)
もうちょい。今週中には出るか?
121:あぼーん
あぼーん
あぼーん
122:名無しさん@お腹いっぱい。
02/05/14 01:03
>>120
URLリンク(www.gnu.org)
とかを見ると、GCCの開発って一昔前に比べると、かなり計画的になっているね。
びっくりした。
それだけ、GCCの重要性が増したという事なんだろうけど。
123:名無しさん@お腹いっぱい。
02/05/14 01:06
FreeBSD5.0は3.1だそうですね。
124:名無しさん@お腹いっぱい。
02/05/14 18:50
>>123
というより、GCC3.1の正式リリースを待たずに
CVSに突っ込むという無茶をやってるからなあ…
125:名無しさん@お腹いっぱい。
02/05/14 18:59
>125 gccのFreeBSD対応をもっとまともにする、より良い方法があったら教えてくだちい
126:名無しさん@お腹いっぱい。
02/05/14 19:43
>>125
FreeBSD対応?
127:名無しさん@お腹いっぱい。
02/05/14 22:48
>>125
もっとまとも?
もっと、強烈にオプティマイズして欲しいの?
128:名無しさん@お腹いっぱい。
02/05/14 23:20
125は124を指して「gccのsnapshotをFreeBSD-CURRENTに入れるのが気にくわないなら
積極的に人柱を集める他の方法を教えれ」と言っているのでした。
実際そうでもしないとLinux以外で顕在化するバグはみつかりにくいし、FreeBSDの
i386以外のarchはgcc3が必須なので、運命共同体というかなんというか。
129:名無しさん@お腹いっぱい。
02/05/14 23:22
>>124
無茶ではないと思う。CURRENTなんだし、さっさと使ってフィードバック
した方がリリースが充実していいんでは。obrienのおかげでローカル
パッチもだいぶ不要になったしね。(geraldもか)
ようやく、従来から 3.0.x を使っていたia64, sparc64, powerpcと
i386, alphaの足並みがそろっていい感じ。
GCC 3.1 は 2.95.x に比べて6割遅いというのは(゚д゚)マズーだが。。
130:名無しさん@お腹いっぱい
02/05/14 23:32
>>129
>GCC 3.1 は 2.95.x に比べて6割遅いというのは(゚д゚)マズーだが。。
遅いのは実行速度? コンパイル速度?
131:名無しさん@お腹いっぱい。
02/05/15 00:09
コンパイル速度。make buildworldで計測してみよー
132:名無しさん@お腹いっぱい。
02/05/15 00:17
>>130
make world の時間だからコンパイル速度だと思う.
133:名無しさん@お腹いっぱい。
02/05/15 14:29
最適化なんとかならんかな。
VCにもIntelCにもベンチマークボロ負けだよ。
134:名無しさん@お腹いっぱい。
02/05/15 14:37
あなたがなんとかして!
135:名無しさん@お腹いっぱい。
02/05/15 15:41
>>133
相手は IA32 専門コンパイラだからなぁ。
136:sage
02/05/15 18:37
3.1 kita
137:名無しさん@お腹いっぱい。
02/05/15 18:52
まじすか?
138:名無しさん@お腹いっぱい。
02/05/15 19:30
gcc-3.1 make bootstrap ちう。。。。
stage1 がなかなか終らない。。。。
139:名無しさん@お腹いっぱい。
02/05/15 20:45
まだミラーに行き渡ってないけど、もう本家にはあるね。
リリースアナウンスがある前に /.jp が記事にするかどうか(苦笑)
140:名無しさん@お腹いっぱい。
02/05/15 23:57
いつ頃、Linuxが3系のgcc使うようになるのかな。
141:名無しさん@お腹いっぱい。
02/05/16 00:13
次のRedHatで乗れば普及しそう。
TurboやKondaraは次バージョンで乗せるかなー
142:名無しさん@お腹いっぱい。
02/05/16 00:26
>>141
いや、載せるじゃなくてカーネルっていう意味で・・・
143:名無しさん@お腹いっぱい。
02/05/16 00:40
gcc-3.1キタ━━━(゚∀゚)━━━!!!!
・・・長いね、これ・・・
144:名無しさん@お腹いっぱい。
02/05/16 01:12
core.ring.gr.jp 早っ。
iij はまだ、aist はディレクトリがあるだけ…
実況してどーする。
145:名無しさん@お腹いっぱい。
02/05/16 01:16
>>142
Linuxカーネルは、gcc-2.95系が出た後も、
長らくegcs(2.91.??)を推奨してたからね。
結構時間がかかると予想してみる。
146:名無しさん@お腹いっぱい。
02/05/16 01:20
やっと、make bootstrap 終ったよ。pentium III 700MHz で1時間20分かかった。 これから、Linux kernel のコンパイルやる。
147:
02/05/16 09:50
サイズでかっ。。
148:名無しさん@お腹いっぱい。
02/05/16 12:35
メインページが更新されました。一応ご連絡。
149:名無しさん@お腹いっぱい。
02/05/16 18:35
gcc3.1のg++で#include<fstream>するとbasic_file.hの中でエラーに
なるの俺だけ? RedHat7.2(gcc2.96)でconfigure&makeしたんだけど…
150:名無しさん@お腹いっぱい。
02/05/16 18:50
URLリンク(www23.tok2.com)
2.4系のLinuxはgcc3.0でコンパイルできんの?
いま手元にgcc3ないから聞いちゃった。ゴメソ
151:名無しさん@お腹いっぱい。
02/05/16 18:54
>150
gcc3を/usr/binには入れないよねフツー。
152:名無しさん@お腹いっぱい。
02/05/16 19:00
>>151
Debianを家じゃ使ってるけどたしか/usr/binの下だったと思ったよ。
Debianはふつうじゃないのかな?他のは知らないから良く分からんけど。
153:名無しさん@お腹いっぱい。
02/05/16 19:12
>>150
$ cat /proc/version
Linux version 2.4.18 (root@pathos) (gcc version 3.0.4) #1 Thu Mar 14 17:36:09 JST 2002
Debian の sid です。
154:名無しさん@お腹いっぱい。
02/05/16 19:14
>>153
あ、どもです。いけるんですね。
今日うち帰って3.1でもいけるかどうか試してみます。
155:名無しさん@お腹いっぱい。
02/05/16 19:23
>>154 昨日やったら、2.4.19-pre8 も 2.5.15 も途中でこけた。まだ深くは追求していないけど。
156:名無しさん@お腹いっぱい。
02/05/16 19:28
>>155
コンパイルが通らないってことですか?
それとも実行時のエラーっていうことですか?
157:名無しさん@お腹いっぱい。
02/05/16 19:50
コンパイルエラーでそ>>156
オプション代えれば上手くいく予感
158:名無しさん@お腹いっぱい。
02/05/16 22:58
2.5.Xはwarningは山盛りでるわ、コンパイルエラーはでてくるわで
なかなか楽しめます: )。簡単な手直しは必須です。
gcc3.1と組み合わせたらそれはそれはハッピーになれるかも(w
やっぱりPC-UNIXはこうでないと!
159:名無しさん@お腹いっぱい。
02/05/17 00:21
Linuxは開発者多い割に対症療法なんだねえ。
*BSDは、日頃から山ほどwarning optionを付けて、見つかったwarningは
片っ端からつぶしてるもんな。styleにもうるさいし。
どっちをいじるのがハッピーかは、完全に性格によるかもしれない。
160:デフォルトの名無しさん
02/05/17 00:24
Linux2.5.15をgcc3.0.4でコンパイルして普通に使ってるよ。
新しい機能のthermal_interruptの辺りにバグがあるから
その機能を使わないようにすれば問題なく動く。
161:デフォルトの名無しさん
02/05/17 00:29
>>159
カーネル2.2の頃はwarningも殆ど無かったような気もするけど、
2.4になってからちらほらと。なんか生き急いでるような印象受けるよ<開発者
162:名無しさん@お腹いっぱい。
02/05/17 02:22
>>158
2.5.Xと戯れるなら
URLリンク(www.codemonkey.org.uk)
は必読かと。
163:名無しさん@お腹いっぱい。
02/05/17 09:36
>>162
サンクス
164:名無しさん@お腹いっぱい。
02/05/17 13:02
>>161
別にいいじゃん。2.5は開発系列なんだからさ。
乱暴と思えるようなmergeがなくなっちゃえば、
Linuxのmeritのひとつがなくなってしまう。
1.Xに比べれば天使を見るが如くだ。
165:名無しさん@お腹いっぱい。
02/05/19 20:17
specsファイルの書き方を説明したサイトないかなー
166:名無しさん@お腹いっぱい。
02/05/19 20:52
$info gcc
Invoking GCC::Spec Files::
167:名無しさん@お腹いっぱい。
02/05/20 13:40
gcc-3.1では -march={pentium2,pentium3,pentium4} なんかが追加されてるけど,
celeronの場合は何を指定するのがベストなのかな? pentium2あたり?
168:名無しさん@お腹いっぱい。
02/05/20 13:59
>>167
2か3だろうけど、コアの種類にもよるんでない?
つーかそれぞれでどう最適化が違うのかわからんとなんとも言えんけど。
169:名無しさん@Emacs
02/05/20 14:46
>>167
生成したバイナリに具体的にどんな影響が現われるのか興味深いな・・。
特にpentium2と3。
基本的にはpentium2を指定しておけば間違いないだろう。
あとSocket478用Celeronならpentium4。
それ以外はその時期のCeleronと同時に発表されたプロセッサと同じものを
指定すればよいだろう。
170:名無しさん@お腹いっぱい。
02/05/20 15:27
i386の-marchで何が起こるかはconfig/i386/i386.cのprocessor_alias_table[]を参照しる。
171:名無しさん@お腹いっぱい。
02/05/22 18:39
URLリンク(www.coyotegulch.com)
172:名無しさん@お腹いっぱい。
02/07/21 09:26
gcc の release plan がかなり変更になった.
gcc 3.1.1 が現地時間で 7/21 に出るけど,この系列は
gcc 3.2.x に名称変更.7/23 に gcc 3.2 が出る予定.
gcc 3.2.x の C++ binary は,gcc 3.1.x の C++ binary と
互換ではないので要注意.
新 branch は gcc 3.3.x になる.
URLリンク(gcc.gnu.org)
173:名無しさん@お腹いっぱい。
02/07/21 12:39
もしかして非互換性発覚→急遽3.2ってことなのかな?
174:名無しさん@お腹いっぱい。
02/07/21 12:49
どっちかっつーと、
ABI変えないとどーしょうもない不都合発覚→3.2にversion bump
てことじゃないかと。
175:名無しさん@XEmacs
02/07/22 09:19
>>172
cvs [server aborted]: no such tag gcc_3_1_1_release
まだですね。
176:名無しさん@お腹いっぱい。
02/07/22 17:52
にしても GCC3.x は迷走しているなぁ。いったいいつまで 2.95.3 を使いつづけ
なければならないんだろう。
177:名無しさん@お腹いっぱい。
02/07/22 23:21
伝統にしたがって3.4まで待つことになるんでは
178:名無しさん@お腹いっぱい。
02/07/22 23:50
3.1.1 まだ~?
3.2 がもうすぐ出ちゃうよ.
現在 3.1 を使っているけど,3.2 が出たらどうするか考慮中.
C++ binary incompatible ではねぇ.
179:名無しさん@お腹いっぱい。
02/07/23 00:46
みんなどんどん使って不具合だしてくれー
180:名無しさん@お腹いっぱい。
02/07/23 12:46
最適化がVisualC並になるのはいつのことやら・・・
181:名無しさん@お腹いっぱい。
02/07/23 16:38
3.xの最適化はVisual Cに負けていないという噂は本当ですか?
182:名無しさん@お腹いっぱい。
02/07/23 23:07
>>181
gcc ではなく icc の間違いではないでしょうか。
icc も Pentium4/Xeon でないと真価を発揮しないようで.
183:名無しさん@お腹いっぱい。
02/07/23 23:21
>>182
どっちかっつーとPentium4/Xeonのほうがiccで最適化かけた
バイナリでないと真価を発揮しない、のような
184:名無しさん@お腹いっぱい。
02/07/24 01:18
こんな結果があるがどうよ?
スレリンク(linux板:194-198番)n
#gccも思ってたよりやるな。
185:名無しさん@お腹いっぱい。
02/07/24 01:19
あ、gcc2.96だけどね。
186:名無しさん@お腹いっぱい。
02/07/24 05:27
つーか、gccの最適化がしょぼい(>>180)ということを裏付けるデータあるの?
187:名無しさん@お腹いっぱい。
02/07/24 10:14
>186 >>184
188:名無しさん@お腹いっぱい。
02/07/24 10:30
>>187
VC出てきてないんですけど…
189:名無しさん@お腹いっぱい。
02/07/24 10:33
>>186
まだそんなこと言ってる・・・
「証拠見せろ」とか「gccに速さを求めるのは筋違い」とかって
ほんと決まり文句だな。
190:名無しさん@お腹いっぱい。
02/07/24 11:21
>>188
gccが比べるまでもなくしょぼいのはわかりますが何か?
191:名無しさん@お腹いっぱい。
02/07/24 11:28
i386の事だけ考えればいい商用のコンパイラと、gccを比べるのは川獺。
192:名無しさん@お腹いっぱい。
02/07/24 11:44
VCって、Windows CE用にmips、arm、shとかもサポートしてるみたいだけど、
この辺の最適化具合はどうなんだろね。
193:名無しさん@お腹いっぱい。
02/07/24 12:42
今は知らないが、VC++ってAlpha版、PowerPC版、MIPS版なんてのもあったような。
194:名無しさん@お腹いっぱい。
02/07/24 13:19
>>193
NTとかビルドするのにも使ってるんだし、そりゃああるだろよ。
195:名無しさん@お腹いっぱい。
02/07/24 15:27
URLリンク(gcc.gnu.org) 3.1.1 ぷれりりーす
196:名無しさん@お腹いっぱい。
02/07/24 22:30
>>189,190
URLリンク(www.google.com)
辺りみても、benchimarkでしかあり得ないプログラムや
数値計算やCG関係でMMXなんかがうまく使えた時に差がある程度と思うが?
>>191
その影響はpeepholeやinstruction emittingに限られるでしょ?
これがoptimization全体で大きな割合を占めるのはかなり特殊なprogram。
197:名無しさん@お腹いっぱい。
02/07/24 22:40
>190
そういう人にとっては、ここに来るのは時間の無駄以外のなにものでもないですね。
198:名無しさん@お腹いっぱい。
02/07/25 00:31
gccより遅いコンパイラは全部滅んじゃったからね。
199:名無しさん@Emacs
02/07/25 08:55
>>198
なるほど、そうか。
gccがコンパイラの底あげをしたわけね
200:名無しさん@お腹いっぱい。
02/07/25 10:34
>>196
> benchimarkでしかあり得ないプログラムや
速い遅いを見るのがBenchmarkじゃないの?
> 数値計算やCG関係でMMXなんかがうまく使えた時に差がある程度と思うが?
数値計算やCGって実用域の性能には無関係だと?
VCはMMXの最適化なんてやんないよ。ProcessorPack入れたらInlineで
書けるって程度。VectorCは違うけど。
あのね、すぐWin厨って言わないでUNIXの外の広い世界も
勉強したほうがいいと思うけどな。
例えば同じマシンにKDEとWindows2000入れたらどっちが
さくさく動くと思う?
まぁ、そういうと、そらXがクソ、Qtがトロいせい。Win2000なんて
そもそも不安定だから比較対象にならんとか言い出すんだろうけどさ~
201:名無しさん@お腹いっぱい。
02/07/25 10:40
>>200
比較対象にWindowsを持ってくるのはどうかと思うが、
いままでの*NIXの独善の歩みと言うべき姿勢は、
そろそろ見直される時期に来てるかも。
ソフトウェアの開発モデルとしては機能はしてるが
魅力やスピードが無いと言えるかも。
抽象的ですまんが
202:名無しさん@お腹いっぱい。
02/07/25 11:26
>>200
他にもUNIXとWindowsと比較・対決してるスレはたくさんあるから、
そういう議論はそっちでやってくれないかな?
ここはgcc関連の話題を扱うスレ。
203:名無しさん@お腹いっぱい。
02/07/25 13:44
> 例えば同じマシンにKDEとWindows2000入れたらどっちが
> さくさく動くと思う?
cygwinの上でKDE動かした方が遥かに遅かったが、なにか?
204:名無しさん@お腹いっぱい。
02/07/25 14:08
>>200
> 例えば同じマシンにKDEとWindows2000入れたらどっちが
> さくさく動くと思う?
gccでコンパイルしたKDEと
gccでコンパイルしたWindows2000の比較か?
205:名無しさん@お腹いっぱい。
02/07/25 16:21
>>204
おまえ頭悪いな・・・
206:名無しさん@お腹いっぱい。
02/07/25 16:27
>>205
おまえ頭悪いな・・・
207:名無しさん@Emacs
02/07/25 18:51
なつだからっていちいち煽りにかっかしてんな。
そうめんみたいに流せ。
208:名無しさん@お腹いっぱい。
02/07/25 23:20
ネタにマジレスすると、KDEとWin2000のどちらがサクサク動くか、という点については
コンパイラ云々よりもウィンドウシステムの設計に依存するところが大きいでしょう。
win2kはご存知のとおりカーネル内にグラフィックサブシステムが入ってるから、
かなりの速度がでる。Xは残念ながらオーバーヘッドがでかい。
つーことは、上記のように環境が速度の最大ファクタであるような場面では
コンパイラの最適化能力なんてあんまり目立たない→重要でない
ってなことになっちゃうと思うんだが...
で、未だにコンパイラの速度を競うような場面ってそんなにありますか?
計算屋さんにとっては重要な問題なのかなあ。
ほとんどライブラリに頼ってる気がせんでもないけど。
209:名無しさん@お腹いっぱい。
02/07/26 10:07
>>203
そら遅くて当たり前…
210:名無しさん@お腹いっぱい。
02/07/26 19:49
gcc-3.1.1 リリースage
211:名無しさん@お腹いっぱい。
02/07/26 21:49
URLリンク(www.usenix.org)
"Solaris 2.6 vs Windows NT 4.0"のスレッドパフォーマンス比較だけど,
The "same compiler", GNU gcc version 2.8.1, was used to compile the
test programs for both operating systems. ... However, later we
compiled the test programs with each system's native compiler (Visual
C++ 5.0 and SUN C Compiler 4.2) and found no significant differences
in performance.
となっているね.この場合,OS側のライブラリやカーネルを実行してる部分が多くて
ユーザプログラム側の部分によって大きな差がつかない,ということだろうね.
212:名無しさん@お腹いっぱい。
02/07/29 19:31
板違いかもしんないけどさ。気に入らなかったら読み流してちょ。
コンパイラの教科書って、未だに Ahoのアレが一番メジャーなの?
あそこまで行かないにしても、それなりに網羅的に書いてある
もーちょっとモダーンな教科書あったら紹介きぼんぬ。
213:名無しさん@お腹いっぱい。
02/08/02 17:39
GCCの連載見つけたage
URLリンク(www.cqpub.co.jp)
214:名無しさん@お腹いっぱい。
02/08/02 20:15
>>212
つーか、最近は一冊にまとまっていない。分量多すぎ。
プログラミング言語一般論, parsing, type, code emiting&optimization
くらいに分かれている。翻訳があるドラゴンブック読んでから、次に進めばよい。
215:214
02/08/06 14:39
>>212
もしかして英語でも良かったの?
216:名無しさん@お腹いっぱい。
02/08/06 18:08
>212
中田育男著「コンパイラの構成と最適化」
217:名無しさん@お腹いっぱい。
02/08/06 18:50
えいぷるさんの本があるべ
218:名無しさん@お腹いっぱい。
02/08/07 21:09
>>215
英語でもいーっす。
今、amazon.comも見てみましたが、あまりくるのがありませんでした。
Modern Compiler Design が一番ポピュラーなんですかね。
>>216
読んだ事ありますがドラゴンの方がよさげ(網羅的)な気が。
>>217
Appel「Modern Compiler Implementation in Java 」ですか?
219:
02/08/07 23:05
Compiling with continuation とか。
220:名無しさん@お腹いっぱい。
02/08/10 22:58
3.2 ぷれりりーす
URLリンク(gcc.gnu.org)
221:名無しさん@お腹いっぱい。
02/08/11 00:40
正式リリースは 8/14 か。当初は 7/23 に出るとかいう話だったから、3週間遅れか。
222:名無しさん@お腹いっぱい。
02/08/15 21:17
ftp.iij.ad.jp:/pub/GNU/gcc/ にはもうあるね。> gcc-3.2.tar.gz
223:名無しさん@お腹いっぱい。
02/08/16 01:38
GCC 3.2 Released. アナウンスされた。
224:名無しさん@お腹いっぱい。
02/08/16 02:33
GCCへの、というわけでもないですがコンパイラに関する
スレッドがみつけられなかったので質問させてください.
何とか社fooのCompiler (foocc)ver.10はsourceを書いた後
(2回目は自分自身でcompileするにしても)最初はfoocc-9で
compileするんでしょう.ver.9はver.8でcompile、と
考えていくとver.1はどうやってつくったんでしょうか?他の会社なりのhogeのcompiler(例えばhogecc-5とか)がその時あれば
ちょっと借りてきて1回目だけそれを使えばいいんですが、それでは
hogecc-1のsourceはどうやってcompileしたんでしょう?
最初は誰かえらい人がアセンブラで書いてくれた.位しか
思いつかないのですが...
こんなの常識なんでしょうか?
225:春日三球
02/08/16 03:07
今夜も寝られなくなっちゃったじゃねえかゴルァ!
226:名無しさん@お腹いっぱい。
02/08/16 03:18
>224
最初はIPLをトグルスイッチぱちぱちやって入力した。
227:名無しさん@お腹いっぱい。
02/08/16 03:32
トグルスイッチといえば、
コンパイラではなくOSだがCray社を作ったシーモアクレイは
OSをトグルスイッチでパチパチパッチンと入れて
それがいきなり動いたっていう.本当か?
URLリンク(cruel.org)
GCCと関係ないけど.
228:名無しさん@お腹いっぱい。
02/08/16 05:01
何でみんな新しいもの追っかけるの?
昔は新しいモノを追っかけてたんだけど、安定してるはずのgcc2.95.2で
glibcをmakeしたら腐ったコード吐いたことがあったので、新しいのは怖くて使えないよ。
結局、egcs2.91.66が一番安心できる。
229:名無しさん@Emacs
02/08/16 10:20
>>224
バベルの図書館で貸し出してます。
VC++は民明書房にあるそうです。
230:名無しさん@お腹いっぱい。
02/08/16 11:25
>>228
新しいもののほうがナイスな最適化するかもーとか、
C++ の標準準拠っぷりとか、
gcc のパッチを作ってるので仕方なくーとか。
必要ないんなら古いのでいいと思いますよ、ええ。
FreeBSD と NetBSD は gcc-3.x に移行する予定みたいですね。
231:名無しさん@お腹いっぱい。
02/08/16 16:52
バグると不平を言うよりも、進んでバグを出しましょう
…というのがフリーUNIXコミュニティの美徳ではないかと>>228
仕事で使うならstableなものを選択するというのもアリ
232:名無しさん@お腹いっぱい。
02/08/16 17:31
>>231
バグって不平をいうやつはそこまでのレベル。
233:名無しさん@お腹いっぱい。
02/08/17 03:29
おれbug見つけたら小躍りしながらレポート書いちゃうけどな(・∀・)
234:名無しさん@お腹いっぱい。
02/08/17 03:45
>>233
あんたは素晴らしい。
俺にはコンパイラのバグなんてさっぱり分からん。
235:名無しさん@お腹いっぱい。
02/08/17 12:50
>>234
templateで遊んでたらいくらでもinternal compiler error出るぞ
236:名無しさん@お腹いっぱい。
02/08/17 13:15
>>235
internal compiler errorとか出たらどうやって追いかけてるの?
237:名無しさん@お腹いっぱい。
02/08/17 13:25
>>235
例えばどんなソースだとエラーがでる?
238:名無しさん@お腹いっぱい
02/08/17 14:08
>>236
追いかけるのはGCCチームにやらせりゃいいことだろ。
error が出たソースを添付してレポートすりゃいいだけ。
239:名無しさん@お腹いっぱい。
02/08/17 15:23
gccのソースも読めないやしは半人前。
と言われつづけてはや10年
240:名無しさん@お腹いっぱい。
02/08/17 16:25
10年前の gcc-1.42 がファイル数 281、展開後のサイズ7.7Mだったのが、
gcc-3.2 ではファイル数 14375、サイズ161MB に肥大しているから、
せっかくの10年前にgccのソースを読む機会を逸した奴はもう一生読めないに違いない。
241:あぼーん
あぼーん
あぼーん
242:あぼーん
あぼーん
あぼーん
243:名無しさん@お腹いっぱい。
02/08/17 19:11
>>240 10年前のソースを読めば解決?w
244:名無しさん@お腹いっぱい。
02/08/17 19:32
今のgccぐらいの規模なら理解できるだろ。
世の中もっと大きなソフトウェアは幾らでもある。
245:名無しさん@お腹いっぱい。
02/08/17 19:59
ここにはgccを理解してる人がいるみたいなので質問させてください。
1. rtl.defやrtl.h,rtl.c
2. *.md
3. -drオプションを指定されたときに吐き出されるファイル
これら三つの関係がいまいちよくわかりません。
簡単でいいのでこれらの関係を教えて下さい。
246:名無しさん@お腹いっぱい。
02/08/17 20:52
>>245
gcc の info 読もう。
gcc -> Passes `Paasses and Files of the Compiler' のあたり。
247:名無しさん@お腹いっぱい。
02/08/17 21:09
>>246
それはよく読んだのですが、分からないからここで質問しました
248:あぼーん
あぼーん
あぼーん
249:名無しさん@お腹いっぱい。
02/08/18 00:37
>>247
えー その info に十分な情報があると思うけどなあ。
1. RTL を操作するためのユーティリティ関数と、RTL の共通定義
3. コンパイル対象のソースが RTL に変換された直後の RTL の様子
2. insn-flags.h とか insn-codes.h とか insn-output.c とか
insn-attrtab.c とか、とにかくマシン依存のコンパイラソースを
生成するためのソース
250:名無しさん@お腹いっぱい。
02/08/18 08:55
>>249
おお、ありがとうございます。
なんとなくイメージが掴めました。
教えてもらったことを手がかりに
ドキュメントを読み直します。
251:名無しさん@お腹いっぱい。
02/08/18 11:27
俺は組込み系やってるのでコンパイラが吐き出したコードを読む機会が多いんだけど、
最適化されるはずなのにうまくされてないような所ってのも、正しく動くけどbugのうちとみなしてレポートしてる
たいていは数日以内にpatch送ってもらえたりするんで、いつでもmakeできるように
gccのソースツリーは展開したまま置いてある。
間違ったコード吐いたりされる場合はさすがにpatch送ってもらうのを待ってるわけにいかんので
レポートするのと同時に自分で治すこともあるけど、簡単に治せるようなものなら良いが
ちょっとややこしくなるともう手に負えん(;´Д`)
252:名無しさん@お腹いっぱい。
02/08/21 22:25
今gcc-3.2コンパイルしてます。
dejagnuのチェックでFAILが出まくってるんだけど、コンパイル失敗ですか?
一応継続してるんですが。
253:名無しさん@お腹いっぱい。
02/08/22 08:05
gcc が Java のバイトコードも吐けるようになるのはいつの日か。
254:名無しさん@お腹いっぱい。
02/08/22 09:25
>>253 gcj -C で吐くと思われ。
255:名無しさん@お腹いっぱい。
02/08/22 16:36
Gentoo
256:名無しさん@お腹いっぱい。
02/08/23 04:35
質問です。
某マシンでgcc使ってるんですけどnewが例外投げてくれません。
PCのgccでも昔は駄目だったんですけど、
3.0では直ってるんでしょうか?
257:名無しさん@お腹いっぱい。
02/08/23 20:16
>>256
PCのgccを3.0にして試せばいいのでは?
258:名無しさん@お腹いっぱい。
02/08/23 20:41
>>256
・例外そのものが機能しないのではなく、newだけ?
・昔ダメだったgccのバージョンは?
ぐらいの情報は欲しいなあ。
259:名無しさん@お腹いっぱい。
02/08/24 09:42
>>218
亀レスだが、英語でいいなら、Modern Compiler Designでいいんじゃない?
ドラゴンブックもぺ─バーバックの奴買っておけばいいし。
Advanced Compiler Design and Implementationも面白いよ。
Appelのは傾向がチョト違う。
>>219も"Garbage Collection: Algorithms for Automatic Dynamic Memory Management"も(w
260:名無しさん@お腹いっぱい。
02/08/24 09:46
>>224
最初は別の言語で書く。アセンブラまで後退する必要はない。
ちなみに昔はFortranやPL/1で書かれたC compilerがあった。
テメーのcompiler書いても、
gccがあるからgccで簡単にbootstrap、って状況の方が(昔からすれば)異常。
261:名無しさん@お腹いっぱい。
02/08/24 17:31
>>256
少なくともgcc 2.95では、mallocが本当に失敗すればbad_alloc
投げてくれるはず。(cp/new1.cc)
楽観的メモリ割り当てとかで、malloc自体が成功しているからでは?
262:名無しさん@XEmacs
02/08/26 06:01
intel 系っつーか PentiumPro 系のハナシですが、
gcc2.95 って妙に速いコード出すことがあるですね。
gcc3.2 や icc より速い。。。
263:224
02/09/03 22:09
> 260さん
ありがとうございます.それはそうなのでしょうけど,
(最初にCを作った人は"Cで書いてコンパイルしたC Compiler"
がそれこそ世界になかったわけですから!)
その "FortranやPL/Iで書いたC Compiler"を作るための
"FortranやPL/IのCompiler"をやはり作らなければいけませんよね...
でも教えてばっかりでもなんだか悪いのでいろいろ調べてみます。
どう考えても最初は簡単な(機能が少ない)言語Aをアセンブリ言語で書き、
その言語Aを使ってもうちょっと高水準の(機能が多い)言語Bのコンパイラ
を書く.-> 以下同文 とやっていったのだとは思いますが.
264:名無しさん@お腹いっぱい。
02/09/03 23:43
つーか、別にアセンブラだけで(機械語だけでさえも)
Cコンパイラ作れるんですが。
265:名無しさん@お腹いっぱい。
02/09/04 00:10
>>263
理論的には可能であるとしても、
アセンブラで書いたC compilerは山田かつて見たことがない。
> hogecc-1のsourceはどうやってcompileしたんでしょう?
> 最初は誰かえらい人がアセンブラで書いてくれた.位しか
よって>>260ではこの行間の話をした。以上。
266:いや、知らんけど
02/09/04 00:19
リッチーさんが最初にPDP-7上で書いたCコンパイラは、アセンブラだったのでは。
267:あれ、Cの誕生は
02/09/04 00:20
PDP-11に移植してからだったか?
268:名無しさん@お腹いっぱい。
02/09/04 01:49
>263
> 以下同文とやっていったのだとは思いますが.
で、結局 >>226 まで遡ると。
269:名無しさん@お腹いっぱい。
02/09/04 03:19
dmrセンセイはBでCを書いたんじゃないの?
270:名無しさん@お腹いっぱい。
02/09/04 04:01
アセンブラの登場はFortranコンパイラよりも後のはず。
271:名無しさん@Emacs
02/09/04 19:33
Unixの歴史とかの書籍を見ると
「コンパイラコンパイラ」
ってのがあったらしいが...
....一番最初はどうだったんだろう。
謎、謎。
272:名無しさん@お腹いっぱい。
02/09/04 23:50
yacc?
273:名無しさん@Emacs
02/09/06 10:02
libungif コンパイルできねー
274:名無しさん@Emacs
02/09/06 10:05
@ gcc-3.2
275:棄教者 ◆witdLTi2
02/09/06 10:42
>>266-267
gcc は yacc/bison が無いと動かないよね
yacc/bison は C で書かれているよね
。。。
276:名無しさん@お腹いっぱい。
02/09/06 12:12
>275
最初のCコンパイラはgccではないわけだが...
277:名無しさん@お腹いっぱい。
02/09/06 16:09
g++ 3.2 で ostream_iterator が未定義だといわれるんだが。
% cat foo.cpp
#include <ostream>
#include <string>
int main()
{
std::ostream_iterator<std::string> *i;
}
% g++ -dumpversion
3.2
% g++ -c foo.cpp
foo.cpp: In function `int main()':
foo.cpp:5: `ostream_iterator' undeclared in namespace `std'
foo.cpp:5: parse error before `>' token
278:名無しさん@お腹いっぱい。
02/09/06 17:45
#include <iterator>
279:277
02/09/06 20:26
サンクス。
標準では <iterator> なのか。やっぱり古い知識のままじゃいかんなぁ。
280:名無しさん@お腹いっぱい。
02/09/09 00:06
gcc をビルドしてできる libstdc++.so.5 とかは、どこにインストール
すべきものなんでしょうか。
configure --prefix=/usr/local/gcc-3.2 とかでビルドして make install
すると、/usr/local/gcc-3.2/lib/ の下にインストールされるのですが、
g++ 3.2 で作成した実行ファイルを起動すると、libstdc++.so.5 が
見つからない、と言われてしまいます。
281:名無しさん@お腹いっぱい。
02/09/09 00:11
OS は?
ldconfig とか、LOAD_LIBRARY_PATH とか?
282:あぼーん
あぼーん
あぼーん
283:名無しさん@お腹いっぱい。
02/09/09 00:16
>280
リンク時に
g++ -Wl,-rpath -Wl,/usr/local/gcc-3.2/lib
と書いておけば? specs ファイルでも指定できるかもしれんが。
284:280
02/09/09 00:55
アドバイス、ありがとうございます。
>>281
Linux 2.2 です。
ldconfig とか LOAD_LIBRARY_PATH とかは、とく使ってませんでした。
man を見ると、ldconfig で解決できそうな感じがします。
>>283
これは、スタティックリンクをするときの話でしょうか。できれば、
実行時にリンクを解決したいのです。
285:名無しさん@お腹いっぱい。
02/09/09 01:52
ダイナミックリンクする場合の指定方法だよ
286:280
02/09/12 12:56
libstdc++ の件は
# echo /usr/local/gcc-3.2/lib >> /etc/ld.so.conf
# ldconfig
で解決しました。
g++ 3.2 で別の問題なんですが、std::wstring を使おうとして、
#include <string>
int main() { std::wstring s; return 0; }
をコンパイルしたら、
/tmp/ccSgXbtC.o: In function `main':
/tmp/ccSgXbtC.o(.text+0x17): undefined reference to `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string[in-charge]()'
/tmp/ccSgXbtC.o(.text+0x22): undefined reference to `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::~basic_string [in-charge]()'
のようなリンクエラーが出ました。もともと普通にビルド&インストール
しただけでは wstring が使えないので、c++config.h で
#define _GLIBCPP_USE_WCHAR_T 1
として (無理やり?) 使っていたのですが、3.0.4 あたりではうまくいって
いたのに、3.2 では上のようなエラーが出るのです。
これは、3.2 の basic_string では、メンバ関数がインライン展開されずに
別モジュールとしてコンパイルされているんですかね。
287:280
02/09/12 14:21
なんと、basic_string クラスのインスタンス自体が外部宣言されていました。
gcc-3.2/include/c++/3.2/bits/basic_string.tcc:
extern template class basic_string<wchar_t>;
gcc じゃ、こんな書き方ができるのか。
で、ビルド時には _GLIBCPP_USE_WCHAR_T が undef になっていたので、
ライブラリには、wstring の実体が作られていないのでしょう。自前で
template class std::wstring;
とやってやれば、うまいことリンクできました。
ところで、ビルド時から _GLIBCPP_USE_WCHAR_T を有効にするには
どうすればいいんでしょう。
288:280
02/09/12 17:58
結局、システムに入っていた glibc が古くて wchar_t 関係の
関数がそろっていなかったのが原因のようですね。現在、
glibc-2.2.5 をビルド中。
289:名無しさん@お腹いっぱい。
02/10/02 09:57
g++3で書いた中身C++、インターフェースCなライブラリを、g++2
から利用する(またはその逆)ための、良い方法は無いでしょうか?
普通にやろうとすると__dynamic_castなどが衝突するので、
リンカ側で色々工夫をする必要があるようなのです。
FreeBSDで、-symbolicなどを駆使して、一応例外などを
動かすことはできましたが、とてもポータブルとは思えない
ので、もっと正しい方法があれば教えてください。
290:名無しさん@お腹いっぱい。
02/10/17 22:29
64bit Solaris 8でgcc 3.2をコンパイルできた人いますか?
Companion CDで入る/opt/sfw/bin/gcc (2.95.3)を使って
やっているのですが(make checkの)エラーが消えません。
$ /usr/local/bin/tar xvfz gcc-3.2.tar.gz
$ cd gcc-3.2; mkdir objdir; cd objdir
$ echo $PATH
/opt/sfw/bin /usr/bin /bin /usr/ccs/bin /usr/local/bin
$ ../configure --enable-languages=c,c++ --with-as=/usr/ccs/bin/as
--with-ld=/usr/ccs/bin/ld --disable-nls
$ /usr/local/bin/make bootstrap (Errorは出ません。)
$ echo $TCL_LIBRARY
/usr/local/lib/tcl8.4
$ echo $DEJAGNULIBS
/usr/local/share/dejagnu
$ /usr/local/bin/make -k check | tee check.log
で,check.logからサマリ部分だけ抜き出すと、
291:名無しさん@お腹いっぱい。
02/10/17 22:30
=== libstdc++-v3 Summary ===
# of expected passes 407
# of unexpected failures 2
# of unexpected successes 10
# of expected failures 16
=== gcc Summary ===
# of expected passes 18688
# of expected failures 66
# of unsupported tests 111
=== g++ Summary ===
# of expected passes 7248
# of unexpected failures 3
# of expected failures 88
# of untested testcases 21
# of unsupported tests 4
bootstrapまでは通っているけどtestsuiteのC++関連の
unexpected failuresがあるのが不安です。
URLリンク(gcc.gnu.org)を見ると
(Test resultsでエラーがある人もいるけど)Successfulの
人もそれ以上に結構いて、なんで私のだけエラーが出るのかと...
292:名無しさん@お腹いっぱい。
02/10/17 22:35
$ cd gcc/
$ for file in *.o ; do cmp $file stage2/$file; done
でのstage2とstage3の比較はOKのようなのですが...
そもそもtestsuiteでunexpexted failuresが0になるものでしょうか。
gccをsourceからbuildするのは初めてなのでよく作法/流儀が...
Package版があるようなのでそっちを入れた方がいいんでしょうか。
293:名無しさん@お腹いっぱい。
02/11/03 10:41
gcc3.xをメインに使わないやしは氏ね
294:名無しさん@お腹いっぱい。
02/11/20 22:14
gcc 3.2.1
URLリンク(gcc.gnu.org)
295:名無しさん@お腹いっぱい。
02/11/21 22:46
gcc-3.2でperl-5.6.1がmake出来ない(´・ω・`) ショボーン
296:名無しさん@お腹いっぱい。
02/11/21 23:53
>>295
もしよければ詳細キボンヌ
gcc-3.2は最適化でバグがあるらしいね…「-fno-strength-reduce」を追加して対処
した方がいいらしい(Vim-6.1のパッチ260より)
gcc-3.2.1ではfixされているのかな?
297:295
02/11/22 00:06
これと同じ URLリンク(archive.develooper.com)
パッチあったんで助かったYo!
298:名無しさん@お腹いっぱい。
02/11/22 14:37
>>296
なるほど、これか
URLリンク(archive.develooper.com)
Thanks
299:名無しさん@お腹いっぱい。
02/12/12 20:20
URLリンク(www.coyotegulch.com)
300:名無しさん@お腹いっぱい。
02/12/13 16:47
propolice の特許?
特開 2001-216161
URLリンク(www2.ipdl.jpo.go.jp)
で 検索汁
301:名無しさん@お腹いっぱい。
02/12/13 18:28
>>300
一部に衝撃が走り中(w
302:名無しさん@お腹いっぱい。
02/12/13 18:39
正式書類にはこう書くのか(藁
インターナショナル・ビジネス・マシーンズ・コーポレ-ション
303:名無しさん@お腹いっぱい。
02/12/14 02:19
>>300
使ってもお金とられなきゃ特許でもいいや…
304:名無しさん@お腹いっぱい。
02/12/14 07:37
泳がせておいて後で回収と言うunisys方式もあるよ。
305:名無しさん@お腹いっぱい。
02/12/14 08:58
特許を申請した理由が知りたい…
日付からするとパッチを公開した時期なのかな?
306:名無しさん@お腹いっぱい。
02/12/14 10:22
特許申請しないと公開させてもらえなかったのかも。
特許の文書もやけに教育的だし。
307:名無しさん@お腹いっぱい。
02/12/14 12:11
特許は申請じゃなくて出願するもんだろう。
308:あぼーん
あぼーん
あぼーん
309:名無しさん@お腹いっぱい。
02/12/14 15:32
みなさん、リリース間近の3.3は試していますか?
310:名無しさん@お腹いっぱい。
02/12/15 09:27
propolice開発者です。GCCに提出している部分はGPLとしていますから、この部分に関して特許の心配はありません。
但し他のコンパイラ製品には適用されます。
このスレッドは見ているわけではないので、できれば私宛にメールを送ってください。アドレスはホームページから探してください。
311:名無しさん@お腹いっぱい。
02/12/16 22:19
>>310
キタ━━━(゚∀゚)━━━ !!!!!
312:名無しさん@お腹いっぱい。
02/12/17 01:09
>Support for thread local storage has been added to the IA-32 and x86-64 ports.
ほう。port限定だけど3.3でTLSサポート入るのか。
>IBM ROMP, romp-*-*
>IBM大騒ぎ、romp-*-*
(´∀`)
313:nobody
02/12/19 11:28
TLS サポートって TLS をどうサポートするんだろう?
下校できるとか
314:名無しさん@お腹いっぱい。
02/12/20 01:58
>>313
True Love Story カヨ
315:名無しさん@お腹いっぱい。
02/12/20 17:29
3.2.1いい感じだね。
安定してきた感じ。
316:名無しさん@お腹いっぱい。
03/01/04 11:10
そろそろ、全面的に3を採用してもいい頃なんじゃないかねえ。
Cに関しては移行についての問題も少なそうだし。g++がなあ
2.XXはおかしいから早いところなくなって欲しいのだけど。
317:名無しさん@お腹いっぱい。
03/01/08 12:35
祝 Debian sid で gcc = gcc-3.2 化
318:名無しさん@お腹いっぱい。
03/01/08 14:57
これで、開発系は全部がgcc-3.2になったのかな?
319:名無しさん@お腹いっぱい。
03/01/08 16:20
>>318
まあ、Linux-2.5.54 は Documentation/Changes では
The recommended compiler for the kernel is gcc 2.95.x (x >= 3), and it
should be used when you need absolute stability. You may use gcc 3.0.x
instead if you wish, although it may cause problems. Later versions of gcc
have not received much testing for Linux kernel compilation, and there are
almost certainly bugs (mainly, but not exclusively, in the kernel) that
will need to be fixed in order to use these compilers. In any case, using
pgcc instead of plain gcc is just asking for trouble.
なんて書かれてはいるけどね。
320:名無しさん@お腹いっぱい。
03/01/09 12:34
vim 6.1のconfigureにもこんなのがあるなぁ。
if test "$gccversion" = "3.1" -o "$gccversion" = "3.2" -o "$gccversion" = "3.2.1" && `echo "$CFLAGS" | grep -v fno-strength-reduce >/dev/null`; then
echo 'GCC 3.1 and 3.2 have a bug in the optimizer, adding "-fno-strength-reduce"'
CFLAGS="$CFLAGS -fno-strength-reduce"
fi
321:名無しさん@お腹いっぱい。
03/01/12 11:35
スレリンク(tech板:855-856番)
わくわく。
322:296
03/01/12 18:42
>>320
ま、3.2.1でも3.2と同様問題がある…ということですか ショボーン
323:名無しさん@お腹いっぱい。
03/01/13 15:30
>>322
ちなみに、debian sid 標準なのは pre-release な 3.2.2。2003-01-09 版。
324:山崎渉
03/01/15 12:54
(^^)
325:名無しさん@お腹いっぱい。
03/03/05 02:46
3.3ってどうよ
326:名無しさん@お腹いっぱい。
03/03/05 11:46
>>325
普通に動いてるけど。
最適化に関して改善されたみたいだけどどうだろう。
ベンチなんてとったりしてないし。。。
327:名無しさん@お腹いっぱい。
03/03/05 15:05
しかし、最近は簡単にマイナーバージョンを上げるなぁ。
328:名無しさん@お腹いっぱい。
03/03/05 15:13
>>327
3.3ってのは実質3.2だってことをお忘れなく。
329:名無しさん@お腹いっぱい。
03/03/05 18:12
3.1.1 -> 3.2 になったからってことかな?
330:名無しさん@お腹いっぱい。
03/03/11 05:40
URLリンク(gcc.gnu.org)
> We strongly recommend to install into a target directory where there is no
> previous version of GCC present.
これって、gcc をバージョンアップするときは以前のバージョンを消せということ?
331:名無しさん@お腹いっぱい。
03/03/11 05:49
上書きしてトラブっても自力で対処できないような香具師は
おとなしく新しいディレクトリ掘っとけ、ということでしょう。
/usr/local/gcc-3.2.2/ とか。
332:名無しさん@お腹いっぱい。
03/03/11 06:01
>>330
混ぜるなキケンってこと
333:名無しさん@お腹いっぱい。
03/03/11 06:13
>>332
あんたは、バージョンごとにディレクトリ分けてるのかい?
334:名無しさん@お腹いっぱい。
03/03/11 10:01
>>333
$ ls /usr/lib/gcc-lib/i386-redhat-linux
2.96
3.2.1
egcs-2.91.66
少なくともRedHat Inc.は分けてる。
335:名無しさん@お腹いっぱい。
03/03/11 10:53
>>334
ここで出ている target directory をたがえるいうのは、
そういうことではないと思うが。
おまい、自分でgccをインストールしたことすらないでしょ。
336:名無しさん@お腹いっぱい。
03/03/11 12:07
もれはCVSの日付で分けてるけど。
337:名無しさん@お腹いっぱい。
03/03/12 03:11
>>335
> おまい、自分でgccをインストールしたことすらないでしょ。
たしかに久しくやってないな。
338:山崎渉
03/03/13 16:38
(^^)
339:名無しさん@お腹いっぱい。
03/03/14 19:56
スレリンク(unix板)
340:名無しさん@お腹いっぱい。
03/03/14 21:15
長寿だなぁ、このスレ。
341:山崎渉
03/04/17 12:18
(^^)
342:あぼーん
あぼーん
あぼーん
343:名無しさん@お腹いっぱい。
03/04/26 13:14
age
344:名無しさん@お腹いっぱい。
03/04/26 13:23
gcc-3.2.3 リリース記念sage
345:名無しさん@Emacs
03/04/26 14:06
>>344
遅
346:名無しさん@お腹いっぱい。
03/04/26 14:23
347:名無しさん@お腹いっぱい。
03/04/26 22:45
ちゃんと3.2.2がCurrentReleaseになったのは4/25
だし。遅いってことも無いんじゃない?
上で3.2.2キタ━(゚∀゚)━!って言ってたのはDebianに
PreReleaseが入ったってだけだし。
348:名無しさん@お腹いっぱい。
03/04/26 22:46
間違えた。3.2.3ね。
349:名無しさん@お腹いっぱい。
03/05/04 19:33
debian serge の無印gccがgcc-3.2(3.2.3) になってったよ!
さらば2.95
350:名無しさん@お腹いっぱい。
03/05/08 01:39
Pentium Mで最適化って-mcpu=pentium3でエエのかしら?
i686にしといたほうが無難か?
351:
03/05/08 01:48
-O3 が無難
352:名無しさん@お腹いっぱい。
03/05/08 04:22
-mcpu=pentium3と-mcpu=i686ってどこがちがうの?
353:名無しさん@お腹いっぱい。
03/05/08 04:27
i686にはPenPro,Pen2やAthlonも含むんじゃないの?
354:名無しさん@お腹いっぱい。
03/05/08 04:32
>>352
gccのソース嫁
とりあえずi386.mdってのを探すべし
355:名無しさん@お腹いっぱい。
03/05/15 13:27
3.3リリースあげ
URLリンク(gcc.gnu.org)
356:名無しさん@お腹いっぱい。
03/05/16 04:12
9か月ぶり。おめでとう!!
357:名無しさん@お腹いっぱい。
03/05/20 02:09
3.3だとglibc-2.3.2がコンパイル通らなくねっすか?
358:名無しさん@お腹いっぱい。
03/05/20 17:46
>>357
そんなものを何のためにコンパイルするのかな?
ひょっとして禿しく板違い?
359:あぼーん
あぼーん
あぼーん
360:名無しさん@お腹いっぱい。
03/05/30 22:13
gcc 3.3 でCのコードをコンパイルしようとした時,
/tmp/ccSthUIX.s: Assembler messages:
/tmp/ccSthUIX.s:1820: Error: invalid character '.' in mnemonic
というようなエラーが出てきて,該当するアセンブリ出力を見てみたら
cmovl.ge %eax, %ebx
というものだったんだけど,これは gcc 側がおかしなニーモニックを
吐き出しているのか,それとも as 側がおかしいのか,どちらでしょうか?
as は binutils 2.13.2.1
361:360
03/05/31 00:03
URLリンク(www.intel.com)
を見ると,"cmovl.ge"なんて命令はなさそうだし,gcc側がおかしいのかなぁ.
362:名無しさん@お腹いっぱい。
03/05/31 14:05
>>361
CMOVGEでは?
gasのオペコードもcmovgeで定義されてるねえ。
gccのi386.md追っかけてないけど、gccの問題臭いな。
363:名無しさん@お腹いっぱい。
03/06/01 17:26
gcc2.9x系と3.0との違いは何ですか?
ポインタだけでも結構ですので、ご存知の方がいれば
おしえてください。
364:名無しさん@お腹いっぱい。
03/06/01 17:44
>>363
URLリンク(gcc.gnu.org)
365:名無しさん@お腹いっぱい。
03/06/01 18:18
>>364
さんくす。
主な変更点は、
・最適化の強化(末尾再帰呼び出しの除去など)
・サポートするプラットフォームの増加(IA64など)
・Javaのサポート
・C++まわりの改良
・C言語の新しい規格C99への対応を強化(完全準拠ではないみたい)
・新しく書き直されたプリプロセッサ
・内部仕様の変更(ガーベージコレクションを採用、文脈自由文法の
解析アルゴリズムを変更など)
こんなかんじでしょうか。
ところで
「New tail call and sibling call elimination optimizations.」
は末尾再帰呼び出しの除去だと思ったんだけど、あってる?
366:名無しさん@お腹いっぱい。
03/06/01 22:58
再帰だけじゃなくて、
return foo();
みたいのを関数呼び出しからジャンプに変更するとかも含まれんじゃないかな。
367:名無しさん@お腹いっぱい。
03/06/05 23:39
これってヤバイの?
URLリンク(www.iss.net)
368:名無しさん@お腹いっぱい。
03/06/06 15:38
そもそも見慣れない構文なんだが。C99か?
いずれにしても、そんな機能を使ってるプログラムは
まず無いだろうな。
369:名無しさん@お腹いっぱい。
03/07/10 12:53
Debian/sarge使ってます。
g++を3.3.1-0pre0にしたらblitz++がコンパイルできなくなっちゃって、
3.3-2に戻したらコンパイルできるようになりました。
gccが悪いのかblitz++が悪いのかはわかりません。
こういうときはどこかに報告するべき?
370:名無しさん@お腹いっぱい。
03/07/10 13:06
>>369
原因を特定できないのなら、ろくな説明ができないと
思われますので報告は必要ないですね。
特定できるのなら詳細なバグレポートを。
371:名無しさん@お腹いっぱい。
03/07/10 14:08
/* BEGIN-----------
#include<iostream>
#include<fstream>
using namespace std;
int main(){ return 0; }
/* END-------------
というプログラムをFreeBSD5.1のGCC3.2.2でコンパイルしたら
#include<fstream>の部分が原因で、
/usr/include/g++/fstream:304: warning: `typename std::basic_filebuf<_CharT,
_Traits>::int_type' is implicitly a typename
/usr/include/g++/fstream:304: warning: implicit typename is deprecated, please
see the documentation for details
/usr/include/g++/fstream:309: warning: `typename std::basic_filebuf<_CharT,
_Traits>::int_type' is implicitly a typename
/usr/include/g++/fstream:309: warning: implicit typename is deprecated, please
see the documentation for details
というエラーがでます。
GCC2.9.5では何もエラーは起らないのですが、原因知ってる人がいたらおねがいします。
372:名無しさん@お腹いっぱい。
03/07/10 15:06
(´-`).。oO(warningとerrorの区別がつかないDQNがここにもひとり…)
373:名無しさん@お腹いっぱい。
03/07/10 15:12
(´-`).。oO('GCC2.9.5'とは随分若いバージョンを使ってるな)
374:名無しさん@お腹いっぱい。
03/07/10 15:16
(´-`).。oO(それ以前に2.9.xなんてバージョン世間一般に公開されてないだろ)
375:名無しさん@お腹いっぱい。
03/07/10 20:11
>>371
なんか-CURRENTでそんな話読んだ記憶がある。
ヘッダファイルが古いからだったか。
どうせg++3.3に上げるから放置じゃなかったかな。
portsからいれれば問題ない。
>>372
正しいプログラムにwarningが出るのは問題だろ。
C++ってしってる?
376:名無しさん@お腹いっぱい。
03/07/10 22:42
"正しい"プログラムだからこそwarningになるのであって、
"正しくない"プログラムが(errorではなく)warningにしかならないのであれば、
そっちのほうが大問題。
まあ、C++規格のうつろいの激しさを知らないピュアな>>375に乾杯。
377:371
03/07/11 00:34
>"正しい"プログラムだからこそwarningになるのであって、
>
結局このwarningは消せないのでしょうか?
毎回出て来るのは正直ウザいので
378:名無しさん@お腹いっぱい。
03/07/11 00:48
>>377
portsのgcc32かgcc33でもインスコして常にそっちを使うようmake.confで指定しとくとか
379:名無しさん@お腹いっぱい。
03/07/11 01:12
warning
380:名無しさん@お腹いっぱい。
03/07/11 01:21
とりあえずCFLAGSに"-Werror"を付けておけば
warningで悩まされることはなくなる次第
381:名無しさん@お腹いっぱい。
03/07/11 03:58
ワーニング
382:名無しさん@お腹いっぱい。
03/07/11 05:25
>>376
> "正しい"プログラムだからこそwarningになるのであって、
はぁ?ISO/IEC 14882って読んだことありますか?
> まあ、C++規格のうつろいの激しさを知らないピュアな>>375に乾杯。
自分のことだろw
いまだに頭の中がARMなんだろうな…
383:名無しさん@お腹いっぱい。
03/07/11 05:52
非建設的な煽りは御遠慮ください
384:名無しさん@お腹いっぱい。
03/07/11 06:22
>>383
372-384のうち375の前半と378以外は全て非建設的だがな。
385:名無しさん@お腹いっぱい。
03/07/11 09:01
わはは、ピュアな脊髄反射だなあw
んで、マジレスするとISO/IEC 14882には
そもそもここで言うerrorとかwarningという用語は登場しないし、
"正しい"プログラムにdiagnostic messageを出してはいけないとも書いてないわけだが。
386:名無しさん@お腹いっぱい。
03/07/11 11:17
そういう話題はプログラミング板とかでやって。
387:名無しさん@お腹いっぱい。
03/07/11 19:38
プログラミング板ってどこ? >>386=382=375
まあ、FreeBSDなんぞの不具合を延々引っ張られるのも
たしかに迷惑だが。
388:名無しさん@お腹いっぱい。
03/07/11 19:38
>>385
もうやめとけw
389:375
03/07/11 19:40
>>387
本当は375==382==384==388だよ。
390:名無しさん@お腹いっぱい。
03/07/11 20:29
>>385の方がやや劣勢?
391:名無しさん@お腹いっぱい。
03/07/12 09:48
まあ、とりあえず、
> `typename std::basic_filebuf<_CharT, _Traits>::int_type' is implicitly a typename
> implicit typename is deprecated
ちゅうことで。
392:あぼーん
あぼーん
あぼーん
393:名無しさん@お腹いっぱい。
03/07/18 00:42
gcc3.3でmips用が作れない…。
どうしたものか
394:名無しさん@お腹いっぱい。
03/07/18 01:58
>>393
ayamura?
395:名無しさん@お腹いっぱい。
03/07/18 02:32
>>393
エラーはどんなかんじなの?
396:393
03/07/23 01:26
>>395
はい、まず手順から
gcc-3.3.tar.gz,newlib-1.11.0.tar.gz,binutils-2.13.2.1.tar.gzを
ftp.ring.gr.jpからもってくる
~/source/toolchain/以下に展開する。
# binutilsのインストール
cd binutils-2.13.2.1
./configure --prefix=/usr/local/cross --target=mips-embedded-elf
make
su -m
make install
ここで~/.cshrcに手を入れて/usr/local/crossにPATHを通す。
source ~/.cshrc
397:393
03/07/23 01:27
# gccのインストール
cd ,../gcc-3.3
ln -s ../newlib-1.11.0/newlib .
./configure --prefix=/usr/local/cross --target=mips-embedded-elf \
--with-newlib --enable-languages="c,c++"
make (ここでエラー)
xgcc: installation problem, cannot exec `mips-tfile': No such file or directory
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3/gcc
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3/gcc
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3
googleでmips-tflileを検索すると--with-gnu-asをつけた方がよい
との例があったので、それを追加して再チャレンジ
URLリンク(www.spacelan.ne.jp)
(gcc-3.3/ ディレクトリは一度消してやりなおし)
398:393
03/07/23 01:27
make (またエラー)
tiswctype.c ..linked
twctrans.c ..linked
twctype.c ..linked
wctype.exp ..linked
creating cache ../config.cache
configure: error: can not find install-sh or install.sh in .. ./..
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3
ここで力尽きました。(gcc-3.3/ にはinstall-shがあるのに・・・)
399:393
03/07/23 01:30
本当は--enable-sharedと--enable-threadsもつけたいのですが
まず基本をするためにこのように(>>396-398)しました。
ただわからないのは、BSDには自前のlibcがあるのに
newlibが必要なのかと言うところです。
googleで検索するとみんなやり方がばらばらで
調べれば調べるほどどんどんわからなくなっていきます。。。
400:393
03/07/23 01:33
このやり方はgoogleとEmbedde UNIX,、
UNIX USERのGBA特集(--targetの指定の仕方)を参考にしました。
長くなりましたがよろしくお願いします
401:393
03/07/23 01:34
何度もすいません
hostはAthlon-xp1800+(つまりi386)のNetBSDです。
402:名無しさん@お腹いっぱい。
03/07/23 09:58
そんなに苦労して再コンパイルしたって、
目に見えて大きな変化は無いと思うんだけどね。
403:名無しさん@お腹いっぱい。
03/07/23 12:01
install-shをそれっぽいディレクトリにばらまいてみては?
404:名無しさん@お腹いっぱい。
03/07/23 18:06
っていうか、 .. って云ってるんだから gcc-3.3/ じゃなくてその上、
toolchain/ に置けばよさそうな気がする…
昔 cygwin で gcc compile したときも、一つ上に置いてたし。
405:393
03/07/23 22:59
>>402
VR4100シリーズのパイプライン最適化を試してみたいのです。
(GCC-3.3からなので)
効果がなるほどと思える物であれば
この先の3.4とかをプロジェクトに使おうかと・・・。
少しでも性能を上げたいんです、はい。
>>403-404
ではやってみます。
406:名無しさん@お腹いっぱい。
03/07/23 23:47
>>399
> ただわからないのは、BSDには自前のlibcがあるのに
> newlibが必要なのかと言うところです。
自前のlibcなんて、今後放置プレーなんじゃないの?
407:名無しさん@お腹いっぱい。
03/07/24 00:40
>>406
は?
408:名無しさん@お腹いっぱい。
03/07/24 01:27
>>407
夏厨は放置プレーしる
409:名無しさん@お腹いっぱい。
03/07/24 08:20
無知がnewlib使ってGPL汚染ウマー
410:名無しさん@お腹いっぱい。
03/07/24 13:21
newlibってeCosのためのライブラリだと思ってたけど
これって間違ってますか?
411:名無しさん@お腹いっぱい。
03/07/24 13:37
まあもともとは組み込みOS向けのちっこいlibcってことで開発
されたんだろうけど、いまとなってはCygwinが主要ターゲットって
説も…。
412:名無しさん@お腹いっぱい。
03/07/24 14:48
>>410
元になってるだけ。
413:393
03/07/31 21:56
試行錯誤してました。
まず、>>403-404
install.shをばらまくのはどうもだめでした。
ここで途方に暮れること数日・・・・。
そこでNetBSD1.6.1のクロスtoolchainの構築をlogに残して
どんなことやってるのか見てみました。
あと、build.shで作ることの出来るmips用includeファイルと
libを使えば良いんじゃないかと思い
こんなconfigureオプションにしてみました。
binutils
./configure --prefix=/usr/local/cross \
--target=mipsel--netbsd --with-gnu-as --with-gnu-ld \
--disable-nls --disable-shared
gcc-3.3
./configure --prefix=/usr/local/cross \
--target=mipsel--netbsd --with-gnu-as --with-gnu-ld \
--disable-nls --disable-shared \
--with-headers=$mipsel_include_path --with-libs=$mipsel_libs_path
なんとかうまくいきましたが疑問が・・・・・。
このheaderとlibは、あるディレクトリ以下の閉じたソースで
includeファイルをmake時に決めうちする場合
このgcc-3.3でつくるオブジェクトには影響しないんですよね。
つまりはこのheaderとlibはgcc-3.3構築のみに
使われると思ってるんですが・・・
認識あってますでしょうか?
414:393
03/07/31 21:59
あとgcc-3.3のマニュアルには
-mno-half-pic -mhalf-picがあるんですが
しらないオプションと言われるんです。
gccのメーリングリストで見つけました。
昨年の6月に削除されたようです・・・。
そのためNetBSDカーネルコンパイルできない・・・・。
マニュアルアップデートしてないのホントですね
415:名無しさん@お腹いっぱい。
03/08/01 15:25
>>413
libsupc++とか作るときに見るはず。
libgccも見てるっけ?
416:あぼーん
あぼーん
あぼーん
417:名無しさん@お腹いっぱい。
03/08/09 13:53
3.3.1 age
418:あぼーん
あぼーん
あぼーん
419:あぼーん
あぼーん
あぼーん
420:あぼーん
あぼーん
あぼーん
421:名無しさん@お腹いっぱい。
03/09/04 16:21
gccは糞
422:名無しさん@お腹いっぱい。
03/09/04 21:31
お通じありがたし
423:名無しさん@お腹いっぱい。
03/09/05 23:04
gccは糞
424:名無しさん@お腹いっぱい。
03/09/05 23:34
3.4 でまた C++ ABI 変わるってほんと?
425:名無しさん@お腹いっぱい。
03/09/06 12:01
>>424
URLリンク(gcc.gnu.org)
426:名無しさん@お腹いっぱい。
03/10/19 00:30
3.3.2age
427:名無しさん@お腹いっぱい。
03/10/19 20:25
Plamo Linux 2.2.6 上で gcc-3.3.2 をビルドしようとしてるんだが、
$ cd /usr/local/src
$ tar zxf ~/gcc-3.3.2.tar.gz
$ mkdir gccobj
$ cd gccobj
$ ../gcc-3.3.2/configure --prefix=/usr
$ make bootstrap
/bin/sh ./libtool --tag=CXX --mode=link /usr/local/src/gccobj/gcc/xgcc -shared-l
ibgcc -B/usr/local/src/gccobj/gcc/ -nostdinc++ -L/usr/local/src/gccobj/i686-pc-
linux-gnu/libstdc++-v3/src -L/usr/local/src/gccobj/i686-pc-linux-gnu/libstdc++-v
3/src/.libs -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem
/usr/i686-pc-linux-gnu/include -L/usr/local/src/gccobj/i686-pc-linux-gnu/libjav
a -ffloat-store -g -O2 -o libgcj.la -objectlist libgcj.objectlist \
../boehm-gc/libgcjgc_convenience.la ../libffi/libffi_convenience.la ../zlib/libz
gcj_convenience.la \
-rpath /usr/lib/. -rpath /usr/lib/. -lpthread ./libltdl/libltdlc.la -version-i
nfo `grep -v '^#' ../../../gcc-3.3.2/libjava/libtool-version`
ここでループしちゃって帰ってこない。
なんでだろ?
428:名無しさん@お腹いっぱい。
03/10/20 04:10
>>427
> ここでループしちゃって帰ってこない。
> なんでだろ?
まちつづけることが重要です。
429:427
03/10/20 11:59
>>428
修行がたりませんでした。
いい子にして待ちます。
ども。
430:427
03/10/21 14:08
長い...。
24 時間たっても終わらないよぅ(Celeron 1.4GHz)。
431:427
03/10/21 15:44
終わった...。
26 時間ばかりかかったです。
こーゆーのを見ると旧式になったのだなぁと思ふ。
432:名無しさん@お腹いっぱい。
03/10/21 21:38
世間ではCeleron 1.4GHzで旧式なのか...........
433:427
03/10/21 22:13
いや、俺もそんなことはないと思いたいのだが、
1アプリにすぎない gcc のビルドに丸1日かかっちゃうと
ちょっと切ない気持ちになる。
フツーに使う分には十分な性能なんだがな。
434: ◆Ir5kue8F32
03/10/21 22:16
>>431
gmake -j 2 bootstrap
とかしてる?
435: ◆Ir5kue8F32
03/10/21 22:19
Status of processor 1 as of: 10/21/03 22:19:15
Processor has been on-line since 10/20/03 02:54:11.
The sparcv9 processor operates at 296 MHz,
and has a sparcv9 floating point processor.
Status of processor 3 as of: 10/21/03 22:19:15
Processor has been on-line since 10/20/03 02:54:12.
The sparcv9 processor operates at 296 MHz,
and has a sparcv9 floating point processor.
というマシンで今からビルドしてみます。
とれくらいかかるかな?
436:名無しさん@お腹いっぱい。
03/10/21 22:21
書きわすれた。
>>427
java で馬鹿みたいに時間喰ってるので、java を使用しないのであれば、
--enable-languages="c,c++,f77,objc,ada"
でかなり時間を節約できます。
437:名無しさん@お腹いっぱい。
03/10/21 22:41
漏れは--enable-languages=c,c++だけだな
438:名無しさん@お腹いっぱい。
03/10/22 00:01
libgcc_s.soをdynamic linkされるのがうっとおしいので
いつもspecsファイルを手で変更しているのですが、./configure
のオプションなどで変更できるのでしょうか?
439: ◆Ir5kue8F32
03/10/22 02:30
>>438
--disable-shared
440:名無しさん@お腹いっぱい。
03/10/22 11:51
>>435
03:38 に終わっていました。
一日もかかりませんでした。
441:427
03/10/22 14:48
あー、何も考えないで 427 の手順のままやっちまったよ。
>>434
CPU 1個のシステムでも結構効果上がる?
つか、試してみます。
>>436
ですね。
今までこんなに時間がかかったことがなかったから
ちとびっくりした。
3.3 のときはせいぜい数時間だったような。
442:438
03/10/22 23:29
>>439 THX
443:名無しさん@お腹いっぱい。
03/10/23 12:24
>>441
なんとなくメモリ不足でスラッシング起こしているんでは?
とか思ってみる。
444: ◆Ir5kue8F32
03/10/23 19:29
>>442
ちなみに、既にインストールされているものは手動で消さなきゃだめ。
445:名無しさん@お腹いっぱい。
03/11/01 17:38
H8用cross、未だ3.0.3+平田patchを超えられず(;´Д`)
446:名無しさん@お腹いっぱい。
03/11/02 02:19
うちのSS5だとどれ位かかるかな…
447:名無しさん@お腹いっぱい。
03/11/02 19:33
>>445
そうかなあ?
たしかに謎な挙動が結構あるが。
そういえば3.4は最適化がちょっと強化されるらしい。
448:名無しさん@お腹いっぱい。
03/11/02 21:54
3.4 はまた C++ ABI が変わるんだとか...
449:名無しさん@お腹いっぱい。
03/11/02 23:13
ヽ(`Д´)ノ
450:名無しさん@お腹いっぱい。
03/11/09 03:43
Solaris で、マルチスレッドのコンパイル&リンクするときって、どうやるの?
451:名無しさん@お腹いっぱい。
03/11/09 07:45
#define _REENTRANT
#include <pthread.h>
#include <thread.h>
Sunのcc: -mt ... -lpthread [必要ならば -lrt]
gcc: -pthread ... -lpthread [必要ならば -lrt]
452:名無しさん@お腹いっぱい。
03/11/09 07:51
gccはoption無しで大丈夫。
453:名無しさん@お腹いっぱい。
03/11/16 09:20
make age
454:オブジェクト指向促進運動
03/11/16 21:12
IT業界にアージャイル開発とデザインパターンを広めよう!
C言語を使ってかなり苦労したので
その苦労を最小限におさえるために
アージャイル開発、デザインパターンを
多くのプログラマに使って欲しいと思うことがある。
一種の挨拶みたいなものだね。
「なるべく挨拶を心がけましょう。」
「なるべき綺麗な字で書きましょう。」
のように
デザインパターンを使うこと、アージャイル開発することが
プログラマの習慣、常識になってほしい。
なんとか、デザインパターン文化、アージャイル開発文化を押し広げられたら・・・。
IT業界の将来はオブジェクト指向とアージャイル開発が握っています!
455:名無しさん@お腹いっぱい。
03/11/17 02:48
オブジェクト指向==デザパタですか。ずいぶん視野の狭いお話で。
456:名無しさん@お腹いっぱい。
03/11/17 10:17
いまだに2.95ですが何か
457:名無しさん@お腹いっぱい。
03/11/17 13:36
>>456
ちんぽむけてますか?
458:名無しさん@お腹いっぱい。
03/12/06 20:10
俺的にさっさとlispのコンパイラ作って欲しい
459:名無しさん@お腹いっぱい。
03/12/07 08:03
Gnu is Not Unix
RMSおよびGNUはUNIX市場をぶち壊すことがその目的です。
LISP,関数型言語の繁栄のために日夜努力されているのです。
Allegroの商圏を踏み荒らすような真似をするはずも
ありません。
460:名無しさん@お腹いっぱい。
03/12/12 23:13
anonymous cvs server落ちてる?
461:名無しさん@お腹いっぱい。
03/12/18 17:56
ここ最近ずっとおかしくない?
462:名無しさん@お腹いっぱい。
03/12/19 07:53
うん、gnu.orgのCVS serverおかしい
463:名無しさん@お腹いっぱい。
03/12/19 18:28
まあg++の作業はちょっと遅れてるっぽいし、
3.3の完成度は高いから、2年ぐらいは
新規のリリースなしでもいいかな~なんて。
464:名無しさん@お腹いっぱい。
04/01/24 00:53
gcc 3.4 って、cc1 とか collect2 が /usr/libexec に移動しているね。
それと /usr/lib/gcc-lib が /usr/lib/gcc になってた。
465:名無しさん@お腹いっぱい。
04/01/24 05:44
WE LOVE GCC!!!
466:名無しさん@お腹いっぱい。
04/01/26 20:47
>>463
そろそろ3.4.0Releaseという噂が聞こえてきましたよ…
467:461
04/01/29 22:22
>>462
できればrsyncだけでなくcvsupとかも動かしてくれるとディスクを
たくさんガリガリやらなくて済むんだけどな。
468:名無しさん@お腹いっぱい。
04/02/08 12:38
このスレの温度
| |- 20
| |
| |- 10
| |
| |- 0
| |
| |- -10 ∧_∧
|┃| (´∀` )
|┃| ( )
. (●) | | |
 ̄ (_(__)
469:名無しさん@お腹いっぱい。
04/02/12 03:05
3.3の完成度は高いのか....(泣)
insn:HI 2040 2044 3203 137 ff01ebc0 (set (reg:DI 31 %i7 [32])
(fix:DI (fix:DF (reg:DF 32 %f0 [647])))) 166 {fix_truncdfdi2} (insn_list 2037 (nil))
(nil))
exif.c:673: internal compiler error: in reload_cse_simplify_operands, at reload1.c:8345
完全なバグ報告を送って下さい。
適切ならばプリプロセス後のソースをつけてください。
<URL:URLリンク(gcc.gnu.org) を見れば方法が書いてあります。
gmake: *** [exif.o] Error 1
bash-2.05$ gcc -v
/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.9/3.3.2/specs から spec を読み込み中
コンフィグオプション: ../gcc-3.3.2/configure --prefix=/opt/gnu --enable-languages=c,c++
スレッドモデル: posix
gcc バージョン 3.3.2
470:名無しさん@お腹いっぱい。
04/02/12 14:04
漏れは3つ位出したぞ。sparcじゃないけど。
マイナーなアーキテクチャの宿命だ。
メンテナが頑張ってくれているので消えることは無さそうだが。
471:名無しさん@お腹いっぱい。
04/02/13 09:49
少しぐらいのバギー加減は、ユーザーにコンパイラの内部動作に
関心持ってもらうためには必要だと思われ。とかいってみる。
472:名無しさん@お腹いっぱい。
04/02/15 03:50
>>471
emacs-21.3をleim入れてコンパイルしたら使い物にならないバイナリを吐くのも
啓発のためっすか?(泣)
最初 big-5 あたりでcore吐いていたので configure と Makefile いじれば
なんとかなるかと思って色々やってみたんだけど...
結局 3.2.3 にダウングレードしちゃった。手持ちソースではこちらの方が安定
しているみたいだし。
473:名無しさん@お腹いっぱい。
04/02/15 10:02
>>472
Emacs current つかいなよ。
474:名無しさん@お腹いっぱい。
04/04/16 01:51
いつの間にか 3.3.3 出てるのな。
アーカイブのディレクトリ構成かわってて気づかなかった。
475: ◆ieqrh9GF7Y
04/04/18 11:20
gccの挙動に関しての質問てどこに投げればいいの?
gcc-help ?
因みに質問は以下のコードをコンパイルすると if の部分
がなくなるのはなぜ?ってことなんだけど。
int hoge(signed char ch)
{
if ((unsigned short)ch > 127)
return 0;
return 1;
}
476:名無しさん@お腹いっぱい。
04/04/18 11:33
くだらない質問はここに書き込め!なんでもアリ32
スレリンク(unix板)
エスパーが次の人にアドバイスするスレ
スレリンク(unix板)
477:名無しさん@お腹いっぱい。
04/04/18 12:49
(キミのプラットフォームでは) signed char が取り得る範囲が -128~
127 で、その if は常に false でそ。
478:名無しさん@お腹いっぱい。
04/04/18 13:12
charが1byteではない。もしくは
-128から127っていう範囲でないっていう環境はあるの?
479:名無しさん@お腹いっぱい。
04/04/18 13:43
いまだにOpenBSD上でgcc2.95系使ってる俺って…
480:名無しさん@お腹いっぱい。
04/04/18 14:09
>>477
その説明はおかしい。
unsigned short にキャストしているから、
たとえば ch が -128 なら
(unsigned short の最大の値+1)-128になる。
大抵の環境で、unsigned short の最大の値は 127 より大きいので、
(unsigned short)ch は 127 よりおおきい値になり得る。
>>475
gccの問題のようですね。比較の相手を127でなくて1にしても
同じ症状が出ますから、charの範囲、という問題でもない。
481:名無しさん@お腹いっぱい。
04/04/18 14:54
>>480
> 大抵の環境で、unsigned short の最大の値は 127 より大きいので、
> (unsigned short)ch は 127 よりおおきい値になり得る。
そこで止まっちゃだめだよ。
もしch = -128だったら、unsigned shortにキャストした段階で符号ビットを
延長するので左辺は1...10000000。一方、右辺は整数定数127。これはサフィ
クスがない10進数でintで表現しきれるのでintとして扱われる。
比較演算子の左辺はunsigned short、右辺はintだから、演算を適用する前に
両方ともintへキャストされる。intはunsigned shortより小さいことはないか
ら、左辺のビットパターンはそのまま。よって最初のchが負の値の場合、キャ
スト後のintとしての左辺も必ず負の値になるので、この条件文は常に偽。
482:名無しさん@お腹いっぱい。
04/04/18 15:01
>>481
感動した
483:名無しさん@お腹いっぱい。
04/04/18 15:27
>>481
> intとしての左辺も必ず負の値になるので
なりませんよ。
signedをunsignedにしたばあい、unsignedの範囲に入るようにunsignedの最大値+1を
必要な回数だけ加算する。singed char -1をunsigned shortにした場合USHRT_MAXになる。
つぎに、int以下の整数演算はintに格上げされて演算される(右辺がintでなくても格上
げされる)が、値保存で変換されるのでUSHRT_MAXのまま。
unsigned shortがintより範囲が広い場合、両辺がunsigned shortに変換されて比較されるので、
結果は同じ。
484:名無しさん@お腹いっぱい。
04/04/18 15:32
>>481
ちがう。ch=-128 (10000000) で
unsigned short が 16 ビットだとしたら、
左辺は 1111111110000000 になる。これを int (符号付き)
に promote (キャストではない) させる。
int が 32 bit だとしても、unsigned short からの
変換だから、左に 1 は補われない。ゆえに、
00000000000000001111111110000000
になる。
485:名無しさん@お腹いっぱい。
04/04/18 15:46
>>475
if ((unsigned int)ch > 127)
にしる。
どうしても unsigned short で比較したい場合は
右辺も unsigned short の入れ物に入れる。
486:名無しさん@お腹いっぱい。
04/04/18 15:53
unsigned shortにキャストする意味って何?
487:名無しさん@お腹いっぱい。
04/04/18 16:13
プログラムの意図が全くわからんな。
int hoge(signed char ch)
{
return ch >= 0;
}
ってやりたいわけ?
488:名無しさん@お腹いっぱい。
04/04/18 16:20
gcc の中の人も大変だな。
489:名無しさん@お腹いっぱい。
04/04/18 16:45
signed charなんてものを作った奴は腹かっさばいてお詫びしろや。
490:名無しさん@お腹いっぱい。
04/04/18 17:47
符合付き8bit整数はごく普通のデータ型ですよ。
8080とかね。
491:名無しさん@お腹いっぱい。
04/04/18 18:08
つーか最初にchar をungigned なoctet にした奴に栄光あれ、だな。
492:名無しさん@お腹いっぱい。
04/04/18 21:09
規格上はどっちでもいいよ。
signed char, unsigned charと同じ値を持たなくてもいいし。
493: ◆ieqrh9GF7Y
04/04/18 22:49
例はバグを簡略化したものです。
>>484 同じ解釈です。
>>480 gcc の問題とすると報告すべきはどこ? <- 元の質問の意図
127 を 128 にすると、if は残る。逆に gcc -O0 で作っても
if 部分は影も形もなくなるので、Optimizer の仕業ではなく、
C言語仕様解釈の問題だと思ってる。
494:名無しさん@お腹いっぱい。
04/04/18 23:12
URLリンク(gcc.gnu.org)
495:名無しさん@お腹いっぱい。
04/04/19 01:14
このプログラムのほうが問題点が明確になるかな。
i は明らかに 1より大きいのに、それを1と比較すると0になる。
-O0でも同じ。 gcc2.95.4だと期待した通りになる。
#include <stdio.h>
main()
{
char c = -128;
int f, i;
i = (unsigned short) c;
f = (unsigned short) c > 1;
printf("i => %d, i>1 => %d\n", i, f);
}
496:名無しさん@お腹いっぱい。
04/04/19 01:49
些細なことですが return 0; しとこうね。
497:名無しさん@お腹いっぱい。
04/04/19 03:58
precompiled header に魅かれてgcc3.4インストールしたのに
>sorry, unimplemented: had to relocate PCH
って言われた。
どういうことじゃヽ(`Д´)ノ
498:名無しさん@お腹いっぱい。
04/04/19 07:01
>>495-496
C99では明示的にreturn 0;を書く必要はありませんね。
まあ gcc2.95.4 には関係ないことでしょうけど。
499:名無しさん@お腹いっぱい。
04/04/19 07:48
>>478
SHARC/TigerSHARC は char は32bitですよ。
こいつはGCCが標準コンパイラです。
500:名無しさん@お腹いっぱい。
04/04/19 10:12
じゃ、shortも32bitなんだ
501:名無しさん@お腹いっぱい。
04/04/19 10:29
>>495を、
gcc -c -O -dra foo.c すると、"ce1"の後に消える。
gcc -c -O0 -dra foo.c すると、なぜかcompareは残ったままだね。
"mach"の後で消えてるのかな。
502:名無しさん@お腹いっぱい。
04/04/20 00:29
>>500
鋭いですね、そうですよ。
で、sizeof( 整数の型名 ) するとどれも1が返ってきてあせる(笑)
バイトアドレシッシングじゃなくてワードアドレッシングだからこれで正解なんだろうけど
503:名無しさん@お腹いっぱい。
04/04/20 00:53
BCPLかよ!?
504:名無しさん@お腹いっぱい。
04/04/20 17:46
よく分かんないんだけど、つまりCHAR_BITSが32ってこと?
505:名無しさん@お腹いっぱい。
04/04/21 21:18
3.4.0 release sage
506:名無しさん@お腹いっぱい。
04/04/21 21:45
>>505
gccの公式ページよりdistrowatchの方が早くアナウンスしてたのには
驚いた。
まだ使うにはたぶん危険だよね?パフォーマンスはアップしてるのかな?
507:名無しさん@お腹いっぱい。
04/04/21 22:00
危険大好き
508:名無しさん@お腹いっぱい。
04/04/21 23:01
>The cast-as-lvalue extension has been removed for C++ and deprecated for C and Objective-C.
これってANSIかなんかの規格がそうなってるのかな?
ときどき使ってるからちょと痛い
509:名無しさん@お腹いっぱい。
04/04/21 23:04
URLリンク(gcc.gnu.org)
510:名無しさん@お腹いっぱい。
04/04/22 07:37
ミラー逝きわたるっていったいどこを泳いでるの?
全然見当たらないんだけど。
511:名無しさん@お腹いっぱい。
04/04/22 07:51
URLリンク(gcc.gnu.org)ってことだからなぁ
512:名無しさん@お腹いっぱい。
04/04/22 13:19
>>510
一昨日にはもう ftp.iij.ad.jp にあったぞ。
513:名無しさん@お腹いっぱい。
04/04/22 13:54
ringも来てるところはある。
514:名無しさん@お腹いっぱい。
04/04/22 14:32
そんなことより3.3.3はなんで沈没してるんだ
515:名無しさん@お腹いっぱい。
04/04/22 19:05
gccは3.3.3が最高傑作。とか後々までかたられるでしょう。
516:名無しさん@お腹いっぱい。
04/04/22 22:16
>>515
なんだって~(AA略)
517:名無しさん@お腹いっぱい。
04/04/22 23:02
騙られる、だったりして
518:名無しさん@お腹いっぱい。
04/04/23 18:10
>>495の3.4.0だとfは1になってる。
519:名無しさん@お腹いっぱい。
04/04/30 01:16
>>508
3.4.0でのビルドを試して見ましたが、3.3以前でOKだった、幾つかの作法の悪いプログラムは全滅ですね。
丁寧に直せばいいんでしょうけどね…
520:名無しさん@お腹いっぱい。
04/04/30 02:40
3.5からはCもエラーにするらしい。
早めに直しておきませう。
521:名無しさん@お腹いっぱい。
04/04/30 04:43
縛りがきつい方が有難い。
522:名無しさん@お腹いっぱい。
04/04/30 09:00
きついのに血行を妨げないのがプロの縛り方
523:名無しさん@お腹いっぱい。
04/04/30 14:36
nmしたときやg++ -Sしたときに、コンストラクタやデストラクタに
Foo::Foo[in-charge]() のように[なんちゃら]と注釈が入っている場合がありますけど、
これって何ですか?どこかに解説ありませんか?
in-charge, not-in-charge, in-charge deleting などがあるようで...
524:名無しさん@お腹いっぱい。
04/05/02 12:37
ドスドスドスドス
この洗いを作ったのは誰だぁ!!
525:名無しさん@お腹いっぱい。
04/05/02 22:44
雄山?
526:名無しさん@お腹いっぱい。
04/05/03 18:17
だな。
527:名無しさん@お腹いっぱい。
04/05/04 07:54
>>523
$(GCC)/gcc/cp/decl2.c
/* Constructors for types with virtual baseclasses need an "in-charge" flag
saying whether this constructor is responsible for initialization of
virtual baseclasses or not. All destructors also need this "in-charge"
flag, which additionally determines whether or not the destructor should
free the memory for the object.
$(GCC)/gcc/cp/mangle.c
/* Handle destructor productions of non-terminal <special-name>.
DTOR is a destructor FUNCTION_DECL.
<special-name> ::= D0 # deleting (in-charge) destructor
::= D1 # complete object (in-charge) destructor
::= D2 # base object (not-in-charge) destructor
528:名無しさん@お腹いっぱい。
04/06/24 19:20
>>522
めちゃワロタ
529:名無しさん@お腹いっぱい。
04/07/01 01:16
gcc3.3.4のチャンゲログが無いですがな
530:名無しさん@お腹いっぱい。
04/07/01 01:33
3.x はバージョン進むのが早いな。
531:名無しさん@お腹いっぱい。
04/08/01 17:52
ICEってかっこいい響きだよな
532:名無しさん@お腹いっぱい。
04/08/01 19:49
ドイツの新幹線もICE
533:名無しさん@お腹いっぱい。
04/08/01 22:35
Inter City Express というのか。
In-Circuit Emurator
Internal Compiler Error
あとは?
534:名無しさん@お腹いっぱい。
04/08/01 22:57
X11のInter-Client Exchange protocolもな
535:名無しさん@お腹いっぱい。
04/08/01 23:21
Integral
Cool
Energy
536:名無しさん@お腹いっぱい。
04/09/09 18:35
Solaris9で、バイナリーのgcc-3.4.1をインスコしたら
ld.so.1: gcc: 重大なエラー: libiconv.so.2: open に失敗しました: ファイルもディレクトリもありません。
強制終了
となってしまいます。
2台やって2台とも同じでした。
iconvのバイナリーってどこで入手できますか?
537:名無しさん@お腹いっぱい。
04/09/09 18:38
>>536
おんなじとこにあるべ
538:名無しさん@お腹いっぱい。
04/09/10 01:24
GCC 3.4.2 age
539:名無しさん@お腹いっぱい。
04/09/22 01:13:44
>>536
Bruno Haible
540:名無しさん@お腹いっぱい。
04/09/25 12:21:56
3.4.1 から 3.4.2 に上げたら生成されるバイナリが
libgcc_s.so.1 をリンクするようになった。
このへん何か変わった?
541:名無しさん@お腹いっぱい。
04/09/25 13:20:19
うん。
542:名無しさん@お腹いっぱい。
04/10/01 08:30:58
GCC 4.0のおいしいところは?
543:名無しさん@お腹いっぱい。
04/10/01 10:08:14
スパイスが効いているところ。
544:名無しさん@お腹いっぱい。
04/10/13 08:31:24
ひどいめにあわすよ
545:名無しさん@お腹いっぱい。
04/10/27 05:40:08
プリコンパイルヘッダの作り方は
gcc /usr/include/**/*.h
でいいんだっけ?
546:名無しさん@お腹いっぱい。
04/10/28 00:19:18
URLリンク(gcc.gnu.org)
547:名無しさん@お腹いっぱい。
04/11/08 14:30:31
Reading specs from /usr/local/lib/gcc/sparc-sun-solaris2.9/3.4.3/specs
Configured with: ../gcc-3.4.3/configure --disable-nls
Thread model: posix
gcc version 3.4.3
548:名無しさん@お腹いっぱい。
04/11/09 09:00:50
さてGCC4のリリースも近づきつつある今日この頃。
自分はこまめにビルド・チェックするほどの追っかけじゃなかったけど、GCC3というプロダクトはどのような評価に値する物だったのでしょか。
漏れには、伽藍時代よりテンポ良くリリースされていった分、各Linuxディストロもそれに振り回されてたような印象が。
あとGCC3は、例えば2.95.xや2.7.2.3並みに安定感のあるリリースがなされてたのでしょうか。
よろしければみんなの御意見、どぞ。
549:名無しさん@お腹いっぱい。
04/11/09 09:12:56
g++のC++規格追従上、3.X以外に考えられない。
550:名無しさん@お腹いっぱい。
04/11/09 11:45:48
3.4系はほとんど使われないまま4.0に移行しそうな予感が。
551:名無しさん@お腹いっぱい。
04/11/15 23:45:48
いまだに 2.95.x だよ。もう 4.x の足音が聞こえるような時期なのか。
552:名無しさん@お腹いっぱい。
04/11/27 00:28:14
神ID
スレリンク(northa板:2番)
2:名無しさん []:04/11/27 00:26:40 ID:LIqjWGCC
逃げっと
553:名無しさん@お腹いっぱい。
05/01/27 12:55:20
あげ
554:名無しさん@お腹いっぱい。
05/01/27 15:15:15
gcc-4.0 が出るまでにこのスレを使いきろう…
555:名無しさん@お腹いっぱい。
05/01/27 17:29:04
いつ出るのさ
556:名無しさん@お腹いっぱい。
05/01/27 21:02:08
>>555
予定では近いうちに出るはずだが。
漏れ的にはsh-elfの-m2aが腐っているぽいのでもう少し待ってほしい所ですな。
557:名無しさん@お腹いっぱい。
05/01/27 22:05:24
(´-`).。oO(Unix板にGCCって必要なんだろうか。。。)
558:名無しさん@お腹いっぱい。
05/01/28 18:09:11
>>557
必要ないの?
559:名無しさん@お腹いっぱい。
05/02/04 14:34:09
gcc.gnu.orgがHDDあぼーんしたらしい。
560:名無しさん@お腹いっぱい。
05/02/04 21:28:00
>>559
そうらしいね。
なんかファイルシステムに問題あったらしいよ。
現在、復旧中らしい。
561:名無しさん@お腹いっぱい。
05/02/04 21:31:39
反GPLな奴らのアタック
562:名無しさん@お腹いっぱい。
05/02/05 02:29:14
アナウンスが来てから12時間ほど経ったが…まだ復旧してないのか。
これは長引きそうだな。
まあ急ぐ用事も無いから別に構わんが。
563:名無しさん@お腹いっぱい。
05/02/08 22:08:57
4.0で新しくなる項目だとよ
What will be in 4.0
URLリンク(gcc.gnu.org)
564:名無しさん@お腹いっぱい。
05/04/22 11:05:39
gcc-4.0 が出たらしいですが、スレ違いでしょうか
565:名無しさん@お腹いっぱい。
05/04/22 12:32:04
びみょー
566:名無しさん@お腹いっぱい。
05/04/27 13:50:34
gcc-4.0 で fortran を使うにはどうしたらよいでしょうか?
567:名無しさん@お腹いっぱい。
05/04/27 13:54:41
>>566
スレタイ見ろよ。
スレ違いもいいとこだろが。
ったく。
568:名無しさん@お腹いっぱい。
05/04/27 14:39:07
>>567
>>563
569:名無しさん@お腹いっぱい。
05/04/27 14:42:23
GCC 3.0がリリーナされるのはいつですか?
570:名無しさん@お腹いっぱい。
05/04/28 00:03:01
3と4は別スレじゃなくてもいいんじゃね?
571:名無しさん@お腹いっぱい。
05/04/28 00:29:45
しっかし、このスレ息長すぎー。
4年近く存在するのか。
572:名無しさん@お腹いっぱい。
05/04/28 13:39:53
遅蒔きながら、祝・GCC 4.0リリース。
gcc.gnu.org/gcc-4.0/changes.html とかは当然読んだんだけれど、他のサイトでリリースに対する反応があったらURLコピペぷりーず。
573:名無しさん@お腹いっぱい。
05/04/28 18:29:22
とりあえず /. の記事。
GCC 4.0.0 Released
URLリンク(developers.slashdot.org)
GCC 4.0.0リリース
URLリンク(slashdot.jp)
574:名無しさん@お腹いっぱい。
05/05/03 22:28:44
A Review of GCC 4.0
URLリンク(developers.slashdot.org)
575:名無しさん@お腹いっぱい。
05/05/05 20:16:14
GCC 4.0
A Review for AMD and Intel Processors
URLリンク(www.coyotegulch.com)
576:名無しさん@お腹いっぱい。
05/05/05 20:27:58
しまった。>>574 の元記事だったか。
577:名無しさん@お腹いっぱい。
05/05/14 05:43:22
いまだにgcc-2を使っていますが何か?
578:名無しさん@お腹いっぱい。
05/05/14 09:18:39
>>577
ニートですか?
579:名無しさん@お腹いっぱい。
05/05/14 10:53:11
ABIを変えたら負けだとおもってる。
gcc2.95を使ってる自分は勝ってるとおもいます。
580:名無しさん@お腹いっぱい。
05/05/18 16:11:20
むぅ……。gcc-4.0.0 で rrdtool を作れない。
3.4.3 で作れたから困りゃしないんだけど。Solaris10。
checking if IEEE math works out of the box... no
checking if IEEE math works with the -ieee switch... no
checking if IEEE math works with the -qfloat=nofold switch... no
checking if IEEE math works with the -w -qflttrap=enable:zerodivide... no
checking if IEEE math works with the -mieee switch... no
checking if IEEE math works with the -q float=rndsngl switch... no
checking if IEEE math works with the -OPT:IEEE_NaN_inf=ON switch... no
checking if IEEE math works with the -OPT:IEEE_comparisons=ON switch... no
checking if IEEE math works with fpsetmask(0)... no
checking if IEEE math works with signal(SIGFPE,SIG_IGN)... no
configure: error:
Your Compiler does not do propper IEEE math ... Please find out how to
make IEEE math work with your compiler and let me know (oetiker@ee.ethz.ch).
Check config.log to see what went wrong ...
581:名無しさん@お腹いっぱい。
05/05/18 17:40:26
むぅ……。top-3.5.1 もコケた。gcc-3.4.3 なら問題なし。
4.0 はまだ手を出すべきじゃないのかしらん。
582:名無しさん@お腹いっぱい。
05/05/18 17:48:58
バグレポートしろよ
583:名無しさん@お腹いっぱい。
05/05/18 18:40:57
そうなんだけど、プログラムは専門外だから
ソースが悪いのかコンパイラが悪いのか切り分けできないんだもん。
584:名無しさん@お腹いっぱい。
05/05/18 18:55:07
>>583
切り分けは developer にしてもらえばよいのでは?
URLリンク(news.gmane.org)
585:名無しさん@お腹いっぱい。
05/05/21 11:32:27
gcc 3.4.4出ましたよ。今のところ、これが一番安全パイ?
586:名無しさん@お腹いっぱい。
05/05/22 15:35:41
3.3.5じゃない?
587:名無しさん@お腹いっぱい。
05/05/22 16:21:34
3.3.6じゃなくて?
588:名無しさん@お腹いっぱい。
05/05/22 17:59:47
うちも 3.3.6
589:名無しさん@お腹いっぱい。
05/05/23 13:47:26
2.95.2
590:名無しさん@お腹いっぱい。
05/05/23 17:04:54
2.95.3 じゃなくてーってなんかもう話題ないんか
591:名無しさん@お腹いっぱい。
05/05/25 22:25:32
m68kでi*86のクロスとか、変なことしてる奴いるけ?
592:名無しさん@お腹いっぱい。
05/05/25 23:26:56
いるけ?
593:名無しさん@お腹いっぱい。
05/05/25 23:38:09
URLリンク(www.motenai.net)
594:名無しさん@お腹いっぱい。
05/06/19 19:03:22
アホみたいにメモリ喰うようになったな。
おれがdjgccで1.3Xとか使ってた頃は(以下略・・・
595:名無しさん@お腹いっぱい。
05/06/19 19:49:04
なんだいないのけ.
596:名無しさん@お腹いっぱい。
05/06/19 20:03:25
惰性で見てるよこのスレ。
gcc が出たころは衝撃だったなー。
売りもんのコンパイラよりいい最適化コード吐くし、
gcc のソースコードとかマニュアルとか読んでぞくぞくしてた。
597:名無しさん@お腹いっぱい。
05/06/20 00:19:58
>>596
スパーハッカキタ━(゜∀゜)━( ゜∀)━( ゜)━( )━(゜ )━(∀゜ )━(゜∀゜)━!!!!
598:名無しさん@お腹いっぱい。
05/06/20 06:57:20
gccはANSI Cを使うためだけに入れました。バージョン忘れた。