X

祝・GCC 3.0リリース

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

 とりあえずインストールしてみよう
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
あぼーん
419あぼーん
垢版 |
NGNG
あぼーん
420あぼーん
垢版 |
NGNG
あぼーん
421名無しさん@お腹いっぱい。
垢版 |
NGNG
gccは糞
NGNG
お通じありがたし
423名無しさん@お腹いっぱい。
垢版 |
NGNG
gccは糞
NGNG
3.4 でまた C++ ABI 変わるってほんと?
NGNG
>>424
http://gcc.gnu.org/ml/gcc/2003-09/msg00222.html
426名無しさん@お腹いっぱい。
垢版 |
NGNG
3.3.2age
NGNG
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`

ここでループしちゃって帰ってこない。
なんでだろ?
NGNG
>>427
> ここでループしちゃって帰ってこない。
> なんでだろ?

まちつづけることが重要です。
429427
垢版 |
NGNG
>>428
修行がたりませんでした。
いい子にして待ちます。
ども。
430427
垢版 |
NGNG
長い...。
24 時間たっても終わらないよぅ(Celeron 1.4GHz)。
431427
垢版 |
NGNG
終わった...。
26 時間ばかりかかったです。

こーゆーのを見ると旧式になったのだなぁと思ふ。
NGNG
世間ではCeleron 1.4GHzで旧式なのか...........
433427
垢版 |
NGNG
いや、俺もそんなことはないと思いたいのだが、
1アプリにすぎない gcc のビルドに丸1日かかっちゃうと
ちょっと切ない気持ちになる。

フツーに使う分には十分な性能なんだがな。
NGNG
>>431
gmake -j 2 bootstrap
とかしてる?
NGNG
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.

というマシンで今からビルドしてみます。
とれくらいかかるかな?
NGNG
書きわすれた。
>>427
java で馬鹿みたいに時間喰ってるので、java を使用しないのであれば、
--enable-languages="c,c++,f77,objc,ada"
でかなり時間を節約できます。
NGNG
漏れは--enable-languages=c,c++だけだな
NGNG
libgcc_s.soをdynamic linkされるのがうっとおしいので
いつもspecsファイルを手で変更しているのですが、./configure
のオプションなどで変更できるのでしょうか?
NGNG
>>438
--disable-shared
NGNG
>>435
03:38 に終わっていました。
一日もかかりませんでした。
441427
垢版 |
NGNG
あー、何も考えないで 427 の手順のままやっちまったよ。

>>434
CPU 1個のシステムでも結構効果上がる?
つか、試してみます。

>>436
ですね。
今までこんなに時間がかかったことがなかったから
ちとびっくりした。
3.3 のときはせいぜい数時間だったような。
442438
垢版 |
NGNG
>>439 THX
NGNG
>>441
なんとなくメモリ不足でスラッシング起こしているんでは?
とか思ってみる。
NGNG
>>442
ちなみに、既にインストールされているものは手動で消さなきゃだめ。
NGNG
H8用cross、未だ3.0.3+平田patchを超えられず(;´Д`)
NGNG
うちのSS5だとどれ位かかるかな…
NGNG
>>445
そうかなあ?
たしかに謎な挙動が結構あるが。

そういえば3.4は最適化がちょっと強化されるらしい。
NGNG
3.4 はまた C++ ABI が変わるんだとか...
NGNG
ヽ(`Д´)ノ
450名無しさん@お腹いっぱい。
垢版 |
NGNG
Solaris で、マルチスレッドのコンパイル&リンクするときって、どうやるの?
NGNG
#define _REENTRANT
#include <pthread.h>
#include <thread.h>

Sunのcc: -mt ... -lpthread [必要ならば -lrt]
gcc: -pthread ... -lpthread [必要ならば -lrt]
NGNG
gccはoption無しで大丈夫。
453名無しさん@お腹いっぱい。
垢版 |
NGNG
make age
454オブジェクト指向促進運動
垢版 |
NGNG
IT業界にアージャイル開発とデザインパターンを広めよう!

C言語を使ってかなり苦労したので
その苦労を最小限におさえるために
アージャイル開発、デザインパターンを
多くのプログラマに使って欲しいと思うことがある。

一種の挨拶みたいなものだね。
「なるべく挨拶を心がけましょう。」
「なるべき綺麗な字で書きましょう。」
のように

デザインパターンを使うこと、アージャイル開発することが
プログラマの習慣、常識になってほしい。

なんとか、デザインパターン文化、アージャイル開発文化を押し広げられたら・・・。

IT業界の将来はオブジェクト指向とアージャイル開発が握っています!
NGNG
オブジェクト指向==デザパタですか。ずいぶん視野の狭いお話で。
456名無しさん@お腹いっぱい。
垢版 |
NGNG
いまだに2.95ですが何か
NGNG
>>456
ちんぽむけてますか?
NGNG
俺的にさっさとlispのコンパイラ作って欲しい
NGNG
Gnu is Not Unix
RMSおよびGNUはUNIX市場をぶち壊すことがその目的です。
LISP,関数型言語の繁栄のために日夜努力されているのです。
Allegroの商圏を踏み荒らすような真似をするはずも
ありません。
NGNG
anonymous cvs server落ちてる?
NGNG
ここ最近ずっとおかしくない?
NGNG
うん、gnu.orgのCVS serverおかしい
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に変換されて比較されるので、
結果は同じ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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