祝・GCC 3.0リリース

このエントリーをはてなブックマークに追加
1さあね
 一昔前は、そこらの商用コンパイラよりも良い最適化をする
といわれたGCCも最近は色あせてきてたけど。。。
 待望の新バージョンリリースで巻き返しなるか?

 とりあえずインストールしてみよう
2名無しさん@お腹いっぱい。:2001/06/19(火) 19:13
-O2以上の最適化のバグは直った?
3無党派さん:2001/06/19(火) 19:25
http://gcc.gnu.org/bugs.htmlによると
まだC++98 conformanceじゃないんだな〜。
4名無しさん@お腹いっぱい。:2001/06/19(火) 19:25
>>1

既出だヴォケ、しょうもないスレ立てるな

http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=991597023
5名無しさん@お腹いっぱい。:2001/06/19(火) 19:30
>>4
悪くないとと思うけど?

プログラム技術板の方がレスが期待できそうだが。
6名無しさん@お腹いっぱい。:2001/06/19(火) 19:49
まだglibcコンパイルできないし・・・
7名無しさん@お腹いっぱい。:2001/06/19(火) 19:55
1を創造した宇宙人エロヒムです。
お騒がせしてもうしわけありません。
私どもは、1がどの程度の知能を備えているかを見ようと、
実験的にインターネットに接続させたのですが、いやはや、
その結果がこのお粗末なスレッドです。
私どもも宇宙に乗り出してもう10万年になるのですが、まだまだですね。
皆さんを生み出したような自然の進化にはかないません。
でも、今回の失敗の教訓を活かし、次はもう少しましな知性体を創造したい
と思っています。
そんなわけで、もう少しだけ実験をつづけたいので、まことに恐縮ですが
いましばらく御辛抱いただけないでしょうか?
データがそろいましたら1はすぐに処分いたしますので。
8名無しさん:2001/06/19(火) 20:23
>>7のような文面が出てくるほどしょうもないスレでもないと思うがな
でもsage
9名無しさん@お腹いっぱい。:2001/06/19(火) 20:42
中身で勝負っしょ。
で、早速使った人はいる?
10名無しさん@お腹いっぱい。:2001/06/19(火) 21:10
ま、>>7みたいな馬鹿はほっとこうぜ
11名無しさん@お腹いっぱい。:2001/06/19(火) 22:43
じゃあ、

Pentium GCC との関係、Athlon 向け最適化のマージ等が
どうなってるのか。識者の方、情報キボーン
12java:2001/06/20(水) 20:26
gcj を使った人いますか?
バイトコードインタプリタがついたように gcc/NEWS には書いてあります.

#今gcc-3.0コンパイル中だけど,なかなか終わりません...
13名無しさん@お腹いっぱい。:2001/06/20(水) 22:36
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)< 勉強のジャマだから上げないでくれる?
             _φ___⊂)__ \_______________
           /旦/三/ /|
        | ̄ ̄ ̄ ̄ ̄|  |
        |広島みかん|/
14名無しさん@お腹いっぱい。:2001/06/20(水) 23:56
>>12がコンパイル失敗に50000ペソ
15名無しさん:2001/06/21(木) 02:59
50000ペソって日本円でいくらだ?(w
gcc3.0試してみたいけどミラーにまだ無かったので
ダウンロードしてないや…
16名無しさん@お腹いっぱい。:2001/06/21(木) 22:54
>>15
俺は昨日落としたよ。
ttp://ring.crl.go.jp/pub/GNU/gcc
17ほげ〜:2001/06/21(木) 23:48
Linux MandrakeではすでにRPMになっているらしい。
18愚問:2001/06/21(木) 23:57
GCCのコンパイルってGCCでやるの?
19名無しさん@お腹いっぱい。:2001/06/22(金) 00:01
>>18
ねたはやめれ
20名無しさん@Emacs:2001/06/22(金) 00:07
>>18
ハンドアセンブルに決まっておろうが。
21愚答:2001/06/22(金) 00:31
>>18
./configure --prefix=/usr/girl/manko --enable-languages=c --enable-hard-sex
make bootstrap rhythm="piston level2"
make install location="G spot"
22名無しさん@お腹いっぱい。:2001/06/22(金) 02:28
Solarisだったもんで標準でコンパイラが無かったとき
古いバージョンのpkg落としてインストールしてから
最新バージョンをソースからコンパイルしてたよ
その際、コンパイルが済んだら出来上がったgccでもっかい
自分自身をコンパイルし直すからえらい時間がかかったよ(w
23#6411:2001/06/22(金) 14:41
>>18 ネタだとは思いつつマジレス
自身を正しく生成(bootstrap)できないコンパイラはイテーヨシ
漏れが若い頃、X68kでGCC作った漢たちの話をきいて
すげーと思った。もちろん、メーカの環境(糞XCだね)では
つくれなかったので、えらく苦労してた化膿。
24名無しさん@お腹いっぱい。:2001/06/23(土) 22:15
>>5
いやいや。速攻でネタスレ化しました。

gccスレ
http://piza.2ch.net/test/read.cgi?bbs=tech&key=993099227
2512:2001/06/24(日) 11:57
>>12です.みごと失敗しました.(solaris7+gcc2.95.3)
試行錯誤して,インストールはできたのですが,
gcjの実行に失敗しました.

・binutils-2.11 をインストール
・./configure --with-ld=/usr/local/bin/ld --with-as=/usr/local/bin/as

% gcj -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/3.0/specs
Reading specs from libgcj.spec
gcj: libgcj.spec: No such file or directory

% gcc-3.0/sparc-sun-solaris2.7/libjava/gij -v

couldn't set locale correctly
ld.so.1: gij: fatal: relocation error: R_SPARC_32:
file /tmp/gcc-3.0/sparc-sun-solaris2.7/libjava/./.libs/libgcj.so.2:
symbol __gcj_personality_v0: offset 0xff2de359 is non-aligned

ld.so.1: gij: fatal: relocation error: R_SPARC_32:
file /tmp/gcc-3.0/sparc-sun-solaris2.7/libjava/./.libs/libgcj.so.2:
symbol __gcj_personality_v0: offset 0xff2de899 is non-aligned

ld.so.1: gij: fatal: relocation error: R_SPARC_32:
file /tmp/gcc-3.0/sparc-sun-solaris2.7/libjava/./.libs/libgcj.so.2:
symbol __gcj_personality_v0: offset 0xff2de95a is non-aligned

Bus error (core dumped)
2612:2001/06/24(日) 12:06
補足です.

% gcj -specs=./libgcj.spec Hello.java

Hello.java:0: unknown encoding: `646'
This might mean that your locale's encoding is not supported
by your system's iconv(3) implementation. If you aren't trying
to use a particular encoding for your input file, try the
`--encoding=UTF-8' option.
compilation terminated.

% gcj --encoding=UTF-8 -specs=./libgcj.spec Hello.java
Segmentation fault (core dumped)

% gdb `which gcj` core

GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.7"...
Core was generated by `gcj --encoding=UTF-8 -specs=./libgcj.spec /tmp/Hello.java'.
Program terminated with signal 11, Segmentation Fault.
Reading symbols from /usr/lib/libc.so.1...done.
Reading symbols from /usr/lib/libdl.so.1...done.
Reading symbols from /usr/platform/SUNW,Ultra-1/lib/libc_psr.so.1...done.
#0 0xff2b6df4 in strncmp () from /usr/lib/libc.so.1
(gdb) bt
#0 0xff2b6df4 in strncmp () from /usr/lib/libc.so.1
Cannot access memory at address 0xff3ef9ec.
(gdb)
27名無しさん@お腹いっぱい。:2001/06/28(木) 11:33
>>17
漏れもRPMつくったよ。
28名無しさん@XEmacs:2001/08/08(水) 02:19
今更だが、Linux だと HelloWorld ぐらいはコンパイルできるようだ。

class HelloWorld {
public static void main(string args[]) {
System.out.println("Hello World");
}
}



gcj --main=HelloWorld HelloWorld.java // ネイティブバイナリ
gcj -C HelloWorld.java // バイトコード
gij HelloWorld // バイトコードの実行

って感じで動かしてみたけど全部うまくいってる。
しかし、--main も -C も --help では出てこないってのは。。
-fdce て大丈夫ですか?
30名無しさん@XEmacs:01/09/22 08:58
GCC 3.0 で java が compile できるとすると、
GDB でも java が debug できる様になったりするんでしょうか。
31 :01/10/09 02:55
Fortran90はまだかな?
32ななし:01/10/09 05:09
>>25
昔、Solaris に binutils は入れるな、って言われたことがあるんだけど、
それは関係ない?
33 :01/10/09 22:03
gcc-3.0 って、Solaris の 64bit ネイティブコードを
正式サポートしてるの?
してる。どこまで最適化できるのか知らないけど
35 :01/11/03 02:29
gccと言語仕様は同一だが、
C言語のダイレクトもしくは中間コードによる
インタープリタをリリースする計画はどうなった
んだろう?Javaが出てきたので辞めたのかな?
36名無しさん@お腹いっぱい。:01/11/06 10:53
一応、AWTもサポートしてるみたい
使い方わからんけど

>>28 のコピってやってみたら string で、はまった

たかがこんなもんでも気がつかないもんだね
俺って馬鹿だな
37名無しさん@お腹いっぱい。:01/12/26 04:00
age
38名無しさん@お腹いっぱい。:01/12/26 12:51
gccってSolarisのdoorライブラリとか使えるの?
>>38 逆に聞きたいけど libdoorがgccで使えない理由ってあるの?
そういやgcc 3.0.3出たね。
cygwinで見事にコンパイル失敗しましたが何か?
gccってなぜかincludeしてないライブラリ関数とかでも使えますよね。結構い
いかげんなのかな?よくわからないけど。ちなみにcygwin。
>>39
いや、使えるならうれしいだけだけど、doorsってSolaris固有のRPCでしょ?
linuxでも試験的にあるとは聞いていたけど。

じゃ、<doors.h>入りのプログラムでもProCかForteつかわないでも動作テスト位ならgccでできるんだしょうか?
x86版Solaris&GCCでも?
44名無しさん@お腹いっぱい。:02/01/17 03:56
3.1 はまだか…。3.0.3 はまだ恐くてよ〜使えん。
>>42
C言語の仕様知ってます?
C++コンパイラでCを学習しているのでしょうか。
>42
あとでリンカエラーになる罠
4745:02/01/17 20:07
いやだからさ、C言語の(略)
mangleされねーっての。
DX4-75のマシンで3.0.3ビルドしたら6時間位やってた...
49なんだこいつ:02/01/19 12:29
>>43
お前、

> じゃ、<doors.h>入りのプログラムでもProCかForteつかわないでも動作テスト位ならgccでできるんだしょうか?
> x86版Solaris&GCCでも?

阿呆の癖に、

> いや、使えるならうれしいだけだけど、doorsってSolaris固有のRPCでしょ?
> linuxでも試験的にあるとは聞いていたけど。

こういうつまらん話から外れる口答えするなよな。
誰も相手にしてくれなくなるぞ。
50 :02/01/30 18:15
gcc-3.0.3 を入れてみようとコンパイルにチャレンジしてるんだけど,
warning の嵐なんだけど,これって無視していいの?
g++ でまともなテンプレートを使ってみたいってだけなんだけどさぁ・・・


もうすぐ gcc-3.0.4 出そうだねい。
52名無しさん@お腹いっぱい。:02/01/30 19:33
>>49

????
で、使えるの?
53ぴょんちゃん:02/01/31 00:16
GCC-3.X って、Propolice は組み込まれたのですか?
54名無しさん@お腹いっぱい。:02/01/31 00:19
>53
組み込まれてないと思う。もっと会社ぐるみでプッシュしてほしいよね。
マージ熱望。
55名無しさん@お腹いっぱい。:02/01/31 00:23
>>53
キノコ?
5654:02/01/31 00:25
>>55
それはアガリクスだろう
58 :02/01/31 00:39
gcj って GUI のプログラムも作れたりするの? Swing とか・・・
さすがにウチのマシンじゃ gcc コンパイルするのは無理そうなので
断念したんだけど・・・
プロポリスは蜂の巣の原料だな
6054:02/01/31 10:54
>>53 残念ですぅ.セキュリティかなり改善できると思うのに.
>>60
名前が53で参照先が>>54と思われ。
6260, 53:02/01/31 22:09
>>61

スマソ。その通りです。

63名無しさん@お腹いっぱい。:02/02/05 08:40
gccに独自プロセッサ向けのコードをはいて欲しい時どうしたらよいのでしょうか?

出力したコードのそれぞれの命令を、
独自プロセッサの命令で等価になるように置き換えるのが
普通のやり方でしょうか?

よろしくお願いします。
>63
独自プロセッサってgccがサポートしてない奴?
gccのソース見れば?
それでわからないならあきらめな。君には無理じゃ。
65名無しさん@お腹いっぱい。:02/02/05 09:10
>64
>gccのソース見れば?
なんでもかんでもソース見れば?は
なんか厨房くさい感じがしてやだなぁ。

それはさておき、
>出力したコードのそれぞれの命令を、
>独自プロセッサの命令で等価になるように置き換えるのが
>普通のやり方でしょうか?
これどういう意味?
マニュアルを読めばいろいろ書いてあるよ。
hoge.md というのが hoge ってマシン用のコードを吐くための
設定が書いてあるファイル。
68名無しさん@お腹いっぱい。:02/02/05 12:55
.mdファイルを見ました。なんかリスプの
(define_attr ... )というのが延々と並んでて
なんのことか分かりません。

これって検索したけど日本語のものは殆どないですね。
英語のマニュアルをがんばって読まないとダメみたいです。
gccのマニュアルは日本語訳があったと思ったが。
71ナーナス:02/02/06 01:16
「それでわからないならあきらめな。君には無理じゃ」警報発令中〜!
72名無しさん@お腹いっぱい。:02/02/06 07:58
googleで探してみたら、
実際にmdファイルをいじってみた方のレポートが見つかったので、載せときます。

http://web.yl.is.s.u-tokyo.ac.jp/~sumii/tsugcc/tsugcc.html
73名無しさん@お腹いっぱい。:02/02/06 08:08
>>66
例えば、
gccで普通にコンパイルして、
i386向けのコードを出力する。

独自プロセッサにはinc命令がない

i386向けのコードでinc命令を使っているところを、
add命令等を使ってinc命令を使ったときと同じ結果になるように、
置き換える。

って感じの事をなんとなく想定してました。
gccって使われる率の割には中身理解してる人少なそうだね。
気合入れて今度勉強始めようかな。1年計画ぐらいで(藁

http://www.fuka.info.waseda.ac.jp/~mao/study/pgcc.html
ここなんか見てもソースの理解がやっぱり大変みたい。
sumiiさん、こんなことやってたのか...
でもやっぱり情報なら CPUの一つぐらいつくれんとだめだのう..

76名無しさん@お腹いっぱい。:02/02/06 15:07
>>73
GNU as をお勉強してみてはいかが?
sumiiさんすご過ぎ(w。
CPU実験でここまでする人いないよ。
78名無しさん@お腹いっぱい。:02/02/06 18:17
sugoine sumii san
oremo gakusei no koro motto ganbareba yoka-taYO!
79名無しさん@お腹いっぱい。:02/02/22 23:05
gcc-3.0.4 age
80名無しさん@お腹いっぱい。:02/03/08 23:28
あげ
久しぶりにageられてる。
Redhat7.2 では gcc3 ていうコマンドになってて gcc2.96 も残ってるんだけ
ど何か意味あるの? 安定してないからとか?

source からコンパイルするときとか gcc3 使った方が幸せになったりします
か?
>>81
板違いです。

Red Hat Linux 統合スレ
http://pc.2ch.net/test/read.cgi/linux/1010237038/

今日からRedHatLinux7.2
http://pc.2ch.net/test/read.cgi/linux/1011048483/

Red Hat Linux 7.1
http://pc.2ch.net/test/read.cgi/linux/988982645/

WIN-XPとRedhat7.2のデュアルインストール
http://pc.2ch.net/test/read.cgi/linux/1013131284/

★山崎邦正はlinux(Redhat)ユーザー!!
http://pc.2ch.net/test/read.cgi/linux/1004127931/

Redhat 7.2 Public beta(Roswell)ってどうよ
http://pc.2ch.net/test/read.cgi/linux/996800465/

黙ってRed Hat Linuxを使う奴はカコイイ。
http://pc.2ch.net/test/read.cgi/linux/996601004/

RedHat(世界標準) VS Turbo(日本国内厨房向け)
http://pc.2ch.net/test/read.cgi/linux/1001061990/

レッドハット
http://pc.2ch.net/test/read.cgi/linux/991016195/

>>82
何気に親切だな、ヲイ
84 :02/03/09 01:47
で,ブッチャケ gcc-3.0.X は不安定なのか?
俺はフツーに使っているつもりだが.
# もっとも KDE とかデカいモノは使っていないからなんとも言えないのだが
85名無しさん@お腹いっぱい。:02/03/09 01:48
そういえばglibcはコンパイルできるようになったの?
86名無しさん@お腹いっぱい。:02/03/09 01:50
>81
俺も気になる。今rawhideを入れると、2.96と3.0.xのどっちが普通に(/usr/bin/gcc)使われるの?
>>86 お前ら少しわ調べろと小一時間(以下略)
以下 rawhideのi386.rpm持って来て中見ただけ

rawhide $ rpm -qpil compat-gcc-7.2-2.96.102.i386.rpm |grep /usr/bin
/usr/bin/gcc296
/usr/bin/i386-redhat-linux7-gcc

rawhide $ rpm -qpil gcc-3.1-0.21.i386.rpm |grep /usr/bin
/usr/bin/cc
/usr/bin/gcc
/usr/bin/gcov
/usr/bin/i386-redhat-linux-gcc
/usr/bin/protoize
/usr/bin/unprotoize

だから /usr/bin/gccは gcc 3.1になるはず
gcc-2.96はたぶん kernel作るのにつかってるんでは?
88名無しさん@お腹いっぱい。:02/03/09 02:05
>87
さんきゅ。しかし…3.1って…。なんで3.1なんだ?
リリースされてないよね。
8987:02/03/09 02:15
gcc-3.1はcvsのversion
http://subversions.gnu.org/cgi-bin/viewcvs/gcc/gcc/gcc/
のversion.cでも見てみそ

#include "ansidecl.h"
#include "version.h"

const char *const version_string = "3.2 20020308 (experimental)";

だとさ

RedHatでは多分 specでs/experimental/Red Hat/
とか書き換えてるだろうけど
90名無しさん@お腹いっぱい。:02/03/09 02:19
そうなんだ
そんな若いの使って大丈夫なんですかね。
>>85
できます。
92名無しさん@お腹いっぱい。:02/03/09 07:09
glibcやGLibの日本語の(笑)リファレンスってないですかねー?
93仕様書無しさん:02/03/09 17:12
age
>>90
http://moso.borogrammers.net/moso/diary/?200203a&to=200203101#200203101
大丈夫げ

>>92
glibcとglibは何の関係もありませんが…?しかもスレ違いの予感。

glib 1.2
http://www.kitanet.ne.jp/~asler/linux/gtk/ja/gtk_tut_ja-20.html
#glib2.0はまだないだろうな。

で、glibcのリファレンスって、ANSI C 非準拠の部分についての詳細ってことか?

どちらかというとgdbの機能向上を望む。
特に現状ではC++のサポートが酷いとおもうんだけどどうよ。
96名無しさん@お腹いっぱい。:02/03/14 22:07
こっぺりと同意>>95
gdb5.1の出来はどうなんでしょうかねい
うちじゃカーネルをgcc-3.1.0-21(RawHide)でRebuildしたら
ブートしなかった。pcmcia-csとかにまぜてもダメ。

だから2.96に戻した。

うちだけかも。
98名無しさん@お腹いっぱい。:02/03/15 00:49
カーネルはだめっしょ。
99名無しさん@お腹いっぱい。:02/03/15 01:54
ABIってどういう意味ですか?
100名無しさん@お腹いっぱい。:02/03/15 02:26
100ゲト
101名無しさん@お腹いっぱい。:02/03/15 02:44
Applications Binary Interface
103名無しさん@お腹いっぱい。:02/04/09 00:47
で、最近のGCC3はどうよ?
まともになった?
>>103
3.1を待ってる。
cvsでは既に3.2 branchだもんねぇ。なんで3.1がさっさとreleaseされないんだ?
スケジュールどおりでは > 3.1

http://gcc.gnu.org/develop.html#calendar
あした
108名無しさん@お腹いっぱい。:02/05/01 09:57
3.1はまだでございますか?
109名無しさん@お腹いっぱい。:02/05/01 11:58
>>103
3.0.4使っているけど、ちゃんと動いてるよ。

たまにtemplate関係で変かなー、と思うけど、
STLportとどっちが悪いのか見当つかないから(w、
自分のコードを変えてるよ…

奇怪なtemplateを書かない限り、至極まとも。

http://www.gnu.org/software/gcc/gcc-3.1/criteria.html
みると、3.1もかなりいけてそうだ。3.1にするかな?
使ってるのはi386-pc-linux-gnuだから、bug fixも順調だろうし。
3.1、5月になってもまだ出ない…
111名無しさん@お腹いっぱい。:02/05/07 04:31
MacOS X用のGCC、もうちょっといいのでてくれ。
>>111
自分で直すというのはどう?
一躍有名になれるチャンス!

なわけないか・・・
Interview with Mark Mitchell, GCC's Release Engineer
http://www.osnews.com/story.php?news_id=1047
114名無しさん@お腹いっぱい。:02/05/11 21:42
3.1の公式リリースはまだかねぇ
116 :02/05/12 22:46
IA-64のRedHat7.1の上で、gcc2.96も、gcc-3.0もソースからでは
全然コンパイルできないよ。変だね。
どんな手順でコンパイルしてんの?
118名無しさん@そうだ選挙にいこう:02/05/12 23:48
>>116
IA-64 (・∀・)スゴイ
119名無しさん@お腹いっぱい。:02/05/12 23:56
>>116
その石ホスィ…
120名無しさん@お腹いっぱい。:02/05/13 14:46
http://gcc.gnu.org/ml/gcc/2002-05/msg00900.html

もうちょい。今週中には出るか?
121あぼーん:あぼーん
あぼーん
122名無しさん@お腹いっぱい。:02/05/14 01:03
>>120
http://www.gnu.org/software/gcc/develop.html
とかを見ると、GCCの開発って一昔前に比べると、かなり計画的になっているね。
びっくりした。
それだけ、GCCの重要性が増したという事なんだろうけど。

123名無しさん@お腹いっぱい。:02/05/14 01:06
FreeBSD5.0は3.1だそうですね。
>>123
というより、GCC3.1の正式リリースを待たずに
CVSに突っ込むという無茶をやってるからなあ…
>125 gccのFreeBSD対応をもっとまともにする、より良い方法があったら教えてくだちい
>>125
FreeBSD対応?
127名無しさん@お腹いっぱい。:02/05/14 22:48
>>125
もっとまとも?
もっと、強烈にオプティマイズして欲しいの?
125は124を指して「gccのsnapshotをFreeBSD-CURRENTに入れるのが気にくわないなら
積極的に人柱を集める他の方法を教えれ」と言っているのでした。

実際そうでもしないとLinux以外で顕在化するバグはみつかりにくいし、FreeBSDの
i386以外のarchはgcc3が必須なので、運命共同体というかなんというか。
>>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割遅いというのは(゚д゚)マズーだが。。
遅いのは実行速度? コンパイル速度?
コンパイル速度。make buildworldで計測してみよー
>>130
make world の時間だからコンパイル速度だと思う.
最適化なんとかならんかな。
VCにもIntelCにもベンチマークボロ負けだよ。
あなたがなんとかして!
>>133
相手は IA32 専門コンパイラだからなぁ。
136sage: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 がなかなか終らない。。。。
まだミラーに行き渡ってないけど、もう本家にはあるね。
リリースアナウンスがある前に /.jp が記事にするかどうか(苦笑)
いつ頃、Linuxが3系のgcc使うようになるのかな。
141名無しさん@お腹いっぱい。:02/05/16 00:13
次のRedHatで乗れば普及しそう。
TurboやKondaraは次バージョンで乗せるかなー
>>141
いや、載せるじゃなくてカーネルっていう意味で・・・
gcc-3.1キタ━━━━━(゚∀゚)━━━━━!!!!
・・・長いね、これ・・・
core.ring.gr.jp 早っ。
iij はまだ、aist はディレクトリがあるだけ…

実況してどーする。
>>142
Linuxカーネルは、gcc-2.95系が出た後も、
長らくegcs(2.91.??)を推奨してたからね。
結構時間がかかると予想してみる。
やっと、make bootstrap 終ったよ。pentium III 700MHz で1時間20分かかった。 これから、Linux kernel のコンパイルやる。
147 :02/05/16 09:50
サイズでかっ。。
メインページが更新されました。一応ご連絡。
149名無しさん@お腹いっぱい。:02/05/16 18:35
gcc3.1のg++で#include<fstream>するとbasic_file.hの中でエラーに
なるの俺だけ? RedHat7.2(gcc2.96)でconfigure&makeしたんだけど…
http://www23.tok2.com/home/big56/diary/200110_2.html
2.4系のLinuxはgcc3.0でコンパイルできんの?

いま手元にgcc3ないから聞いちゃった。ゴメソ
>150
gcc3を/usr/binには入れないよねフツー。
>>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 です。
>>153
あ、どもです。いけるんですね。
今日うち帰って3.1でもいけるかどうか試してみます。
>>154 昨日やったら、2.4.19-pre8 も 2.5.15 も途中でこけた。まだ深くは追求していないけど。
>>155
コンパイルが通らないってことですか?
それとも実行時のエラーっていうことですか?
コンパイルエラーでそ>>156
オプション代えれば上手くいく予感
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と戯れるなら
http://www.codemonkey.org.uk/Linux-2.5.html
は必読かと。
>>162
サンクス
>>161
別にいいじゃん。2.5は開発系列なんだからさ。

乱暴と思えるようなmergeがなくなっちゃえば、
Linuxのmeritのひとつがなくなってしまう。
1.Xに比べれば天使を見るが如くだ。
165名無しさん@お腹いっぱい。:02/05/19 20:17
specsファイルの書き方を説明したサイトないかなー
$info gcc
Invoking GCC::Spec Files::
167名無しさん@お腹いっぱい。:02/05/20 13:40
gcc-3.1では -march={pentium2,pentium3,pentium4} なんかが追加されてるけど,
celeronの場合は何を指定するのがベストなのかな? pentium2あたり?
>>167
2か3だろうけど、コアの種類にもよるんでない?
つーかそれぞれでどう最適化が違うのかわからんとなんとも言えんけど。
169名無しさん@Emacs:02/05/20 14:46
>>167
生成したバイナリに具体的にどんな影響が現われるのか興味深いな・・。
特にpentium2と3。

基本的にはpentium2を指定しておけば間違いないだろう。
あとSocket478用Celeronならpentium4。
それ以外はその時期のCeleronと同時に発表されたプロセッサと同じものを
指定すればよいだろう。
i386の-marchで何が起こるかはconfig/i386/i386.cのprocessor_alias_table[]を参照しる。
171名無しさん@お腹いっぱい。:02/05/22 18:39
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 になる.
http://gcc.gnu.org/develop.html#future
もしかして非互換性発覚→急遽3.2ってことなのかな?
どっちかっつーと、
ABI変えないとどーしょうもない不都合発覚→3.2にversion bump
てことじゃないかと。
175名無しさん@XEmacs:02/07/22 09:19
>>172
cvs [server aborted]: no such tag gcc_3_1_1_release

まだですね。
にしても GCC3.x は迷走しているなぁ。いったいいつまで 2.95.3 を使いつづけ
なければならないんだろう。
伝統にしたがって3.4まで待つことになるんでは
178名無しさん@お腹いっぱい。:02/07/22 23:50
3.1.1 まだ〜?
3.2 がもうすぐ出ちゃうよ.

現在 3.1 を使っているけど,3.2 が出たらどうするか考慮中.
C++ binary incompatible ではねぇ.
みんなどんどん使って不具合だしてくれー
最適化がVisualC並になるのはいつのことやら・・・
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で最適化かけた
バイナリでないと真価を発揮しない、のような
こんな結果があるがどうよ?
http://pc.2ch.net/test/read.cgi/linux/1007024009/194-198n

#gccも思ってたよりやるな。
あ、gcc2.96だけどね。
つーか、gccの最適化がしょぼい(>>180)ということを裏付けるデータあるの?
>186 >>184
188名無しさん@お腹いっぱい。:02/07/24 10:30
>>187
VC出てきてないんですけど…
>>186
まだそんなこと言ってる・・・
「証拠見せろ」とか「gccに速さを求めるのは筋違い」とかって
ほんと決まり文句だな。
>>188
gccが比べるまでもなくしょぼいのはわかりますが何か?
i386の事だけ考えればいい商用のコンパイラと、gccを比べるのは川獺。
VCって、Windows CE用にmips、arm、shとかもサポートしてるみたいだけど、
この辺の最適化具合はどうなんだろね。
今は知らないが、VC++ってAlpha版、PowerPC版、MIPS版なんてのもあったような。
>>193
NTとかビルドするのにも使ってるんだし、そりゃああるだろよ。
196名無しさん@お腹いっぱい。:02/07/24 22:30
>>189,190
http://www.google.com/search?hl=ja&ie=UTF-8&oe=utf-8&q=compiler+benchmark+gcc+Visual&lr=
辺りみても、benchimarkでしかあり得ないプログラムや
数値計算やCG関係でMMXなんかがうまく使えた時に差がある程度と思うが?

>>191
その影響はpeepholeやinstruction emittingに限られるでしょ?
これがoptimization全体で大きな割合を占めるのはかなり特殊なprogram。
>190
そういう人にとっては、ここに来るのは時間の無駄以外のなにものでもないですね。
gccより遅いコンパイラは全部滅んじゃったからね。
>>198
なるほど、そうか。
gccがコンパイラの底あげをしたわけね
>>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の独善の歩みと言うべき姿勢は、
そろそろ見直される時期に来てるかも。

ソフトウェアの開発モデルとしては機能はしてるが
魅力やスピードが無いと言えるかも。
抽象的ですまんが
>>200
他にもUNIXとWindowsと比較・対決してるスレはたくさんあるから、
そういう議論はそっちでやってくれないかな?
ここはgcc関連の話題を扱うスレ。
> 例えば同じマシンにKDEとWindows2000入れたらどっちが
> さくさく動くと思う?

cygwinの上でKDE動かした方が遥かに遅かったが、なにか?
>>200
> 例えば同じマシンにKDEとWindows2000入れたらどっちが
> さくさく動くと思う?

gccでコンパイルしたKDEと
gccでコンパイルしたWindows2000の比較か?
>>204

おまえ頭悪いな・・・
>>205

おまえ頭悪いな・・・
なつだからっていちいち煽りにかっかしてんな。
そうめんみたいに流せ。
ネタにマジレスすると、KDEとWin2000のどちらがサクサク動くか、という点については
コンパイラ云々よりもウィンドウシステムの設計に依存するところが大きいでしょう。
win2kはご存知のとおりカーネル内にグラフィックサブシステムが入ってるから、
かなりの速度がでる。Xは残念ながらオーバーヘッドがでかい。

つーことは、上記のように環境が速度の最大ファクタであるような場面では
コンパイラの最適化能力なんてあんまり目立たない→重要でない
ってなことになっちゃうと思うんだが...

で、未だにコンパイラの速度を競うような場面ってそんなにありますか?
計算屋さんにとっては重要な問題なのかなあ。
ほとんどライブラリに頼ってる気がせんでもないけど。
>>203
そら遅くて当たり前…
210名無しさん@お腹いっぱい。:02/07/26 19:49
gcc-3.1.1 リリースage
http://www.usenix.org/publications/library/proceedings/usenix-nt98/full_papers/zabatta/zabatta_html/zabatta.html

"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側のライブラリやカーネルを実行してる部分が多くて
ユーザプログラム側の部分によって大きな差がつかない,ということだろうね.
板違いかもしんないけどさ。気に入らなかったら読み流してちょ。

コンパイラの教科書って、未だに Ahoのアレが一番メジャーなの?
あそこまで行かないにしても、それなりに網羅的に書いてある
もーちょっとモダーンな教科書あったら紹介きぼんぬ。
213名無しさん@お腹いっぱい。:02/08/02 17:39
>>212
つーか、最近は一冊にまとまっていない。分量多すぎ。
プログラミング言語一般論, parsing, type, code emiting&optimization
くらいに分かれている。翻訳があるドラゴンブック読んでから、次に進めばよい。
215214:02/08/06 14:39
>>212
もしかして英語でも良かったの?
216名無しさん@お腹いっぱい。:02/08/06 18:08
>212
中田育男著「コンパイラの構成と最適化」
えいぷるさんの本があるべ
>>215
英語でもいーっす。
今、amazon.comも見てみましたが、あまりくるのがありませんでした。
Modern Compiler Design が一番ポピュラーなんですかね。

>>216
読んだ事ありますがドラゴンの方がよさげ(網羅的)な気が。

>>217
Appel「Modern Compiler Implementation in Java 」ですか?
219 :02/08/07 23:05
Compiling with continuation とか。
正式リリースは 8/14 か。当初は 7/23 に出るとかいう話だったから、3週間遅れか。
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
今夜も寝られなくなっちゃったじゃねえかゴルァ!
>224
最初はIPLをトグルスイッチぱちぱちやって入力した。
227名無しさん@お腹いっぱい。:02/08/16 03:32
トグルスイッチといえば、
コンパイラではなくOSだがCray社を作ったシーモアクレイは
OSをトグルスイッチでパチパチパッチンと入れて
それがいきなり動いたっていう.本当か?
http://cruel.org/freeware/hdomcorrect.html
GCCと関係ないけど.
何でみんな新しいもの追っかけるの?
昔は新しいモノを追っかけてたんだけど、安定してるはずのgcc2.95.2で
glibcをmakeしたら腐ったコード吐いたことがあったので、新しいのは怖くて使えないよ。

結局、egcs2.91.66が一番安心できる。
>>224
バベルの図書館で貸し出してます。
VC++は民明書房にあるそうです。
>>228
新しいもののほうがナイスな最適化するかもーとか、
C++ の標準準拠っぷりとか、
gcc のパッチを作ってるので仕方なくーとか。

必要ないんなら古いのでいいと思いますよ、ええ。
FreeBSD と NetBSD は gcc-3.x に移行する予定みたいですね。
231名無しさん@お腹いっぱい。:02/08/16 16:52
バグると不平を言うよりも、進んでバグを出しましょう

…というのがフリーUNIXコミュニティの美徳ではないかと>>228

仕事で使うならstableなものを選択するというのもアリ
>>231
バグって不平をいうやつはそこまでのレベル。
233名無しさん@お腹いっぱい。:02/08/17 03:29
おれbug見つけたら小躍りしながらレポート書いちゃうけどな(・∀・)
>>233
あんたは素晴らしい。
俺にはコンパイラのバグなんてさっぱり分からん。
>>234
templateで遊んでたらいくらでもinternal compiler error出るぞ
>>235
internal compiler errorとか出たらどうやって追いかけてるの?
237名無しさん@お腹いっぱい。:02/08/17 13:25
>>235
例えばどんなソースだとエラーがでる?
>>236

追いかけるのはGCCチームにやらせりゃいいことだろ。
error が出たソースを添付してレポートすりゃいいだけ。
gccのソースも読めないやしは半人前。


と言われつづけてはや10年
240名無しさん@お腹いっぱい。:02/08/17 16:25
10年前の gcc-1.42 がファイル数 281、展開後のサイズ7.7Mだったのが、
gcc-3.2 ではファイル数 14375、サイズ161MB に肥大しているから、
せっかくの10年前にgccのソースを読む機会を逸した奴はもう一生読めないに違いない。
241あぼーん:あぼーん
あぼーん
242あぼーん:あぼーん
あぼーん
>>240 10年前のソースを読めば解決?w
今のgccぐらいの規模なら理解できるだろ。
世の中もっと大きなソフトウェアは幾らでもある。
245名無しさん@お腹いっぱい。:02/08/17 19:59
ここにはgccを理解してる人がいるみたいなので質問させてください。
1. rtl.defやrtl.h,rtl.c
2. *.md
3. -drオプションを指定されたときに吐き出されるファイル
これら三つの関係がいまいちよくわかりません。
簡単でいいのでこれらの関係を教えて下さい。
>>245

gcc の info 読もう。
gcc -> Passes `Paasses and Files of the Compiler' のあたり。
>>246
それはよく読んだのですが、分からないからここで質問しました
248あぼーん:あぼーん
あぼーん
>>247
えー その info に十分な情報があると思うけどなあ。

1. RTL を操作するためのユーティリティ関数と、RTL の共通定義
3. コンパイル対象のソースが RTL に変換された直後の RTL の様子
2. insn-flags.h とか insn-codes.h とか insn-output.c とか
insn-attrtab.c とか、とにかくマシン依存のコンパイラソースを
生成するためのソース
>>249
おお、ありがとうございます。
なんとなくイメージが掴めました。
教えてもらったことを手がかりに
ドキュメントを読み直します。
俺は組込み系やってるのでコンパイラが吐き出したコードを読む機会が多いんだけど、
最適化されるはずなのにうまくされてないような所ってのも、正しく動くけどbugのうちとみなしてレポートしてる
たいていは数日以内にpatch送ってもらえたりするんで、いつでもmakeできるように
gccのソースツリーは展開したまま置いてある。
間違ったコード吐いたりされる場合はさすがにpatch送ってもらうのを待ってるわけにいかんので
レポートするのと同時に自分で治すこともあるけど、簡単に治せるようなものなら良いが
ちょっとややこしくなるともう手に負えん(;´Д`)
252名無しさん@お腹いっぱい。:02/08/21 22:25
今gcc-3.2コンパイルしてます。
dejagnuのチェックでFAILが出まくってるんだけど、コンパイル失敗ですか?
一応継続してるんですが。
253名無しさん@お腹いっぱい。:02/08/22 08:05
gcc が Java のバイトコードも吐けるようになるのはいつの日か。
>>253 gcj -C で吐くと思われ。
Gentoo
質問です。
某マシンでgcc使ってるんですけどnewが例外投げてくれません。
PCのgccでも昔は駄目だったんですけど、
3.0では直ってるんでしょうか?
>>256
PCのgccを3.0にして試せばいいのでは?
>>256
・例外そのものが機能しないのではなく、newだけ?
・昔ダメだったgccのバージョンは?
ぐらいの情報は欲しいなあ。
>>218
亀レスだが、英語でいいなら、Modern Compiler Designでいいんじゃない?
ドラゴンブックもぺ─バーバックの奴買っておけばいいし。
Advanced Compiler Design and Implementationも面白いよ。

Appelのは傾向がチョト違う。
>>219も"Garbage Collection: Algorithms for Automatic Dynamic Memory Management"も(w
>>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自体が成功しているからでは?
intel 系っつーか PentiumPro 系のハナシですが、
gcc2.95 って妙に速いコード出すことがあるですね。
gcc3.2 や icc より速い。。。
263224:02/09/03 22:09
> 260さん
ありがとうございます.それはそうなのでしょうけど,
(最初にCを作った人は"Cで書いてコンパイルしたC Compiler"
がそれこそ世界になかったわけですから!)
その "FortranやPL/Iで書いたC Compiler"を作るための
"FortranやPL/IのCompiler"をやはり作らなければいけませんよね...
でも教えてばっかりでもなんだか悪いのでいろいろ調べてみます。
どう考えても最初は簡単な(機能が少ない)言語Aをアセンブリ言語で書き、
その言語Aを使ってもうちょっと高水準の(機能が多い)言語Bのコンパイラ
を書く.-> 以下同文 とやっていったのだとは思いますが.
つーか、別にアセンブラだけで(機械語だけでさえも)
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に移植してからだったか?
>263
> 以下同文とやっていったのだとは思いますが.

で、結局 >>226 まで遡ると。
dmrセンセイはBでCを書いたんじゃないの?
アセンブラの登場はFortranコンパイラよりも後のはず。
Unixの歴史とかの書籍を見ると
「コンパイラコンパイラ」
ってのがあったらしいが...
....一番最初はどうだったんだろう。
謎、謎。
yacc?
273名無しさん@Emacs:02/09/06 10:02
libungif コンパイルできねー
@ gcc-3.2
275棄教者 ◆witdLTi2 :02/09/06 10:42
>>266-267
gcc は yacc/bison が無いと動かないよね
yacc/bison は C で書かれているよね
。。。
>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
#include <iterator>
279277: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 が
見つからない、と言われてしまいます。
OS は?
ldconfig とか、LOAD_LIBRARY_PATH とか?
282あぼーん:あぼーん
あぼーん
>280
リンク時に
g++ -Wl,-rpath -Wl,/usr/local/gcc-3.2/lib
と書いておけば? specs ファイルでも指定できるかもしれんが。
284280:02/09/09 00:55
アドバイス、ありがとうございます。
>>281
Linux 2.2 です。
ldconfig とか LOAD_LIBRARY_PATH とかは、とく使ってませんでした。
man を見ると、ldconfig で解決できそうな感じがします。

>>283
これは、スタティックリンクをするときの話でしょうか。できれば、
実行時にリンクを解決したいのです。
ダイナミックリンクする場合の指定方法だよ
286280: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 では、メンバ関数がインライン展開されずに
別モジュールとしてコンパイルされているんですかね。
287280: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 を有効にするには
どうすればいいんでしょう。
288280: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があるのが不安です。
http://gcc.gnu.org/gcc-3.2/buildstat.htmlを見ると
(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版があるようなのでそっちを入れた方がいいんでしょうか。
gcc3.xをメインに使わないやしは氏ね
294名無しさん@お腹いっぱい。:02/11/20 22:14
gcc-3.2でperl-5.6.1がmake出来ない(´・ω・`) ショボーン
>>295
もしよければ詳細キボンヌ



gcc-3.2は最適化でバグがあるらしいね…「-fno-strength-reduce」を追加して対処
した方がいいらしい(Vim-6.1のパッチ260より)

gcc-3.2.1ではfixされているのかな?
297295:02/11/22 00:06
これと同じ ttp://archive.develooper.com/[email protected]/msg84835.html
パッチあったんで助かったYo!
299名無しさん@お腹いっぱい。:02/12/12 20:20
300名無しさん@お腹いっぱい。:02/12/13 16:47
propolice の特許?
特開 2001-216161
http://www2.ipdl.jpo.go.jp/BE0/index.html
で 検索汁
>>300

一部に衝撃が走り中(w
正式書類にはこう書くのか(藁
インターナショナル・ビジネス・マシーンズ・コーポレ−ション
>>300
使ってもお金とられなきゃ特許でもいいや…
泳がせておいて後で回収と言うunisys方式もあるよ。
305名無しさん@お腹いっぱい。:02/12/14 08:58
特許を申請した理由が知りたい…
日付からするとパッチを公開した時期なのかな?
特許申請しないと公開させてもらえなかったのかも。
特許の文書もやけに教育的だし。
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
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
>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-*-*

(´∀`)
313nobody:02/12/19 11:28
TLS サポートって TLS をどうサポートするんだろう?
下校できるとか
>>313
True Love Story カヨ
315名無しさん@お腹いっぱい。:02/12/20 17:29
3.2.1いい感じだね。
安定してきた感じ。
そろそろ、全面的に3を採用してもいい頃なんじゃないかねえ。
Cに関しては移行についての問題も少なそうだし。g++がなあ
2.XXはおかしいから早いところなくなって欲しいのだけど。
317名無しさん@お腹いっぱい。:03/01/08 12:35
祝 Debian sid で gcc = gcc-3.2 化
これで、開発系は全部がgcc-3.2になったのかな?
>>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.
なんて書かれてはいるけどね。
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
322296:03/01/12 18:42
>>320
ま、3.2.1でも3.2と同様問題がある…ということですか ショボーン
>>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ってどうよ
>>325
普通に動いてるけど。
最適化に関して改善されたみたいだけどどうだろう。
ベンチなんてとったりしてないし。。。
しかし、最近は簡単にマイナーバージョンを上げるなぁ。
>>327
3.3ってのは実質3.2だってことをお忘れなく。
3.1.1 -> 3.2 になったからってことかな?
330名無しさん@お腹いっぱい。:03/03/11 05:40
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 をバージョンアップするときは以前のバージョンを消せということ?
上書きしてトラブっても自力で対処できないような香具師は
おとなしく新しいディレクトリ掘っとけ、ということでしょう。
/usr/local/gcc-3.2.2/ とか。
>>330
混ぜるなキケンってこと
>>332
あんたは、バージョンごとにディレクトリ分けてるのかい?
>>333
$ ls /usr/lib/gcc-lib/i386-redhat-linux
2.96
3.2.1
egcs-2.91.66

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

おまい、自分でgccをインストールしたことすらないでしょ。
もれはCVSの日付で分けてるけど。
>>335
> おまい、自分でgccをインストールしたことすらないでしょ。
たしかに久しくやってないな。
338山崎渉:03/03/13 16:38
(^^)
339名無しさん@お腹いっぱい。:03/03/14 19:56
長寿だなぁ、このスレ。
341山崎渉:03/04/17 12:18
(^^)
342あぼーん:あぼーん
あぼーん
343名無しさん@お腹いっぱい。:03/04/26 13:14
age
gcc-3.2.3 リリース記念sage
>>344

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

上で3.2.2キタ━(゚∀゚)━!って言ってたのはDebianに
PreReleaseが入ったってだけだし。
間違えた。3.2.3ね。
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ってどこがちがうの?
i686にはPenPro,Pen2やAthlonも含むんじゃないの?
354名無しさん@お腹いっぱい。:03/05/08 04:32
>>352
gccのソース嫁

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

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

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

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

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

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

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

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

まあ、FreeBSDなんぞの不具合を延々引っ張られるのも
たしかに迷惑だが。
>>385
もうやめとけw
389375 :03/07/11 19:40
>>387
本当は375==382==384==388だよ。
>>385の方がやや劣勢?
まあ、とりあえず、
> `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用が作れない…。
どうしたものか
>>393
ayamura?

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

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

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

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

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

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

マニュアルアップデートしてないのホントですね
>>413
libsupc++とか作るときに見るはず。
libgccも見てるっけ?
416あぼーん:あぼーん
あぼーん
417名無しさん@お腹いっぱい。:03/08/09 13:53
3.3.1 age
418あぼーん:あぼーん
あぼーん
419あぼーん:あぼーん
あぼーん
420あぼーん:あぼーん
あぼーん
421名無しさん@お腹いっぱい。:03/09/04 16:21
gccは糞
お通じありがたし
423名無しさん@お腹いっぱい。:03/09/05 23:04
gccは糞
3.4 でまた C++ ABI 変わるってほんと?
426名無しさん@お腹いっぱい。:03/10/19 00:30
3.3.2age
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`

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

まちつづけることが重要です。
429427:03/10/20 11:59
>>428
修行がたりませんでした。
いい子にして待ちます。
ども。
430427:03/10/21 14:08
長い...。
24 時間たっても終わらないよぅ(Celeron 1.4GHz)。
431427:03/10/21 15:44
終わった...。
26 時間ばかりかかったです。

こーゆーのを見ると旧式になったのだなぁと思ふ。
世間ではCeleron 1.4GHzで旧式なのか...........
433427: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.

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

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

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

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

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

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

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

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

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

IT業界の将来はオブジェクト指向とアージャイル開発が握っています!
オブジェクト指向==デザパタですか。ずいぶん視野の狭いお話で。
456名無しさん@お腹いっぱい。:03/11/17 10:17
いまだに2.95ですが何か
>>456
ちんぽむけてますか?
俺的にさっさとlispのコンパイラ作って欲しい
Gnu is Not Unix
RMSおよびGNUはUNIX市場をぶち壊すことがその目的です。
LISP,関数型言語の繁栄のために日夜努力されているのです。
Allegroの商圏を踏み荒らすような真似をするはずも
ありません。
anonymous cvs server落ちてる?
ここ最近ずっとおかしくない?
うん、gnu.orgのCVS serverおかしい
まあg++の作業はちょっと遅れてるっぽいし、
3.3の完成度は高いから、2年ぐらいは
新規のリリースなしでもいいかな〜なんて。
gcc 3.4 って、cc1 とか collect2 が /usr/libexec に移動しているね。
それと /usr/lib/gcc-lib が /usr/lib/gcc になってた。
465名無しさん@お腹いっぱい。:04/01/24 05:44
WE LOVE GCC!!!
>>463
そろそろ3.4.0Releaseという噂が聞こえてきましたよ…
467461: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: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
漏れは3つ位出したぞ。sparcじゃないけど。
マイナーなアーキテクチャの宿命だ。
メンテナが頑張ってくれているので消えることは無さそうだが。
少しぐらいのバギー加減は、ユーザーにコンパイラの内部動作に
関心持ってもらうためには必要だと思われ。とかいってみる。
>>471
emacs-21.3をleim入れてコンパイルしたら使い物にならないバイナリを吐くのも
啓発のためっすか?(泣)

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

結局 3.2.3 にダウングレードしちゃった。手持ちソースではこちらの方が安定
しているみたいだし。
>>472
Emacs current つかいなよ。
いつの間にか 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;
}
くだらない質問はここに書き込め!なんでもアリ32
http://pc3.2ch.net/test/read.cgi/unix/1079699147/

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

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

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

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

これってANSIかなんかの規格がそうなってるのかな?
ときどき使ってるからちょと痛い
ミラー逝きわたるっていったいどこを泳いでるの?
全然見当たらないんだけど。
>>510
一昨日にはもう ftp.iij.ad.jp にあったぞ。
ringも来てるところはある。
そんなことより3.3.3はなんで沈没してるんだ
gccは3.3.3が最高傑作。とか後々までかたられるでしょう。
>>515
なんだって〜(AA略)
騙られる、だったりして
>>495の3.4.0だとfは1になってる。
519名無しさん@お腹いっぱい。:04/04/30 01:16
>>508
3.4.0でのビルドを試して見ましたが、3.3以前でOKだった、幾つかの作法の悪いプログラムは全滅ですね。
丁寧に直せばいいんでしょうけどね…
3.5からはCもエラーにするらしい。
早めに直しておきませう。
縛りがきつい方が有難い。
きついのに血行を妨げないのがプロの縛り方
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
ドスドスドスドス
この洗いを作ったのは誰だぁ!!
雄山?
526名無しさん@お腹いっぱい。:04/05/03 18:17
だな。
>>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
>>522
めちゃワロタ
gcc3.3.4のチャンゲログが無いですがな
3.x はバージョン進むのが早いな。
ICEってかっこいい響きだよな
ドイツの新幹線もICE
Inter City Express というのか。
In-Circuit Emurator
Internal Compiler Error
あとは?
X11のInter-Client Exchange protocolもな
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のバイナリーってどこで入手できますか?
>>536
おんなじとこにあるべ
538名無しさん@お腹いっぱい。:04/09/10 01:24
GCC 3.4.2 age
>>536
Bruno Haible
3.4.1 から 3.4.2 に上げたら生成されるバイナリが
libgcc_s.so.1 をリンクするようになった。
このへん何か変わった?
うん。
GCC 4.0のおいしいところは?
スパイスが効いているところ。
ひどいめにあわすよ
プリコンパイルヘッダの作り方は
gcc /usr/include/**/*.h
でいいんだっけ?
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
さてGCC4のリリースも近づきつつある今日この頃。
自分はこまめにビルド・チェックするほどの追っかけじゃなかったけど、GCC3というプロダクトはどのような評価に値する物だったのでしょか。

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

よろしければみんなの御意見、どぞ。
g++のC++規格追従上、3.X以外に考えられない。
3.4系はほとんど使われないまま4.0に移行しそうな予感が。
いまだに 2.95.x だよ。もう 4.x の足音が聞こえるような時期なのか。
神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
あげ
gcc-4.0 が出るまでにこのスレを使いきろう…
いつ出るのさ
>>555
予定では近いうちに出るはずだが。

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

まあ急ぐ用事も無いから別に構わんが。
4.0で新しくなる項目だとよ

What will be in 4.0
ttp://gcc.gnu.org/wiki/What%20will%20be%20in%204.0
564名無しさん@お腹いっぱい。:2005/04/22(金) 11:05:39
gcc-4.0 が出たらしいですが、スレ違いでしょうか
565名無しさん@お腹いっぱい。:2005/04/22(金) 12:32:04
びみょー
566名無しさん@お腹いっぱい。:2005/04/27(水) 13:50:34
gcc-4.0 で fortran を使うにはどうしたらよいでしょうか?
567名無しさん@お腹いっぱい。:2005/04/27(水) 13:54:41
>>566
スレタイ見ろよ。
スレ違いもいいとこだろが。
ったく。
568名無しさん@お腹いっぱい。:2005/04/27(水) 14:39:07
569名無しさん@お腹いっぱい。:2005/04/27(水) 14:42:23
GCC 3.0がリリーナされるのはいつですか?
570名無しさん@お腹いっぱい。:2005/04/28(木) 00:03:01
3と4は別スレじゃなくてもいいんじゃね?
571名無しさん@お腹いっぱい。:2005/04/28(木) 00:29:45
しっかし、このスレ息長すぎー。
4年近く存在するのか。
572名無しさん@お腹いっぱい。:2005/04/28(木) 13:39:53
遅蒔きながら、祝・GCC 4.0リリース。

gcc.gnu.org/gcc-4.0/changes.html とかは当然読んだんだけれど、他のサイトでリリースに対する反応があったらURLコピペぷりーず。
573名無しさん@お腹いっぱい。:2005/04/28(木) 18:29:22
とりあえず /. の記事。

GCC 4.0.0 Released
http://developers.slashdot.org/article.pl?sid=05/04/21/2125235

GCC 4.0.0リリース
http://slashdot.jp/article.pl?sid=05/04/22/101234
574名無しさん@お腹いっぱい。:2005/05/03(火) 22:28:44
575名無しさん@お腹いっぱい。:2005/05/05(木) 20:16:14
GCC 4.0
A Review for AMD and Intel Processors
http://www.coyotegulch.com/reviews/gcc4/
576名無しさん@お腹いっぱい。:2005/05/05(木) 20:27:58
しまった。>>574 の元記事だったか。
577名無しさん@お腹いっぱい。:2005/05/14(土) 05:43:22
いまだにgcc-2を使っていますが何か?
578名無しさん@お腹いっぱい。:2005/05/14(土) 09:18:39
>>577
ニートですか?
579名無しさん@お腹いっぱい。:2005/05/14(土) 10:53:11
ABIを変えたら負けだとおもってる。
gcc2.95を使ってる自分は勝ってるとおもいます。
580名無しさん@お腹いっぱい。:2005/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 ([email protected]).
Check config.log to see what went wrong ...
581名無しさん@お腹いっぱい。:2005/05/18(水) 17:40:26
むぅ……。top-3.5.1 もコケた。gcc-3.4.3 なら問題なし。
4.0 はまだ手を出すべきじゃないのかしらん。
582名無しさん@お腹いっぱい。:2005/05/18(水) 17:48:58
バグレポートしろよ
583名無しさん@お腹いっぱい。:2005/05/18(水) 18:40:57
そうなんだけど、プログラムは専門外だから
ソースが悪いのかコンパイラが悪いのか切り分けできないんだもん。
584名無しさん@お腹いっぱい。:2005/05/18(水) 18:55:07
>>583
切り分けは developer にしてもらえばよいのでは?
http://news.gmane.org/group/thread=87u0lw5hnx.wl%25yoichi%40geiin.org/force_load=t
585名無しさん@お腹いっぱい。:2005/05/21(土) 11:32:27
gcc 3.4.4出ましたよ。今のところ、これが一番安全パイ?
586名無しさん@お腹いっぱい。:2005/05/22(日) 15:35:41
3.3.5じゃない?
587名無しさん@お腹いっぱい。:2005/05/22(日) 16:21:34
3.3.6じゃなくて?
588名無しさん@お腹いっぱい。:2005/05/22(日) 17:59:47
うちも 3.3.6
589名無しさん@お腹いっぱい。:2005/05/23(月) 13:47:26
2.95.2
590名無しさん@お腹いっぱい。:2005/05/23(月) 17:04:54
2.95.3 じゃなくてーってなんかもう話題ないんか
591名無しさん@お腹いっぱい。:2005/05/25(水) 22:25:32
m68kでi*86のクロスとか、変なことしてる奴いるけ?
592名無しさん@お腹いっぱい。:2005/05/25(水) 23:26:56
いるけ?
593名無しさん@お腹いっぱい。:2005/05/25(水) 23:38:09
594名無しさん@お腹いっぱい。:2005/06/19(日) 19:03:22
アホみたいにメモリ喰うようになったな。
おれがdjgccで1.3Xとか使ってた頃は(以下略・・・
595名無しさん@お腹いっぱい。:2005/06/19(日) 19:49:04
なんだいないのけ.
596名無しさん@お腹いっぱい。:2005/06/19(日) 20:03:25
惰性で見てるよこのスレ。
gcc が出たころは衝撃だったなー。
売りもんのコンパイラよりいい最適化コード吐くし、
gcc のソースコードとかマニュアルとか読んでぞくぞくしてた。




597名無しさん@お腹いっぱい。:2005/06/20(月) 00:19:58
>>596
スパーハッカキタ━(゜∀゜)━( ゜∀)━(  ゜)━(  )━(゜  )━(∀゜ )━(゜∀゜)━!!!!
598名無しさん@お腹いっぱい。:2005/06/20(月) 06:57:20
gccはANSI Cを使うためだけに入れました。バージョン忘れた。
599名無しさん@お腹いっぱい。:2005/06/20(月) 11:19:17
1.27とか1.36とか?
つーか1000行くまでに4.1出てるし(w
600名無しさん@お腹いっぱい。:2005/06/23(木) 13:08:50
このペースなら5.0も期待できるな
601名無しさん@お腹いっぱい。:2005/07/01(金) 23:33:23
そろそろ4.0.1かな?
602名無しさん@お腹いっぱい。:2005/07/08(金) 23:46:44
603名無しさん@お腹いっぱい。:2005/07/08(金) 23:53:41
gccの中の人GJ!
低脳支那人逝ってよし
604名無しさん@お腹いっぱい。:2005/07/08(金) 23:56:55
>>602
支那人が!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
605名無しさん@お腹いっぱい。:2005/07/08(金) 23:57:23
すまん、火病おこしてしまったwwwwwwwwwwww
606名無しさん@お腹いっぱい。:2005/07/15(金) 02:24:14
>>580
カメレスだけど。
CFLAGS=-fno-builtin でいけるよ。
607名無しさん@お腹いっぱい。:2005/07/15(金) 07:16:29
gcc-4.0.1でperl-5.8.7がコンパイル出来ない。
miniperlがPATHどうこう言ってるけど、コンパイラの違いでそんなの影響出るんだろうか?
608名無しさん@お腹いっぱい。:2005/07/15(金) 07:26:27
>>607
どんなエラー?
609名無しさん@お腹いっぱい。:2005/07/15(金) 09:20:30
>>608
少し上から貼ると、こんなかんじ

CCCMD = x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -D_REENTRANT
-D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O3 -mtune=k8 -march=k8
-msse3 -mfpmath=sse -ftracer -pipe -fforce-addr -minline-all-stringops
-mno-push-args -maccumulate-outgoing-args -fprefetch-loop-arrays
-fsched-spec-load -funit-at-a-time -Wall
x86_64-pc-linux-gnu-gcc -L/usr/local/lib -o miniperl \
miniperlmain.o opmini.o libperl.a -lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
./miniperl -w -Ilib -MExporter -e '<?>' || make minitest
make: [extra.pods] Error 1 (ignored)
./miniperl -Ilib configpm --heavy=lib/Config_heavy.pl configpm.tmp
Can't find configpm on PATH, '.' not in PATH.
make: *** [lib/Config.pm] Error 29

確かに、カレントディレクトリにconfigpmはあるんだけど。
610名無しさん@お腹いっぱい。:2005/07/15(金) 11:26:27
>>609
ふむ、よくわからんけど、config.sh の optim から最適化を外し
て、./Configure -S したあと、gmake するとか、thread 無しでコンパイルし
てみるとか。やってみたらどうかね。
611名無しさん@お腹いっぱい。:2005/07/15(金) 11:30:09
よくわからんけど、メッセージだけ読むと PATH=.:$PATH make
コンパイラの違いは不明
612607:2005/07/15(金) 15:45:30
やっぱり、インタプリタレベルスレッドを使わないと問題ないようです。
とりあえず、しばらくはperlだけ諦めます。
613名無しさん@お腹いっぱい。:2005/07/17(日) 09:20:16
libpcapがgcc-4.0.1だと死にました。実際はtcpdumpから呼び出されて死ぬんだけど。
もう詳しい事はわからん。
614名無しさん@お腹いっぱい。:2005/07/17(日) 09:51:55
>>613
gdb tcpdump core
backtrace
615613:2005/07/17(日) 11:28:40
-O2なら平気で-O3だと駄目みたい。
他に何も指定して無くても。
アーキテクチャはx86_64です。

tcpdumpのexpression指定しなければ落ちません。

バックトレースは深すぎるので、適当に
-O3 -ggdb3でlibpcapを作って
-O0 -ggdb3でtcpdump作った結果。

#0 0x00002aaaaae3125b in icode_to_fcode () from /usr/lib/libpcap.so.0
#1 0x00002aaaaae3159c in icode_to_fcode () from /usr/lib/libpcap.so.0
#2 0x00002aaaaae33efd in bpf_optimize () from /usr/lib/libpcap.so.0
#3 0x00002aaaaae25c07 in pcap_compile () from /usr/lib/libpcap.so.0
#4 0x00000000004500f4 in ?? ()
#5 0x00002aaaaaf67893 in __libc_start_main () from /lib/libc.so.6
616名無しさん@お腹いっぱい。:2005/07/17(日) 11:40:39
-finline-functionsが原因みたい。単体でも落ちた。
617名無しさん@お腹いっぱい。:2005/07/17(日) 12:35:40
x86_64 ってOSによっては安定してなかったり?
618名無しさん@お腹いっぱい。:2005/07/17(日) 17:21:39
どうなんでしょう。私は、gentoo linux使ってます。
4.1-CVSでもprofilebootstrap失敗するし、i386と比べたら安定してないんでしょうね。
619名無しさん@お腹いっぱい。:2005/07/17(日) 23:06:57
>>615
> アーキテクチャはx86_64です。

何故先に言わん(w
シグナル受けたんならどのシグナルかくらい晒さないと…
620名無しさん@お腹いっぱい。:2005/07/18(月) 02:25:22
>>619
シグナル核の忘れてました。SEGVです。

dmesgが埋め尽くされてる。
tcpdump[24386]: segfault at 0000000000000030 rip 00002aaaaae3125b rsp 00007fffff82f1a8 error 4
621名無しさん@お腹いっぱい。:2005/07/18(月) 07:45:07
バウンダリ関係かねえ。
libpcapを-g付きでcompileしてdebugが王道だと思うけど、
-mpreferred-stack-boundary= 辺りを試してみるのもいいかもねえ。
-march=k8にはなっているよね?
622名無しさん@お腹いっぱい。:2005/07/18(月) 10:13:07
Linux 2.6.12.3にしてみたら動作が変わった…。

-O -finline-funcionsはokになりました。
-O2 -finline-functionsだと落ちます。
-O2はonになるフラグが多すぎて、ちょっと調べきれないです。

-finline-limitで11までに制限すればok。12以上で落ちます。
-march=k8指定、-mpreferred-stack-boundaryは4,8,12はどれも解決にはなりませんでした。

なんか、デバッグ情報が出るようになったので貼ってみます。libpcap-0.9.3です。
#0 find_levels_r (b=0x0) at optimize.c:222
#1 0x00002aaaaae2df2b in find_levels_r (b=0x6fe7b0) at optimize.c:230
#2 0x00002aaaaae2df1f in find_levels_r (b=0x6fdbc8) at optimize.c:229
#3 0x00002aaaaae2ec40 in opt_loop (root=0x6fdbc8, do_stmts=0)
at optimize.c:251
#4 0x00002aaaaae303fc in bpf_optimize (rootp=0x2aaaaaf463e0)
at optimize.c:1740
#5 0x00002aaaaae2592a in pcap_compile (p=0x6fd2b0, program=0x7fffffaf1260,
buf=0x6fd120 "port 80", optimize=1, mask=16777215) at gencode.c:386
#6 0x00000000004500f4 in ?? ()
#7 0x00002aaaaaf63893 in __libc_start_main () from /lib/libc.so.6

gcc-4.0.1で-fstack-check, 3.4.4で-fstack-protector使ってみたけど何も出ませんでした。
623名無しさん@お腹いっぱい。:2005/07/18(月) 10:38:15
ifのjumpかな?
-Osだとどうだろう。

-falign-functions -falign-jumps -falign-loops -falign-labels
-freorder-blocks -fprefetch-loop-arrays がオフ。
624名無しさん@お腹いっぱい。:2005/07/18(月) 11:19:08
625名無しさん@お腹いっぱい。:2005/07/18(月) 11:35:46
>>623
-Osはだめでした。

>>624
いけました。ばっちりです。
いろいろ問題ありそうですけど、今のところこれ以外当たってないんですよね。
portageつかってるから、まずいのがわかっている場合は回避してる可能性がありますが。
626名無しさん@お腹いっぱい。:2005/09/18(日) 16:40:56
gcc4は-O1でも-fprefetch-loop-arrays効くのかな
627名無しさん@お腹いっぱい。:2005/09/29(木) 09:12:48
4.0.2が出ました。
628名無しさん@お腹いっぱい。:2005/09/29(木) 21:48:28
3.3や3.4より早いバイナリを作れるようになるのはいつですか?
629名無しさん@お腹いっぱい。:2005/09/30(金) 00:18:55
4.3や4.4になるまでお待ちください。
630名無しさん@お腹いっぱい。:2005/09/30(金) 07:45:55
つーか3.3, 3.4でいいじゃん。
4系はerror recoveryちょっと賢くなった気がするが。
631名無しさん@お腹いっぱい。:2005/09/30(金) 14:43:19
GCCは3.2.xのころが一番早くて安定しててよかった。。。
632名無しさん@お腹いっぱい。:2005/09/30(金) 14:44:13
631です。漢字間違えた。
「早」 → 「速」
633名無しさん@お腹いっぱい。:2005/10/24(月) 01:07:39
でも4.xのcc1plusは明らかに3.xのより速いよ。
634名無しさん@お腹いっぱい。:2005/10/24(月) 06:01:42
4.1のcc1plusは速い。
吐くコードは知らん。
635名無しさん@お腹いっぱい。:2005/11/28(月) 17:33:48
gcc-2.9では通るのにgcc-3.3では voidのとこでエラーになるんですが何故?
prase error before `!' token

636名無しさん@お腹いっぱい。:2005/11/28(月) 17:46:07
コードさらせYO
637名無しさん@お腹いっぱい。:2005/11/29(火) 14:54:40
なんでだお!
638名無しさん@お腹いっぱい。:2005/11/29(火) 16:47:57
それだけの情報で、どう指摘するんだお!
639名無しさん@お腹いっぱい。:2005/11/29(火) 19:12:21
先生! 問題を明確にしない限り、答える事もできないと思います!
\  
   ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ∧_∧∩
    ( ・∀・)/
 _ / /   /  
\⊂ノ ̄ ̄ ̄ ̄\
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
640名無しさん@お腹いっぱい。:2005/11/29(火) 19:15:13
(・3・) 先生は出張中です。
641名無しさん@お腹いっぱい。:2005/12/02(金) 14:04:25
3.4.5 が出ました。
642名無しさん@お腹いっぱい。:2005/12/06(火) 23:45:35
4.2まだー?
643名無しさん@お腹いっぱい。:2005/12/12(月) 19:33:39
5.0はどうですか
644名無しさん@お腹いっぱい。:2005/12/21(水) 10:16:41
>>635
そのgccエラーメッセージおかしいよ
野良ビルドしたんじゃないの?
praseってスペルミスありえない
645名無しさん@お腹いっぱい。:2005/12/21(水) 14:39:52
エラーメッセージはコピペが基本だよなあ
646名無しさん@お腹いっぱい。:2005/12/30(金) 15:49:37
ところでアンインストールはどうやったらいいの?
make uninstallだと弾かれる。
647名無しさん@お腹いっぱい。:2005/12/30(金) 16:06:53
アプリのアンインストールってどうやるの?
http://pc8.2ch.net/test/read.cgi/unix/1051739612/
648名無しさん@お腹いっぱい。:2006/02/25(土) 21:54:59
4.1って安定版?
649名無しさん@お腹いっぱい。:2006/02/25(土) 22:13:30
まだスナップショットしか出てないと思うけど。
私はLinux on amd64でメインに使ってます。
650名無しさん@お腹いっぱい。:2006/02/26(日) 00:37:13
>649
完成したら4.2として公開されるのでしょうか?
651名無しさん@お腹いっぱい。:2006/02/26(日) 02:40:45
4.2ってスナップ出てるんあないっけ?
652名無しさん@お腹いっぱい。:2006/02/26(日) 22:37:36
>>650
4.1が完成したら4.1として公開されますよ。
Linuxみたいに「このバージョンは安定版、このバージョンは実験版」
という区別はありません。
653648:2006/02/26(日) 23:58:48
どうもありがとうございました
654名無しさん@お腹いっぱい。:2006/02/27(月) 03:06:18
そうはいってもGCCってmajor > minorなうちは実験版という評価がもっぱらのような
655名無しさん@お腹いっぱい。:2006/02/27(月) 18:26:02
2.5.8とか
656名無しさん@お腹いっぱい。:2006/02/27(月) 18:48:03
gcc-1.4.2 はいいデキでしたよ。
657名無しさん@お腹いっぱい。:2006/02/28(火) 12:40:22
>>654
評価っていうかジンクスでしょ
658名無しさん@お腹いっぱい。:2006/03/01(水) 15:25:28
gcc-4.1.0 キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
659名無しさん@お腹いっぱい。:2006/03/02(木) 04:56:28
maji?
660名無しさん@お腹いっぱい。:2006/03/02(木) 06:29:44
>>659
http://gcc.gnu.org/

> February 28, 2006
> GCC 4.1.0 has been released.

http://gcc.gnu.org/gcc-4.1/
661名無しさん@お腹いっぱい。:2006/03/02(木) 21:52:08
4.0.2 までは素直にbuild通ってたのに4.1.0で落ちる orz
Solarisダメポ
662名無しさん@お腹いっぱい。:2006/03/03(金) 12:29:17
Solarisはgccのバージョンが上がる最初の版は大抵そのままではうまくいかないw
663名無しさん@お腹いっぱい。:2006/03/04(土) 18:54:23
664名無しさん@お腹いっぱい。:2006/03/05(日) 11:34:19
>>663 kwsk
665!= 633:2006/03/05(日) 15:06:27
>>664
十分に詳しいと思うが。もっと必要ならWikiなりML Archiveなり漁るが良し。
666名無しさん@お腹いっぱい。:2006/03/05(日) 17:30:07
「今度こそ、GCC 4.1正式リリース」
http://slashdot.jp/article.pl?sid=06/03/05/0253210
667名無しさん@お腹いっぱい。:2006/03/11(土) 16:00:02
4.1使った人、どうよ?
668名無しさん@お腹いっぱい。:2006/03/12(日) 15:01:42
.0のバージョンの割には3.4.0や4.0.0の時よりいい
669名無しさん@お腹いっぱい。:2006/03/13(月) 19:49:58
670名無しさん@お腹いっぱい。:2006/03/14(火) 10:19:50
sparc Solaris9 でlibtool と texinfo 入れて --disable-libgcj したらなんとか
gcc4.1.0コンパイルできた・・・
-m64 も使える。さて、何からやるか。
671名無しさん@お腹いっぱい。:2006/03/15(水) 17:53:04
ちょっとコンパイルしてみたけど、以前のバージョンなら通ってたものが
エラーになるね。
error: static declaration of 'XXXXX' follows non-static declaration
とか、、、該当行のstatic外したら通ったが。
672名無しさん@お腹いっぱい。:2006/03/19(日) 02:39:52
4系列になってから、全体的にCの構文に厳しくなったらしい。
muttなんかも構文警告が構文エラーになって、ビルドできなかった事がある。
673名無しさん@お腹いっぱい。:2006/03/19(日) 22:33:39
3も2よりだいぶ厳しくなったといわれてたな。
674名無しさん@お腹いっぱい。:2006/03/20(月) 12:26:36
LLVMまだ?
675名無しさん@お腹いっぱい。:2006/03/25(土) 16:36:31
gcc4.1.0でgcc4.1.0を何回もコンパイルすると不定期にアセンブラが.identが見付からないよと言う壊れたコンパイラになる
676名無しさん@お腹いっぱい。:2006/05/26(金) 15:37:24
gcc4.1.1きた?
677名無しさん@お腹いっぱい。:2006/05/26(金) 17:14:25
678名無しさん@お腹いっぱい。:2006/05/30(火) 15:35:05
gcc-4.1.1 Solaris玉砕 T_T);
679名無しさん@お腹いっぱい。:2006/05/30(火) 20:31:56
GCCもそうだけど、GNUのツールってだいぶLinux-centricに
なってきて、広い影響力は以前より落ちている気がするね。
680名無しさん@お腹いっぱい。:2006/05/31(水) 15:24:52
NetBSD-currentなんかも、ずっと3.3.3のまんまだもんな。

*BSDにおいてはGNU関連ツールは使わざるを得ないから使ってると
誰かが雑誌で言ってたな。
681名無しさん@お腹いっぱい。:2006/05/31(水) 20:49:12
NetBSDは只今GCC4に切り替え中。

確かに NetBSD ぐらい CPU に対応してると、それ全部で使えるコンパイラを
新たに用意するのは難しいでしょうね。
GCCでもマイナーなCPUは切り捨てそうですけど。
682名無しさん@お腹いっぱい。:2006/06/27(火) 20:26:29
OpenCC書いてくれTheo
683名無しさん@お腹いっぱい。:2006/09/03(日) 11:45:37
gcc 大きくなりすぎ
もっと軽い free な cc ないんだっけ?
684名無しさん@お腹いっぱい。:2006/09/03(日) 12:14:51
お前には関係ない。
685名無しさん@お腹いっぱい。:2006/09/03(日) 12:17:23
ビーのコアチームとやらで作ればいいじゃんwwwwwwwww
686名無しさん@お腹いっぱい。:2006/09/04(月) 00:21:07
>>683
TenDRAを入れたいんだが未手付
ttp://www.tendra.org/
ttp://www.ten15.org/

後lccというのがある
ttp://www.cs.princeton.edu/software/lcc/
687名無しさん@お腹いっぱい。:2006/09/04(月) 02:43:19
吐くコードが小さくて速けりゃgccが大きくたって問題はなかろうに。
軽い処理系だと十分なoptimizeができるとは思えんが。
688名無しさん@お腹いっぱい。:2006/09/04(月) 13:12:28
gccもそのうちXみたいにモジュール化するんだろうか
689名無しさん@お腹いっぱい。:2006/09/04(月) 14:12:08
TCC: Tiny C Compiler
http://fabrice.bellard.free.fr/tcc/

>>687
小さい軽い処理系に最適化なんて求めないよ
690名無しさん@お腹いっぱい。:2006/09/04(月) 15:46:35
サイズに関する最適化は欲しい
691名無しさん@お腹いっぱい。:2006/09/04(月) 18:40:32
熟女系の作品だとサイズが縮みます。
692名無しさん@お腹いっぱい。:2006/09/04(月) 20:52:37
膨らむ奴もいる
693名無しさん@お腹いっぱい。:2007/10/12(金) 01:45:29
保守
694名無しさん@お腹いっぱい。:2007/10/18(木) 17:53:02
>>681
gccの問題というより、
NetBSDの方がバージョン移行のCPUテスター不足なんじゃないの?
Linuxはバージョン上げるのに成功しているし。
マイナーだと厳しいよね。
695名無しさん@お腹いっぱい。:2007/11/04(日) 14:20:56
>>694
Linuxはとりあえずバージョン上げて、何かあったら大騒ぎするというやり方。
696名無しさん@お腹いっぱい。:2008/02/16(土) 21:02:53
「Linuxは」というほどディストリでgccの扱い共通してない。
カーネルがgcc依存ってのくらい。
697名無しさん@お腹いっぱい。:2008/06/06(金) 17:54:46
Fedora Core辺りは、
> とりあえずバージョン上げて、何かあったら大騒ぎする
のが仕事だしね。
698名無しさん@お腹いっぱい。:2008/06/24(火) 22:58:25
ほう、ついにGCC3.0が出たのか・・・時代の最先端を行く俺には欠かせないツールになるよ
699名無しさん@お腹いっぱい。:2008/08/11(月) 12:31:36
ところで、昔のC言語ではダメだったのに、今のCコンパイラでは
double sqrt(double); に
sqrt(2) とか引数に整数などdouble でないものを書いてもちゃんと
コンパイルして2の平方根の近似値を返すのはどうして?
プロトタイプ宣言を元にして、引数の型の自動変換が行われるの?
それってC++の仕様じゃないかな?
700名無しさん@お腹いっぱい。:2008/08/11(月) 12:46:07
タイムトラベラーの方ですか?

C89以降、関数のプロトタイプ宣言(とそれに基いた昇格)はCでも当たり前の事ですが。
701名無しさん@お腹いっぱい。:2008/08/11(月) 16:11:49
ついでに質問しちゃおう。xを変数とするとき、

x = x++;

という代入文は、結果がどうなるか不定だと思うんだけども、
そこのあたりどうなっているでしょうか?
702名無しさん@お腹いっぱい。:2008/08/11(月) 16:13:33
ム板で聞いた方がよくね
703名無しさん@お腹いっぱい。:2008/08/11(月) 16:21:06
>>701
おいおい、よく見てみろ。(例が悪いよ)
= と ++ の動作が、どちらが先だとしても x の値は +1 されるだろ。
よって、結果がどうなるか不定ではない。
704名無しさん@お腹いっぱい。:2008/08/11(月) 16:22:53
>>701
つ シーケンスポイント
規格持っているならそこを読んで。
ないならググッて。
705名無しさん@お腹いっぱい。:2008/08/11(月) 16:28:20
せっかく2.95を超える世界制覇バージョンとなることが約束された3.0がリリースされたのに
他に言うことはないのか?
706名無しさん@お腹いっぱい。:2008/08/11(月) 16:36:02
ないな。
707名無しさん@お腹いっぱい。:2008/08/11(月) 17:54:18
「シーケンスポイントに関する規約」に適合していないプログラムは
実行結果が保証されないことが分かった。
 さて、そうなると、規約を破っているソースコードに対しては、
それを警告してくれるコンパイラの機能が望まれる。
GCCではそのあたりがどうなっているのだろうか?
708名無しさん@お腹いっぱい。:2008/08/11(月) 18:27:46
>>707
試せよ。
709名無しさん@お腹いっぱい。:2008/08/11(月) 22:29:33
もうこの板のスレ2年過ぎたら強制dat落ちにしようぜ・・・
710名無しさん@お腹いっぱい。:2008/08/12(火) 01:20:16
5年先まで見通してスレ立てればいいだけの話
711名無しさん@お腹いっぱい。:2008/08/12(火) 11:18:38
投票所を作って、反対意見が出ないようなら削除依頼とかな
依頼してもなかなか削除されねーけど
712名無しさん@お腹いっぱい。:2008/08/14(木) 10:05:42
>>701
なつかしいな、それ。KYKだっけ?
713名無しさん@お腹いっぱい。:2008/08/14(木) 21:37:52
>>703
それは冗談で言っているのか。
714名無しさん@お腹いっぱい。:2008/08/16(土) 04:42:49
715名無しさん@お腹いっぱい。:2008/08/18(月) 03:16:26
>>712
Yじゃねえ。
Nだ。


716名無しさん@お腹いっぱい。:2008/08/18(月) 05:34:08
717名無しさん@お腹いっぱい。:2008/08/25(月) 03:29:13
このしらいさんという方も勘違いしてますね。
718名無しさん@お腹いっぱい。:2008/10/05(日) 05:53:48 BE:1345128858-2BP(0)
OpenBSDは未だに、2.95ですね。
719名無しさん@お腹いっぱい。:2009/01/11(日) 15:34:03
gccで関数プロトタイプ宣言を自動的に生成する機能があると聞いたのですが、
ぐぐってみてもそのような機能は見つかりませんでした。
もし本当にそういう機能があれば、どなたか教えていただけないでしょうか。
またgccに限らず、*.cから*.hを自動的に生成するツールについておすすめのものがあれば教えてください。
720名無しさん@お腹いっぱい。:2009/01/11(日) 19:31:36
GCC3スレにようこそw

ttp://www.kouno.jp/home/c_faq/c11.html#31
> 関数プロトタイプの自動生成ソフトはいくつか存在する。多くはlint に手を
> 入れたものになっている。CPROTOというプログラムが1992年3 月に
> comp.sources.miscにポストされた。他にもcextractというツー ルが存在する。
> コンパイラのベンダーの多くは単純なユーティリティー を用意している。
> 質問18.16も参照のこと。(古いコード用にプロトタ イプを生成するときは"狭い"
> 引数に注意すること。質問11.3も参照の こと。)

gccにそういう機能ってあったかなぁ
721名無しさん@お腹いっぱい。:2011/06/11(土) 00:12:40.83
class A { public: A(){} };

class B : public A
{
B() {A::A();}
};


↑こういうコードで、g++-4.1.2だとエラーなし、
g++-4.6.0だと cannot call constructor 'B::A' directly
というエラーが出ます。どう修正するのが適切ですか?
722名無しさん@お腹いっぱい。:2011/06/11(土) 07:25:12.63
>>721
class A { public: A(){} };

class B : public A
{
B() {}
};

で、暗黙的にAのコンストラクタが呼ばれる。
もしくは、渡す引数があれば、
class A { public: A(int arg){} };

class B : public A
{
B() : A(123) {}
};
とする。
723名無しさん@お腹いっぱい。:2011/06/11(土) 08:59:42.53
>>722
ありがとうございます。それでやってみます。

ところで、逆に Bをコンストラクトする時に、
暗黙にAのコンストラクタを呼ばないようにするにはどうしたらいいですか?
724名無しさん@お腹いっぱい。:2011/06/11(土) 09:04:05.21
>>723
理屈上おかしいし、それは多分できない。

実装上は、Aに何もしないコンストラクタを用意すれば、呼ばれてないのと同じことにはなるかもしれない。
725名無しさん@お腹いっぱい。:2011/06/11(土) 09:20:46.87
>>724
できないんですね。わかりました

ところで、最初の >>721 の質問のように
わざわざ継承元のコンストラクタを呼んでるようなコードが
複数のソフトで見つかるんですが
これ、何か意味があったのではないのでしょうか?
それとも、こういう誤解が広範囲に広まっていたのでしょうか?
726名無しさん@お腹いっぱい。:2011/06/11(土) 12:08:55.06
>>725
実はC++に詳しくないので、そういう書き方があったのは初めて知った。
今の言語規格にはないやり方で、わざわざ利用しているとしたら、理由はわからない。

ただ、今の言語規格ではAのコンストラクタは必ずBのコンストラクタに先立って実行されるので、
継承元のコンストラクタを呼んでるようなコードが、Bのクラスの一番初めの実行文でない場合、
処理の実行に影響がないかどうかは気をつけないといけないと思う。
727名無しさん@お腹いっぱい。:2011/06/11(土) 17:30:51.28
>>725
コンストラクタを呼んでるつもりで、実は一時オブジェクトを作って捨ててるだけ、ってのはたまに見る。
公開されてるソフトにそんなの入ってるとは思わないけどな。
ソフト名を晒してくれると面白いかもしれない。
728名無しさん@お腹いっぱい。:2011/06/11(土) 17:36:41.18
初期化子は結構早い段階で規格に入っているしなあ。
"annotated"の頃には入っていたんじゃない?
729名無しさん@お腹いっぱい。:2011/06/11(土) 17:59:56.17
>>727
kdeaddons-3.5.10の中の kate/tabbarextension/plugin_katetabbarextension.h
というファイルでそういう箇所があります。(本家で公開されてるソースです)

gccのバージョンを上げるとエラーになるため、問題が発覚します。
730名無しさん@お腹いっぱい。:2012/09/14(金) 21:23:43.48
GNU asで、

mov (%ebx), %eax ← ディスプレイスメント(オフセット)なし
mov 0x12(%ebx), %eax ← 8bitディスプレイスメント
mov 0x12345678(%ebx), %eax ← 32bitディスプレイスメント

のようなアドレッシングモードがあって、
ディスプレイスメントのサイズの違う各命令のどれを使うかは
アセンブル時に実際の値で判断して自動決定されますが、

敢えてディスプレイスメントのサイズを明示指定するにはどう書けばいいんでしょう?

たとえば、強制的に32bitディスプレイスメントの命令を使いたいのですが、
mov 0x00000000(%ebx), %eax とか書いても
mov (%ebx), %eax でアセンブルされてしまいます。(dispなし)

mov 0x00000012(%ebx), %eax とか書いても
mov 0x12(%ebx), %eax でアセンブルされてしまいます。(dispは8bit)

(わかってるとは思いますが、オペランドのデータサイズのことではありません)

命令コードを直接.byteで書け、はナシでお願いします。

わかる方いますか?
731730:2012/09/15(土) 10:44:48.95
自己解決しました
732名無しさん@お腹いっぱい。:2012/09/15(土) 11:26:35.79
>>731
どうやって解決したの?
733名無しさん@お腹いっぱい。:2012/09/15(土) 11:37:47.55
回答できなかった者の逆に教える義理はないよ
734名無しさん@お腹いっぱい。:2012/09/15(土) 12:43:03.30
日本語で。
735名無しさん@お腹いっぱい。:2012/09/15(土) 13:18:08.40
元々疑問にも思ってなかったことの回答聞かされても誰も興味ねーだろ
736名無しさん@お腹いっぱい。:2012/09/15(土) 22:13:01.41
このスレなんですか
737名無しさん@お腹いっぱい。:2012/09/16(日) 16:27:31.40
今月はじめ、職場に新しい組み込みマシン(ファンレスの結構省電力構成)が入りました。
多分私が開発全般をまかされそうな雰囲気です。業務的にとある構造分析や
シミュレーションなど行う必要があり、プログラムにアセンブラを使用するのは
聞いていたのですが、添付のサンプルソースコードからチラッと見えたのは
LD A,(HL)という命令でした。

「うへぇ〜、よりによってZ80かよ」

アドレッシングモード皆無、リロケート不可、使いにくいインデックスレジスタ、
今時の関数引数のスタック渡しに対応できるのか不安はつきませんし、
今の若者はこんなCPU使わないので人材も少なくソフト開発も大変です。
おそらく導入に際して、大学など教育機関で最初にZ80に触れて刷りこまれた人間が
強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。

昔、当時、8bitCPUでi8080上位互換でi8085よりも多くのツギハギ命令を追加拡張した
Z80は大学など教育機関に浸透していて、日本のCPU界に多くのバカが輩出しました。

これから私は、おそらくそういうバカが、ADD A,(HL)はできるのにADD B,(HL)は
できないのかとか、相対アドレスのCALL命令はないのとか、
スタックフレームポインタとして使いたいのにLD HL,SPっていう命令ないじゃんとか、
アセンブラ通気取りの偏ったどうでもいい我侭を言い出し(だからZ80使うんじゃねーよ)
それと戦わなければならないのでしょう。そして時代によって決着している、
過去30余年のCPU界隈のくだらないそれらの議論が再現され、それに巻き込まれるの
でしょう。もう今からうんざりです。

だからお願いです。教育現場ではi386でもi568でもi686でも
x86_64でもなんでもいいですが現行のCPUにしてください。

教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
738名無しさん@お腹いっぱい。:2012/09/16(日) 17:09:36.03
739名無しさん@お腹いっぱい。:2012/09/16(日) 21:18:01.14
>>737
ネタニマジレスするとLD HL,SPは LD HL,0 / ADD HL,SP で桶。
スタックフレームならオフセット加算は必須なので、
オフセットを先にHLにロードしておいてからSPを加算する。
例えば関数の第1引数ならreturn addressの2byteの次だから、
LD HL,2 / ADD HL,SP ってやって、以降(HL)で値を取ってくる。
740名無しさん@お腹いっぱい。:2013/08/20(火) NY:AN:NY.AN
ほむほむ
741名無しさん@お腹いっぱい。:2013/09/02(月) 20:03:19.80
祝・GCC 3.0リリース
742名無しさん@お腹いっぱい。:2013/09/27(金) 16:40:54.47
祝・GCC 3.0リリース
743 【中吉】 忍法帖【Lv=40,xxxPT】(1+0:8) 【18.2m】 電脳プリオン:2014/02/01(土) 19:08:01.00 BE:405408285-PLT(12081)
今のバージョンは?
744名無しさん@お腹いっぱい。:2014/04/05(土) 23:11:46.52
745名無しさん@お腹いっぱい。:2014/05/15(木) 12:13:07.18
ぬるぽ
746名無しさん@お腹いっぱい。:2014/07/05(土) 12:28:40.14
かっ!
747名無しさん@お腹いっぱい。:2014/07/17(木) 17:18:58.35
>>745
ガッ!
748名無しさん@お腹いっぱい。:2014/08/04(月) 23:44:00.06
749名無しさん@お腹いっぱい。:2014/08/20(水) 07:50:18.80
ぬるぽ
750名無しさん@お腹いっぱい。:2014/09/01(月) 13:54:42.23
祝・GCC 3.0リリース
751名無しさん@そうだ選挙に行こう:2014/12/13(土) 21:22:45.35
質問です。

gccって、同じ文字列をまとめて最適化してくれますよね、
ソース中に複数 "hogehoge" と "hogehoge" のように同じ文字列があった場合。

ソースファイルが1個の時はこれでいいんですが、
ソースが file1.c と file2.c に分かれてる時、
file1.c に "hogehoge" があって、file2.c にも同じ "hogehoge" があっても
コンパイル(リンク)したときにまとめてくれません。(同じ文字列2回埋め込まれる)
これをひとつにまとめるオプションか何かありますか?
752名無しさん@そうだ選挙に行こう:2014/12/13(土) 21:31:28.90
まとめられるだろw
753名無しさん@そうだ選挙に行こう
-flto
?