祝・GCC 3.0リリース

■ このスレッドは過去ログ倉庫に格納されています
1さあね
垢版 |
NGNG
 一昔前は、そこらの商用コンパイラよりも良い最適化をする
といわれたGCCも最近は色あせてきてたけど。。。
 待望の新バージョンリリースで巻き返しなるか?

 とりあえずインストールしてみよう
NGNG
まあg++の作業はちょっと遅れてるっぽいし、
3.3の完成度は高いから、2年ぐらいは
新規のリリースなしでもいいかな〜なんて。
NGNG
gcc 3.4 って、cc1 とか collect2 が /usr/libexec に移動しているね。
それと /usr/lib/gcc-lib が /usr/lib/gcc になってた。
465名無しさん@お腹いっぱい。
垢版 |
NGNG
WE LOVE GCC!!!
NGNG
>>463
そろそろ3.4.0Releaseという噂が聞こえてきましたよ…
467461
垢版 |
NGNG
>>462
できればrsyncだけでなくcvsupとかも動かしてくれるとディスクを
たくさんガリガリやらなくて済むんだけどな。
468名無しさん@お腹いっぱい。
垢版 |
NGNG
このスレの温度

 |  |- 20
 |  |
 |  |- 10
 |  |
 |  |-  0
 |  |
 |  |- -10  ∧_∧
 |┃|       (´∀` )
 |┃|       (    )
. (●)     | | |
   ̄     (_(__)
469名無しさん@お腹いっぱい。
垢版 |
NGNG
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:http://gcc.gnu.org/bugs.html>; を見れば方法が書いてあります。
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
NGNG
漏れは3つ位出したぞ。sparcじゃないけど。
マイナーなアーキテクチャの宿命だ。
メンテナが頑張ってくれているので消えることは無さそうだが。
NGNG
少しぐらいのバギー加減は、ユーザーにコンパイラの内部動作に
関心持ってもらうためには必要だと思われ。とかいってみる。
NGNG
>>471
emacs-21.3をleim入れてコンパイルしたら使い物にならないバイナリを吐くのも
啓発のためっすか?(泣)

最初 big-5 あたりでcore吐いていたので configure と Makefile いじれば
なんとかなるかと思って色々やってみたんだけど...

結局 3.2.3 にダウングレードしちゃった。手持ちソースではこちらの方が安定
しているみたいだし。
NGNG
>>472
Emacs current つかいなよ。
NGNG
いつの間にか 3.3.3 出てるのな。
アーカイブのディレクトリ構成かわってて気づかなかった。
475 ◆ieqrh9GF7Y
垢版 |
NGNG
gccの挙動に関しての質問てどこに投げればいいの?
gcc-help ?
因みに質問は以下のコードをコンパイルすると if の部分
がなくなるのはなぜ?ってことなんだけど。

int hoge(signed char ch)
{
if ((unsigned short)ch > 127)
return 0;
return 1;
}
NGNG
くだらない質問はここに書き込め!なんでもアリ32
http://pc3.2ch.net/test/read.cgi/unix/1079699147/

エスパーが次の人にアドバイスするスレ
http://pc3.2ch.net/test/read.cgi/unix/1081522053/
NGNG
(キミのプラットフォームでは) signed char が取り得る範囲が -128〜
127 で、その if は常に false でそ。
NGNG
charが1byteではない。もしくは
-128から127っていう範囲でないっていう環境はあるの?
479名無しさん@お腹いっぱい。
垢版 |
NGNG
いまだにOpenBSD上でgcc2.95系使ってる俺って…
NGNG
>>477
その説明はおかしい。
unsigned short にキャストしているから、
たとえば ch が -128 なら
(unsigned short の最大の値+1)-128になる。
大抵の環境で、unsigned short の最大の値は 127 より大きいので、
(unsigned short)ch は 127 よりおおきい値になり得る。
>>475
gccの問題のようですね。比較の相手を127でなくて1にしても
同じ症状が出ますから、charの範囲、という問題でもない。
NGNG
>>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としての左辺も必ず負の値になるので、この条件文は常に偽。
NGNG
>>481
感動した
NGNG
>>481
> intとしての左辺も必ず負の値になるので

なりませんよ。
signedをunsignedにしたばあい、unsignedの範囲に入るようにunsignedの最大値+1を
必要な回数だけ加算する。singed char -1をunsigned shortにした場合USHRT_MAXになる。
つぎに、int以下の整数演算はintに格上げされて演算される(右辺がintでなくても格上
げされる)が、値保存で変換されるのでUSHRT_MAXのまま。

unsigned shortがintより範囲が広い場合、両辺がunsigned shortに変換されて比較されるので、
結果は同じ。
NGNG
>>481
ちがう。ch=-128 (10000000) で
unsigned short が 16 ビットだとしたら、
左辺は 1111111110000000 になる。これを int (符号付き)
に promote (キャストではない) させる。
int が 32 bit だとしても、unsigned short からの
変換だから、左に 1 は補われない。ゆえに、
00000000000000001111111110000000
になる。
NGNG
>>475
if ((unsigned int)ch > 127)
にしる。
どうしても unsigned short で比較したい場合は
右辺も unsigned short の入れ物に入れる。
NGNG
unsigned shortにキャストする意味って何?
NGNG
プログラムの意図が全くわからんな。
int hoge(signed char ch)
{
return ch >= 0;
}
ってやりたいわけ?
NGNG
gcc の中の人も大変だな。
NGNG
signed charなんてものを作った奴は腹かっさばいてお詫びしろや。
NGNG
符合付き8bit整数はごく普通のデータ型ですよ。
8080とかね。
NGNG
つーか最初にchar をungigned なoctet にした奴に栄光あれ、だな。
NGNG
規格上はどっちでもいいよ。
signed char, unsigned charと同じ値を持たなくてもいいし。
493 ◆ieqrh9GF7Y
垢版 |
NGNG
例はバグを簡略化したものです。
>>484 同じ解釈です。
>>480 gcc の問題とすると報告すべきはどこ? <- 元の質問の意図
127 を 128 にすると、if は残る。逆に gcc -O0 で作っても
if 部分は影も形もなくなるので、Optimizer の仕業ではなく、
C言語仕様解釈の問題だと思ってる。
NGNG
http://gcc.gnu.org/faq.html#bugreport
NGNG
このプログラムのほうが問題点が明確になるかな。
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);
}
NGNG
些細なことですが return 0; しとこうね。
NGNG
precompiled header に魅かれてgcc3.4インストールしたのに
>sorry, unimplemented: had to relocate PCH
って言われた。
どういうことじゃヽ(`Д´)ノ
498名無しさん@お腹いっぱい。
垢版 |
NGNG
>>495-496
C99では明示的にreturn 0;を書く必要はありませんね。
まあ gcc2.95.4 には関係ないことでしょうけど。
NGNG
>>478
SHARC/TigerSHARC は char は32bitですよ。
こいつはGCCが標準コンパイラです。
NGNG
じゃ、shortも32bitなんだ
NGNG
>>495を、
gcc -c -O -dra foo.c すると、"ce1"の後に消える。
gcc -c -O0 -dra foo.c すると、なぜかcompareは残ったままだね。
"mach"の後で消えてるのかな。

NGNG
>>500
鋭いですね、そうですよ。
で、sizeof( 整数の型名 ) するとどれも1が返ってきてあせる(笑)
バイトアドレシッシングじゃなくてワードアドレッシングだからこれで正解なんだろうけど
NGNG
BCPLかよ!?
NGNG
よく分かんないんだけど、つまりCHAR_BITSが32ってこと?
NGNG
3.4.0 release sage
506名無しさん@お腹いっぱい。
垢版 |
NGNG
>>505
gccの公式ページよりdistrowatchの方が早くアナウンスしてたのには
驚いた。
まだ使うにはたぶん危険だよね?パフォーマンスはアップしてるのかな?
NGNG
危険大好き
NGNG
>The cast-as-lvalue extension has been removed for C++ and deprecated for C and Objective-C.

これってANSIかなんかの規格がそうなってるのかな?
ときどき使ってるからちょと痛い
NGNG
ttp://gcc.gnu.org/ml/gcc-prs/2003-05/msg01253.html
NGNG
ミラー逝きわたるっていったいどこを泳いでるの?
全然見当たらないんだけど。
NGNG
http://gcc.gnu.org/ml/gcc/2004-04/msg00841.htmlってことだからなぁ
NGNG
>>510
一昨日にはもう ftp.iij.ad.jp にあったぞ。
NGNG
ringも来てるところはある。
NGNG
そんなことより3.3.3はなんで沈没してるんだ
NGNG
gccは3.3.3が最高傑作。とか後々までかたられるでしょう。
NGNG
>>515
なんだって〜(AA略)
NGNG
騙られる、だったりして
NGNG
>>495の3.4.0だとfは1になってる。
519名無しさん@お腹いっぱい。
垢版 |
NGNG
>>508
3.4.0でのビルドを試して見ましたが、3.3以前でOKだった、幾つかの作法の悪いプログラムは全滅ですね。
丁寧に直せばいいんでしょうけどね…
NGNG
3.5からはCもエラーにするらしい。
早めに直しておきませう。
NGNG
縛りがきつい方が有難い。
NGNG
きついのに血行を妨げないのがプロの縛り方
523名無しさん@お腹いっぱい。
垢版 |
NGNG
nmしたときやg++ -Sしたときに、コンストラクタやデストラクタに
Foo::Foo[in-charge]() のように[なんちゃら]と注釈が入っている場合がありますけど、
これって何ですか?どこかに解説ありませんか?

in-charge, not-in-charge, in-charge deleting などがあるようで...

524名無しさん@お腹いっぱい。
垢版 |
NGNG
ドスドスドスドス
この洗いを作ったのは誰だぁ!!
NGNG
雄山?
526名無しさん@お腹いっぱい。
垢版 |
NGNG
だな。
NGNG
>>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
NGNG
>>522
めちゃワロタ
NGNG
gcc3.3.4のチャンゲログが無いですがな
NGNG
3.x はバージョン進むのが早いな。
NGNG
ICEってかっこいい響きだよな
NGNG
ドイツの新幹線もICE
NGNG
Inter City Express というのか。
In-Circuit Emurator
Internal Compiler Error
あとは?
NGNG
X11のInter-Client Exchange protocolもな
NGNG
Integral
Cool
Energy
536名無しさん@お腹いっぱい。
垢版 |
NGNG
Solaris9で、バイナリーのgcc-3.4.1をインスコしたら

ld.so.1: gcc: 重大なエラー: libiconv.so.2: open に失敗しました: ファイルもディレクトリもありません。
強制終了

となってしまいます。
2台やって2台とも同じでした。
iconvのバイナリーってどこで入手できますか?
NGNG
>>536
おんなじとこにあるべ
538名無しさん@お腹いっぱい。
垢版 |
NGNG
GCC 3.4.2 age
NGNG
>>536
Bruno Haible
NGNG
3.4.1 から 3.4.2 に上げたら生成されるバイナリが
libgcc_s.so.1 をリンクするようになった。
このへん何か変わった?
NGNG
うん。
NGNG
GCC 4.0のおいしいところは?
NGNG
スパイスが効いているところ。
NGNG
ひどいめにあわすよ
NGNG
プリコンパイルヘッダの作り方は
gcc /usr/include/**/*.h
でいいんだっけ?
NGNG
http://gcc.gnu.org/onlinedocs/gcc-3.4.2/gcc/Precompiled-Headers.html#Precompiled-Headers
NGNG
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
NGNG
さてGCC4のリリースも近づきつつある今日この頃。
自分はこまめにビルド・チェックするほどの追っかけじゃなかったけど、GCC3というプロダクトはどのような評価に値する物だったのでしょか。

漏れには、伽藍時代よりテンポ良くリリースされていった分、各Linuxディストロもそれに振り回されてたような印象が。
あとGCC3は、例えば2.95.xや2.7.2.3並みに安定感のあるリリースがなされてたのでしょうか。

よろしければみんなの御意見、どぞ。
NGNG
g++のC++規格追従上、3.X以外に考えられない。
NGNG
3.4系はほとんど使われないまま4.0に移行しそうな予感が。
NGNG
いまだに 2.95.x だよ。もう 4.x の足音が聞こえるような時期なのか。
NGNG
神ID

http://life5.2ch.net/test/read.cgi/northa/1101482061/2
2:名無しさん []:04/11/27 00:26:40 ID:LIqjWGCC
逃げっと
553名無しさん@お腹いっぱい。
垢版 |
05/01/27 12:55:20
あげ
05/01/27 15:15:15
gcc-4.0 が出るまでにこのスレを使いきろう…
05/01/27 17:29:04
いつ出るのさ
05/01/27 21:02:08
>>555
予定では近いうちに出るはずだが。

漏れ的にはsh-elfの-m2aが腐っているぽいのでもう少し待ってほしい所ですな。
05/01/27 22:05:24
(´-`).。oO(Unix板にGCCって必要なんだろうか。。。)
05/01/28 18:09:11
>>557
必要ないの?
05/02/04 14:34:09
gcc.gnu.orgがHDDあぼーんしたらしい。
05/02/04 21:28:00
>>559
そうらしいね。
なんかファイルシステムに問題あったらしいよ。
現在、復旧中らしい。
05/02/04 21:31:39
反GPLな奴らのアタック
05/02/05 02:29:14
アナウンスが来てから12時間ほど経ったが…まだ復旧してないのか。
これは長引きそうだな。

まあ急ぐ用事も無いから別に構わんが。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況