のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,644,066人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレGCCについて part8

gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - pragma + - spec + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
51 : デフォルトの名無 - 2007/10/31(水) 04:50:28 (-1,-29,-7)
コンパイルオプションに -undef ってなかったっけ?
それでも __DATE__ とかには効かないかもしれないけどね。
52 : デフォルトの名無 - 2007/10/31(水) 06:01:50 (-2,-30,-40)
#if defined(__DATE__)
#undef __DATE__
#define __DATE__ "2007/10/31"
#endif
53 : デフォルトの名無 - 2007/10/31(水) 12:12:54 (-2,-30,-19)
-undefは他のマクロも消えて影響大きすぎるから
gcc -U__DATE__ -D__DATE__=\"hoge\" でいいだろ。
54 : デフォルトの名無 - 2007/10/31(水) 18:09:14 (+26,+8,-2)
無料だな
55 : デフォルトの名無 - 2007/11/02(金) 13:37:57 (+57,+29,-2)
4.3もやっぱり実行速度は今までのより遅くなっているみたいだね
56 : デフォルトの名無 - 2007/11/06(火) 05:57:27 (+23,-4,-16)
マルチスレッドと最適化の問題。 難しいもんですね。
http://kerneltrap.org/Linux/Fixing_Compiler_Misoptimizations
57 : デフォルトの名無 - 2007/11/07(水) 01:33:13 (-3,-26,+2)
LLVMってどうなのさ
58 : デフォルトの名無 - 2007/11/07(水) 16:03:54 (+0,-28,-13)
llvmで検索してでてくる日本語サイトがゴミ
59 : デフォルトの名無 - 2007/11/08(木) 01:21:07 (+3,-29,-149)
gccのltoが手間取っている間にこっちは順調にやってるぽい?
まだ最適化のステージがgccには及ばない部分もあるかもしれない。
まだちょっとバグがあるけど、もう一歩で実用的になりそうな気配が。
結構appleがコミットしてるな。

offline optimizationとやらがいまいちよくわからないけど、
apiで簡単に使えるようなフレームワークがあるのかな?
llvm-gccで直にコンパイルしたらバイナリサイズが結構でかいんだが、
中に実行時最適化の為のコードが入ってるのかな。
どういう手順で使うのが普通なんだろ。
60 : デフォルトの名無 - 2007/11/08(木) 01:50:43 (+56,+28,-5)
http://osnews.com/story.php/18889/Kaleidoscope-Implementing-a-Language-with-LLVM/
ちょうどなんかフロントエンド向けのチュートリアルがupされた模様。
61 : デフォルトの名無 - 2007/11/08(木) 01:58:46 (-1,-29,-40)
offlineってのはruntimeじゃない時。
compile-timeでもlink-timeでもない。
インストールした直後とか、利用者に指示された時。
62 : デフォルトの名無 - 2007/11/09(金) 18:40:12 (-2,-20,+0)
QT
63 : デフォルトの名無 - 2007/11/09(金) 19:35:45 (+3,-30,-83)
llvm-gcc4をcygwin上でbuildできた人はいる?
stage2でerrorになるのだが…

どうも、stage1で作ったxgccの動作確認で失敗してるみたい。
空のmain関数だけのtpをxgccでcompileして実行するとseg. faultで落ちる。
生成したアセンブリを見ると、spを変な値に設定してるようだ。
64 : デフォルトの名無 - 2007/11/10(土) 12:03:13 (-1,-29,-16)
cygwinじゃないけどcflagsに何かmarchあたりの設定してるとビルドできなかった。
65 : デフォルトの名無 - 2007/11/12(月) 02:09:17 (+3,-30,-51)
モノによっては

-mtune=k7

とか、mtune指定するとダメなやつもあったり
そもそも-marchやるだけでダメなやつもあったり
-targetとか、あそこらへん指定すると cannot build executable とか出くさるものもあったり
66 : デフォルトの名無 - 2007/11/12(月) 20:43:38 (-1,-29,-21)
demand pagingってオプションやプラグマとかで
無効化できないものでしょうか?
67 : デフォルトの名無 - 2007/11/12(月) 21:39:39 (-1,-29,-27)
どのdemand pagingのことを言っているのかは知らないけど、
ふつうはOSの機能なんじゃないの?
68 : デフォルトの名無 - 2007/11/12(月) 21:41:35 (-10,-28,-2)
VM?
69 : デフォルトの名無 - 2007/11/13(火) 17:21:26 (+35,-29,-28)
gccでexitをフックするにはどうしたらいいでしょうか?
segmentation faltとかならgdbで場所を把握できるんですが,
exitで普通に終わってしまって..
70 : デフォルトの名無 - 2007/11/13(火) 17:37:52 (-6,-29,-1)
at_exit?
71 : デフォルトの名無 - 2007/11/13(火) 18:29:12 (-1,-29,-6)
>>69

(gdb) b exit
(gdb) b _exit

では止まらないと申すか。
72 : デフォルトの名無 - 2007/11/16(金) 17:40:13 (+40,-30,-73)
#include <stdio.h>
#include <sys/types.h>
int main(void) { printf("%d\n",sizeof(size_t)*8; return 0; }

例えば上のようなプログラムでは
/usr/include/libのどのファイル使って実行ファイルを
作成するんでしょうか
できれば調べ方なんか知りたいですが
73 : デフォルトの名無 - 2007/11/16(金) 18:00:07 (-1,-29,-2)
>>72
gcc -v foo.c とか、
ldd 実行ファイル とか
74 : デフォルトの名無 - 2007/11/16(金) 19:04:28 (+98,+29,-4)
>>72
リンカにマップを吐かせると...
75 : デフォルトの名無 - 2007/11/17(土) 01:31:03 (+13,-30,-92)
1つ質問なのですが、ここで良いでしょうか。

OSはFreeBSD6.3-PRERELEASEで、C言語の勉強をしていました。
ソースは酷い有様なのでエラーが多発するのは分かるのですが、
何かいつもと違うメッセージが出まして・・・。
最後の3行が(手書きですが)

cc: Internal error: Segmentation fault: 11 (program ld)
Please submit a full bug report.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

と書いてありました。
これってどうしたら良いでしょうか。
放っておけば良いとは思うのですが、気になったものでして。
76 : 75です - 2007/11/17(土) 02:44:26 (+3,-29,-57)
すみません自己解決しました。原因が分かりました。
コマンドを間違えて打っていました。
いつもは
cc -o (実行ファイルの名前) (ソースファイル)
で打っていたのですが今回
cc (実行ファイルの名前) (ソースファイル)
と打ち込んで実行していました。

お騒がせしました。
77 : デフォルトの名無 - 2007/11/18(日) 00:09:24 (+67,+28,-4)
>>69
どうなった?

>>74
マップは関係なくね?
78 : デフォルトの名無 - 2007/11/18(日) 10:31:12 (+57,+29,-32)
大有りだろ
何がリンクされたか一目瞭然じゃん
79 : デフォルトの名無 - 2007/11/18(日) 12:19:24 (+57,+29,-4)
最近の子はマップファイルの出し方も知らんのかね?
80 : デフォルトの名無 - 2007/11/18(日) 17:31:38 (+16,-29,-32)
-pthreadと-lpthreadの違いって何ですか?

個人的には常に後者を使ったほうがわかりやすいと思うんですけど
なんでライブラリなしのオプションがGCCにあるのでしょう?
81 : デフォルトの名無 - 2007/11/18(日) 17:39:45 (+4,-29,-16)
>>80
単にライブラリをリンクするだけじゃ対応できない部分があるので、
gcc的にもちゃんとthreadをサポートしてくれる(かもしれない)オプション。
82 : デフォルトの名無 - 2007/11/18(日) 18:31:14 (+0,-29,-21)
>>80
実際に試してみれば判るけど、若干できたバイナリに違いがあるから
特に指定のない限り-pthreadの方がいいと思われる。
83 : デフォルトの名無 - 2007/11/18(日) 18:40:24 (-1,-29,-53)
HP-UXとか要注意な。infoかソース読んで。

gccはスレッドローカル変数とかあって、
ライブラリに全部頼るわけにいかない部分もあるし。
84 : デフォルトの名無 - 2007/11/18(日) 20:23:57 (+3,-24,-20)
誰も-pthreadについて具体的な事を語らない罠。
ま、infoにも詳しい情報ないししょうがないとは思うがw
85 : デフォルトの名無 - 2007/11/18(日) 20:38:29 (+64,+29,-5)
出来損ないOSではつけないとイカンようですな
86 : デフォルトの名無 - 2007/11/18(日) 20:45:18 (-1,-29,-12)
正直あまり意味のないオプションだからね。今となっては。
#include <pthread.h>と-lpthreadで全て済んでしまう。
87 : デフォルトの名無 - 2007/11/18(日) 20:45:45 (+53,-30,-66)
>>81でFA出てるじゃん。
gcc的にも、というだけじゃなくOS(ライブラリ)的にもだけど。

>>85
gccで-pthreadまたは-pthreadsオプションがあるOSは
Linux, Darwin, *BSD, System V, HP-UX, AIX, Solaris
があるが、これら全て出来損ない? w
88 : デフォルトの名無 - 2007/11/18(日) 20:52:13 (+31,+3,-13)
そうだよ
完璧なOSはWindowsのみ
89 : デフォルトの名無 - 2007/11/18(日) 21:11:55 (+57,+29,-19)
つけてもつけなくても同じ、

つけないと正常に動作しない、
は全然違うぞ。

んで、出来ソコナイはどれ?Linuxは違うな。
90 : デフォルトの名無 - 2007/11/19(月) 00:14:11 (+57,+29,-6)
リンカ言うと、変な四角い顔したタレントが思い出されて嫌である。
91 : デフォルトの名無 - 2007/11/19(月) 01:30:12 (+5,-29,-74)
>>87
OSじゃなくてarch依存じゃなかったか。

それと、gccのinfoにはプリプロセサとリンカにマルチスレッドプログラムのコンパイルを行なっていることを伝えるオプションだと書いてあるだけで、実際に何が変化するのかは書いてなくない?
-D_REENTRANTとの関係も教えてくれ。i386のLinuxの話でいいから。
92 : デフォルトの名無 - 2007/11/19(月) 01:37:08 (+64,+29,-2)
具体的に語る人を待とう。
>>87 には無理そうだが。
93 : デフォルトの名無 - 2007/11/19(月) 09:38:34 (-1,-29,-22)
Sunとかのコンパイラの-mtみたいなもんだろ。
94 : デフォルトの名無 - 2007/11/19(月) 14:48:55 (+57,+29,-28)
とうとうここも低能のアホレス来るようになったか。
95 : 80 - 2007/11/20(火) 11:24:03 (+3,-30,-100)
おいらの質問で場が荒れたみたいですんませんでした。
レスをくれた人どうも。

とりあえずi386 GNU/LinuxのGCC -pthreadすると
プリプロセサで#define _REENTRANT 1が定義されますね。
あとはリンカで-lpthreadやってるだけなのかなあ。
96 : デフォルトの名無 - 2007/11/20(火) 11:28:40 (+3,-30,-102)
なぜこういうことを聞いたかってのは下の記事
「pkgconfigとlibtoolの悪」
http://udrepper.livejournal.com/19395.html
で、-pthreadしてると-Wl,--as-neededが効かなくなるぞって話です。

で、pkgconfig/*.pcを検索してみたら-pthreadをしてるのはQt関連とgthreadだけ。
だったら、-pthreadを-D_REENTRANT -lpthreadで置き換えられないかなあ
と思って聞いたわけです。

ただ、たとえそうしてもLDFLAGS=-Wl,--as-neededをやるとコンパイルできない
プログラムなんかもあったりして不思議ですが。
97 : デフォルトの名無 - 2007/11/20(火) 16:57:23 (+9,-29,-12)
>>87
Linuxのmanでは「-pthread」はFreeBSD固有のオプションってなってるけど。。。
98 : デフォルトの名無 - 2007/11/20(火) 19:09:19 (+5,-29,-31)
>>97
偏屈なmanだな。
OSXでman gccしたらRS/6000andPowerPCのオプションに書いてあるな。
i386にはないんだろうか。
99 : デフォルトの名無 - 2007/11/20(火) 19:56:01 (+3,-30,-63)
>>98
Fedora 8に入ってるmanを見てみました。
gcc-4.1.2のマニュアルだと、
IA-64 Option, RS/6000 and PowerPC Options, SPARC Options
に書いてあります。

FreeBSD固有って書いてあるのは、Linux日本語manだけど、gcc-2.95.3の翻訳だから今となっては古い。
100 : デフォルトの名無 - 2007/11/21(水) 00:06:24 (-1,-29,-23)
freebsdのスレッド対応ってまともになったん?まだグダグダ?
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - pragma + - spec + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について