祝・GCC 3.0リリース

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

 とりあえずインストールしてみよう
NGNG
>>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.
なんて書かれてはいるけどね。
NGNG
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名無しさん@お腹いっぱい。
垢版 |
NGNG
http://pc3.2ch.net/test/read.cgi/tech/1007731543/855-856

わくわく。
322296
垢版 |
NGNG
>>320
ま、3.2.1でも3.2と同様問題がある…ということですか ショボーン
NGNG
>>322
ちなみに、debian sid 標準なのは pre-release な 3.2.2。2003-01-09 版。
324山崎渉
垢版 |
NGNG
(^^)
325名無しさん@お腹いっぱい。
垢版 |
NGNG
3.3ってどうよ
NGNG
>>325
普通に動いてるけど。
最適化に関して改善されたみたいだけどどうだろう。
ベンチなんてとったりしてないし。。。
NGNG
しかし、最近は簡単にマイナーバージョンを上げるなぁ。
NGNG
>>327
3.3ってのは実質3.2だってことをお忘れなく。
NGNG
3.1.1 -> 3.2 になったからってことかな?
330名無しさん@お腹いっぱい。
垢版 |
NGNG
http://gcc.gnu.org/install/finalinstall.html

> We strongly recommend to install into a target directory where there is no
> previous version of GCC present.

これって、gcc をバージョンアップするときは以前のバージョンを消せということ?
NGNG
上書きしてトラブっても自力で対処できないような香具師は
おとなしく新しいディレクトリ掘っとけ、ということでしょう。
/usr/local/gcc-3.2.2/ とか。
NGNG
>>330
混ぜるなキケンってこと
NGNG
>>332
あんたは、バージョンごとにディレクトリ分けてるのかい?
NGNG
>>333
$ ls /usr/lib/gcc-lib/i386-redhat-linux
2.96
3.2.1
egcs-2.91.66

少なくともRedHat Inc.は分けてる。
NGNG
>>334
ここで出ている target directory をたがえるいうのは、
そういうことではないと思うが。

おまい、自分でgccをインストールしたことすらないでしょ。
NGNG
もれはCVSの日付で分けてるけど。
NGNG
>>335
> おまい、自分でgccをインストールしたことすらないでしょ。
たしかに久しくやってないな。
338山崎渉
垢版 |
NGNG
(^^)
339名無しさん@お腹いっぱい。
垢版 |
NGNG
http://pc.2ch.net/test/read.cgi/unix/1047638117
NGNG
長寿だなぁ、このスレ。
341山崎渉
垢版 |
NGNG
(^^)
342あぼーん
垢版 |
NGNG
あぼーん
343名無しさん@お腹いっぱい。
垢版 |
NGNG
age
NGNG
gcc-3.2.3 リリース記念sage
NGNG
>>344
NGNG

NGNG
ちゃんと3.2.2がCurrentReleaseになったのは4/25
だし。遅いってことも無いんじゃない?

上で3.2.2キタ━(゚∀゚)━!って言ってたのはDebianに
PreReleaseが入ったってだけだし。
NGNG
間違えた。3.2.3ね。
NGNG
debian serge の無印gccがgcc-3.2(3.2.3) になってったよ!
さらば2.95
350名無しさん@お腹いっぱい。
垢版 |
NGNG
Pentium Mで最適化って-mcpu=pentium3でエエのかしら?
i686にしといたほうが無難か?
351
垢版 |
NGNG
-O3 が無難
352名無しさん@お腹いっぱい。
垢版 |
NGNG
-mcpu=pentium3と-mcpu=i686ってどこがちがうの?
NGNG
i686にはPenPro,Pen2やAthlonも含むんじゃないの?
354名無しさん@お腹いっぱい。
垢版 |
NGNG
>>352
gccのソース嫁

とりあえずi386.mdってのを探すべし
355名無しさん@お腹いっぱい。
垢版 |
NGNG
3.3リリースあげ
http://gcc.gnu.org/gcc-3.3/
NGNG
9か月ぶり。おめでとう!!
NGNG
3.3だとglibc-2.3.2がコンパイル通らなくねっすか?
NGNG
>>357
そんなものを何のためにコンパイルするのかな?

ひょっとして禿しく板違い?
359あぼーん
垢版 |
NGNG
あぼーん
360名無しさん@お腹いっぱい。
垢版 |
NGNG
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
361360
垢版 |
NGNG
http://www.intel.com/design/intarch/techinfo/pentium/instrefc.htm#75304
を見ると,"cmovl.ge"なんて命令はなさそうだし,gcc側がおかしいのかなぁ.
NGNG
>>361
CMOVGEでは?
gasのオペコードもcmovgeで定義されてるねえ。
gccのi386.md追っかけてないけど、gccの問題臭いな。
363名無しさん@お腹いっぱい。
垢版 |
NGNG
gcc2.9x系と3.0との違いは何ですか?
ポインタだけでも結構ですので、ご存知の方がいれば
おしえてください。
NGNG
>>363
http://gcc.gnu.org/releases.html
NGNG
>>364
さんくす。
主な変更点は、
・最適化の強化(末尾再帰呼び出しの除去など)
・サポートするプラットフォームの増加(IA64など)
・Javaのサポート
・C++まわりの改良
・C言語の新しい規格C99への対応を強化(完全準拠ではないみたい)
・新しく書き直されたプリプロセッサ
・内部仕様の変更(ガーベージコレクションを採用、文脈自由文法の
解析アルゴリズムを変更など)

こんなかんじでしょうか。

ところで
「New tail call and sibling call elimination optimizations.」
は末尾再帰呼び出しの除去だと思ったんだけど、あってる?
NGNG
再帰だけじゃなくて、
return foo();
みたいのを関数呼び出しからジャンプに変更するとかも含まれんじゃないかな。
NGNG
これってヤバイの?
http://www.iss.net/security_center/static/12115.php
NGNG
そもそも見慣れない構文なんだが。C99か?
いずれにしても、そんな機能を使ってるプログラムは
まず無いだろうな。
369名無しさん@お腹いっぱい。
垢版 |
NGNG
Debian/sarge使ってます。
g++を3.3.1-0pre0にしたらblitz++がコンパイルできなくなっちゃって、
3.3-2に戻したらコンパイルできるようになりました。
gccが悪いのかblitz++が悪いのかはわかりません。
こういうときはどこかに報告するべき?
NGNG
>>369
原因を特定できないのなら、ろくな説明ができないと
思われますので報告は必要ないですね。
特定できるのなら詳細なバグレポートを。
371名無しさん@お腹いっぱい。
垢版 |
NGNG
/* 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では何もエラーは起らないのですが、原因知ってる人がいたらおねがいします。
NGNG
(´-`).。oO(warningとerrorの区別がつかないDQNがここにもひとり…)
NGNG
(´-`).。oO('GCC2.9.5'とは随分若いバージョンを使ってるな)
NGNG
(´-`).。oO(それ以前に2.9.xなんてバージョン世間一般に公開されてないだろ)
NGNG
>>371
なんか-CURRENTでそんな話読んだ記憶がある。
ヘッダファイルが古いからだったか。

どうせg++3.3に上げるから放置じゃなかったかな。

portsからいれれば問題ない。

>>372
正しいプログラムにwarningが出るのは問題だろ。
C++ってしってる?
NGNG
"正しい"プログラムだからこそwarningになるのであって、
"正しくない"プログラムが(errorではなく)warningにしかならないのであれば、
そっちのほうが大問題。

まあ、C++規格のうつろいの激しさを知らないピュアな>>375に乾杯。
377371
垢版 |
NGNG
>"正しい"プログラムだからこそwarningになるのであって、
>
結局このwarningは消せないのでしょうか?
毎回出て来るのは正直ウザいので
NGNG
>>377
portsのgcc32かgcc33でもインスコして常にそっちを使うようmake.confで指定しとくとか
NGNG
warning
NGNG
とりあえずCFLAGSに"-Werror"を付けておけば
warningで悩まされることはなくなる次第
NGNG
ワーニング
NGNG
>>376
> "正しい"プログラムだからこそwarningになるのであって、
はぁ?ISO/IEC 14882って読んだことありますか?

> まあ、C++規格のうつろいの激しさを知らないピュアな>>375に乾杯。
自分のことだろw
いまだに頭の中がARMなんだろうな…
NGNG
非建設的な煽りは御遠慮ください
NGNG
>>383
372-384のうち375の前半と378以外は全て非建設的だがな。
NGNG
わはは、ピュアな脊髄反射だなあw
んで、マジレスするとISO/IEC 14882には
そもそもここで言うerrorとかwarningという用語は登場しないし、
"正しい"プログラムにdiagnostic messageを出してはいけないとも書いてないわけだが。
NGNG
そういう話題はプログラミング板とかでやって。
NGNG
プログラミング板ってどこ? >>386=382=375

まあ、FreeBSDなんぞの不具合を延々引っ張られるのも
たしかに迷惑だが。
NGNG
>>385
もうやめとけw
389375
垢版 |
NGNG
>>387
本当は375==382==384==388だよ。
NGNG
>>385の方がやや劣勢?
NGNG
まあ、とりあえず、
> `typename std::basic_filebuf<_CharT, _Traits>::int_type' is implicitly a typename
> implicit typename is deprecated
ちゅうことで。
392あぼーん
垢版 |
NGNG
あぼーん
393名無しさん@お腹いっぱい。
垢版 |
NGNG
gcc3.3でmips用が作れない…。
どうしたものか
NGNG
>>393
ayamura?

NGNG
>>393
エラーはどんなかんじなの?
396393
垢版 |
NGNG
>>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
397393
垢版 |
NGNG
# 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をつけた方がよい
との例があったので、それを追加して再チャレンジ
http://www.spacelan.ne.jp/~m-yana/micro/gnu/mips/mipsegcs.htm
(gcc-3.3/ ディレクトリは一度消してやりなおし)
398393
垢版 |
NGNG
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があるのに・・・)
399393
垢版 |
NGNG
本当は--enable-sharedと--enable-threadsもつけたいのですが
まず基本をするためにこのように(>>396-398)しました。

ただわからないのは、BSDには自前のlibcがあるのに
newlibが必要なのかと言うところです。
googleで検索するとみんなやり方がばらばらで
調べれば調べるほどどんどんわからなくなっていきます。。。
400393
垢版 |
NGNG
このやり方はgoogleとEmbedde UNIX,、
UNIX USERのGBA特集(--targetの指定の仕方)を参考にしました。
長くなりましたがよろしくお願いします
401393
垢版 |
NGNG
何度もすいません

hostはAthlon-xp1800+(つまりi386)のNetBSDです。
NGNG
そんなに苦労して再コンパイルしたって、
目に見えて大きな変化は無いと思うんだけどね。
NGNG
install-shをそれっぽいディレクトリにばらまいてみては?
NGNG
っていうか、 .. って云ってるんだから gcc-3.3/ じゃなくてその上、
toolchain/ に置けばよさそうな気がする…
昔 cygwin で gcc compile したときも、一つ上に置いてたし。
405393
垢版 |
NGNG
>>402
VR4100シリーズのパイプライン最適化を試してみたいのです。
(GCC-3.3からなので)
効果がなるほどと思える物であれば
この先の3.4とかをプロジェクトに使おうかと・・・。
少しでも性能を上げたいんです、はい。

>>403-404
ではやってみます。
NGNG
>>399
> ただわからないのは、BSDには自前のlibcがあるのに
> newlibが必要なのかと言うところです。

自前のlibcなんて、今後放置プレーなんじゃないの?
NGNG
>>406
は?
NGNG
>>407
夏厨は放置プレーしる
NGNG
無知がnewlib使ってGPL汚染ウマー
NGNG
newlibってeCosのためのライブラリだと思ってたけど
これって間違ってますか?
NGNG
まあもともとは組み込みOS向けのちっこいlibcってことで開発
されたんだろうけど、いまとなってはCygwinが主要ターゲットって
説も…。
NGNG
>>410
元になってるだけ。
413393
垢版 |
NGNG
試行錯誤してました。
まず、>>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構築のみに
使われると思ってるんですが・・・
認識あってますでしょうか?
414393
垢版 |
NGNG
あとgcc-3.3のマニュアルには
-mno-half-pic -mhalf-picがあるんですが
しらないオプションと言われるんです。
gccのメーリングリストで見つけました。

昨年の6月に削除されたようです・・・。
そのためNetBSDカーネルコンパイルできない・・・・。

マニュアルアップデートしてないのホントですね
NGNG
>>413
libsupc++とか作るときに見るはず。
libgccも見てるっけ?
416あぼーん
垢版 |
NGNG
あぼーん
417名無しさん@お腹いっぱい。
垢版 |
NGNG
3.3.1 age
418あぼーん
垢版 |
NGNG
あぼーん
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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