GCCについて part9
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/06/27(土) 08:34:50GNU本家のGCCページ
http://gcc.gnu.org/
Binutils - Collection of binary utilities ←これも必要だぞ。
http://www.gnu.org/directory/GNU/binutils.html
GNU Binutils
http://sources.redhat.com/binutils/
GCC online documentation
http://gcc.gnu.org/onlinedocs/
Installing GCC
http://gcc.gnu.org/install/
GCC Timeline
http://gcc.gnu.org/releases.html#timeline
Calendar
http://gcc.gnu.org/develop.html#timeline
前スレ
GCCについて part8
http://pc12.2ch.net/test/read.cgi/tech/1192201659/l50
0002デフォルトの名無しさん
2009/06/27(土) 23:54:040003デフォルトの名無しさん
2009/06/28(日) 01:06:560004デフォルトの名無しさん
2009/06/28(日) 14:46:01//||
|| /( (・゚))
. |:| //
. | | | | |
| | |. | .||
| | / | , _____ .||
| | / | / ____ / .||
| | /. | / / / / |:|
| || | -‐-| / / / / | |
| ||\ / / / / | |____/ .|
| :| \ \/ | / / \.______/
| | \ ゝノ /
| | /) /
. .|| / / |
| (_/ \
/ /⌒\ \
(___/ \__)
0005デフォルトの名無しさん
2009/06/28(日) 14:51:27ミギーか。
懐かしい。
0006デフォルトの名無しさん
2009/06/28(日) 14:54:59\ 、・、 .,
. . .`、 、`・、 . .,
. \ .`・x、 ., .‐ヤTTTTTTTTTTTTTT_ニ‐!
. .\ 、`ー、_ . . .i _.‐“゜
\ 、`・、 } _.‐“´
ヘ_ . . . ./ . .i . 、、・゛
._.^ . . . ._.″ . 、} . . . ._.^ 、
゙_.・´ . . . ._.・′ 、i . ノ゜ ゙’
. ._.・^ . . ._、‐?´ . . .′ ゙/` 、1
. . ..ヤ´ . 、・^` .(_ ,
. . .`¨“〜-=.、_ ._.
. `¨“?〜---・^`
0007デフォルトの名無しさん
2009/06/29(月) 13:17:44ググってみたが解決策が見つからないです。ヒントをください。
const short x_limit_min[8] = {i, i-1, i-2, i-3, i-4, i-5, i-6, i-7};
__asm__ volatile (
:
" movdqu %[x_limit_min], %%xmm3 ¥n¥t"
:
:: ..., [x_limit_min] "m" (x_limit_min), ...
: ... );
こう書いてみたところ、(Xは数字)
error: memory input X is not directly addressable
と警告されてしまう。
ローカル配列のアドレスを渡すだけなので
:: [x_limit_min] "m" (&x_limit_min)
としてみても、同じエラーだった。どうするのが正解でしょう?
0008デフォルトの名無しさん
2009/06/29(月) 13:57:07x_limit_minのポインタをレジスタに入れて間接アドレッシングで書いてみたら?
0009デフォルトの名無しさん
2009/06/30(火) 04:44:30置き換えてしまっても大丈夫なのでしょうか?
0010デフォルトの名無しさん
2009/06/30(火) 05:15:54おまけにスレ違い。最悪だよな。
0011デフォルトの名無しさん
2009/06/30(火) 10:23:330012デフォルトの名無しさん
2009/06/30(火) 11:50:01マジレスすると、No。
MacOS Xについているgccは、Apple Extensionがいくつか
入っている。だから、置き換えるんじゃなくて別のパスに
バイナリを置いて、環境変数CCとかにフルパスを埋め込んで
きりかえる。例えば、/opt/local/bin/とか/usr/local/bin/とか。
Xcodeがデフォルトでgcc4.0.1と4.2.1、llvm-gccを入れるけど、
MacPortからすっぴんgccをバージョン指定で落としてきて入れるっ
てのが可能らしい。試したことは無いけど。
0013デフォルトの名無しさん
2009/06/30(火) 20:29:2200147
2009/06/30(火) 20:32:48まあまあ。Appleのllvmとかclangへの貢献度は高いと思うし。
>8
解決しました。vectorを使ってあげればそのまま行けました。こんな感じです。
v8hi x_limit_min = {i, i-1, i-2, i-3, i-4, i-5, i-6, i-7};
0015デフォルトの名無しさん
2009/06/30(火) 20:50:48>>12が言ってるが、フレームワークをリンクしたりするなら止めたほうがいい。
binutils相当がかなり違うし、GCC自体も独自拡張の部分が多いから。
gccのmanページで"APPLE ONLY"を検索してみると違いがよく分かる。
0016デフォルトの名無しさん
2009/06/30(火) 21:21:30mac使ったことないけど。
0017デフォルトの名無しさん
2009/07/01(水) 03:07:10次の無かったNeXTならともかくw
結局、Solarisに成る前のSUNが一番良かったな。
0018デフォルトの名無しさん
2009/07/01(水) 05:15:07Mac OSってGPLなの?
コンパイラ作る技術が無いから利用してるだけでしょ。
00197
2009/07/01(水) 05:39:33んなこたあない。
http://arstechnica.com/apple/news/2007/03/apple-putting-llvm-to-good-use.ars
OpenCL、CUPS、WebKitとか、それなりにOpenSourceな世界にも貢献
してる。パッチも投げてるし、別におかしくないかと。
0020デフォルトの名無しさん
2009/07/01(水) 06:29:24いや、結構オープンソース嫌いなイメージがあるのだが。
当てつけのように暗号化したりして邪魔してるじゃん。
0021デフォルトの名無しさん
2009/07/01(水) 07:27:00http://www.opensource.apple.com/
技術がどうとかよりNeXT時代からGCCベースだし、ObjC/ObjC++サポート以外
にもGCCに様々な貢献をしていると思うが。
変な独自コンパイラを作られるよりGCCの方がずっと良いと思う。
0023デフォルトの名無しさん
2009/07/01(水) 08:39:120024デフォルトの名無しさん
2009/07/01(水) 13:17:34自分とこでも動くようにパッチ投げてるだけで、最初のソース本体を
GPLで公開してない。それどころか自社独自ハードのデバドラは
ソース非公開だし。そこに挙がってるような上っ面のソフトなんて、
別にソース公開してくれなくても、見た目が似たようなのは幾らでも
作れる。必要なのはハードウェアのデバドラをOSS化すること。
そもそもOS X 自体を再コンパイル出来ないし。
>>21
GCCは利用するが、貢献はしてない。むしろあからさまにGPLを
成果物から避けてる。Takeはするけど、Giveはしない。
>>22
voidウザい。
0025デフォルトの名無しさん
2009/07/01(水) 13:24:240026デフォルトの名無しさん
2009/07/01(水) 13:28:240027デフォルトの名無しさん
2009/07/01(水) 13:38:070028デフォルトの名無しさん
2009/07/01(水) 13:39:14GCCへの貢献が無いだとか、嘘もいいところだ
0029デフォルトの名無しさん
2009/07/01(水) 16:19:510030デフォルトの名無しさん
2009/07/01(水) 16:22:56置いてあるのにな
0031デフォルトの名無しさん
2009/07/01(水) 19:29:49http://sourceforge.jp/magazine/09/07/01/0714255
>GCCをインタラクティブなマシン学習対応研究ツールに変換する「Milepost Framework」を利用、それぞれの設定に応じてコンパイラを開発することなく、自動的に最適化するコンパイラを生成する。
>ターゲットアーキテクチャ向けにアプリケーションを迅速にチューニングするため、再設定して構築するシステムの開発期間を短縮できるという。
>「IBM System p」で行った組み込みアプリケーションのベンチマークテストでは、性能が平均18%改善されたという。
まーたこの人誤訳してそうだなぁ…。
0032デフォルトの名無しさん
2009/07/01(水) 20:38:000033デフォルトの名無しさん
2009/07/01(水) 20:41:26>Takeはするけど、Giveはしない。
Give を強要するのがオープンソースじゃないでしょ。
それに、Apple 由来のソースコードは沢山見掛けるよ。
俺は意識的に GPL 物を避けてるけど、ライセンスの選択は
プログラマの自由だから他人にとやかく言われたくないし。
0034デフォルトの名無しさん
2009/07/01(水) 21:44:00貢献しているっていうなら、Darwinじゃなく、Mac OS XをGPLで配布すればいいじゃん。
MSもアップルもSUNも同じ穴の狢で、ただの独占を狙ってる企業って事実を認識しろよ。
0035デフォルトの名無しさん
2009/07/01(水) 21:55:35穴の見分けもつかない奴が同じ穴の狢とか言ってんなよw
CDDL は『GPL がコンフリクトを起こしている』だけで、
オープンソースライセンスとしては何の問題も無いぞ。
現に BSDL な環境に持って行っても問題は出ていないし。
0036デフォルトの名無しさん
2009/07/01(水) 22:16:50「GCCに貢献してない」と言い出したのはテメーだろうが
それを論破されたからと言って無関係な事を言い出すなよ、気違いが
0037デフォルトの名無しさん
2009/07/01(水) 22:23:39もういいです。Appleとまかが死ぬほど嫌いなのは良くわかりました。
お願いですからトリップつけてください。あぼーんするから。
0038デフォルトの名無しさん
2009/07/01(水) 23:14:33RMSがAppleをdisって以来の筋金入りのRMS信者かなw
0039デフォルトの名無しさん
2009/07/01(水) 23:57:48禿同!
>>36
違う違う。それ俺。
とにかくマカーが狂ってるのは分かったから>>37は
トリップ付けろ。アボーンするから。<言い出しっぺの法則
0040デフォルトの名無しさん
2009/07/02(木) 00:01:300041デフォルトの名無しさん
2009/07/02(木) 05:22:04論破とか言って勝利宣言かよ。
マカー的には「アップルはgccに多大な貢献しているから多少のスレチは
我慢しろボケ」ってことかよ。意味わかんねー。
0042デフォルトの名無しさん
2009/07/02(木) 06:31:180043デフォルトの名無しさん
2009/07/02(木) 08:04:41糞レスしてる暇あったらGCCのChangeLog見てみろよ
ソースも無しに貢献してないしてないとわめくなクソガキが
0044デフォルトの名無しさん
2009/07/02(木) 09:13:45話。 ttp://journal.mycom.co.jp/special/2004/gnu/004.html
こういう貢献もあるってことで。
>>38
この頃はジョブズは NeXT で Apple に居なかったのでルック&フィール訴訟は関係なく、
現在ジョブズ信者である分には RMS 信者と対立しないとかw
0045デフォルトの名無しさん
2009/07/02(木) 20:15:58そのとおりですね。
パッチポストしてる人のメールアドレス見てみれば
>41とか>39とかがおばかさんなのは良くわかります。
きっと39とか41とかはchangelogもMLも見たことさえ
ないのでしょう。
0046デフォルトの名無しさん
2009/07/02(木) 21:11:14今からAppleスレね。
gccの話もしてもいいよ。
0047デフォルトの名無しさん
2009/07/02(木) 21:20:110048デフォルトの名無しさん
2009/07/02(木) 21:56:330049デフォルトの名無しさん
2009/07/03(金) 13:29:28PGIやwindows SDKのコンパイラなら問題なく通るのだけど、なにか間違ってる?
T::size_type is parsed as a non-typeとか言ってくるし。
でも、
void func(const T&) [with T=std::vector<double, std::allocator;double> >]と、Tがvector型だとわかってインスタンス化してるんですがねぇ。
当然、vector<double>::size_typeは存在するのでテンプレートとして書かなければgccでも通ります。
バグ?
#include <iostream>
#include <vector>
using namespace std;
template <class T>
inline void func(const T& a)
{
T::size_type length = a.size();
cout << length << endl;
}
int main(int argc, int argv)
{
vector<double> a(5);
func(a);
return 0;
}
0050デフォルトの名無しさん
2009/07/03(金) 13:32:43typename T::size_type としてみれ
0051デフォルトの名無しさん
2009/07/03(金) 13:32:58http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus
> You must now use the typename and template keywords to disambiguate dependent names, ...
0052デフォルトの名無しさん
2009/07/03(金) 13:54:30lengthの定義のところにtypenameを入れたら通りました。
C++って元からそんな仕様だったっけ?
まあ通ったからいいや。
0053デフォルトの名無しさん
2009/07/03(金) 23:20:260054デフォルトの名無しさん
2009/07/03(金) 23:36:16GEANT4というシュミレーションコードのコンパイルがうまくいかず、困っています。
3ヶ所ほどコンパイル中にエラーが出ていて、2つは潰したのですが…
最後に残った
Compiling G4ScoreLogColorMap.cc ...
src/G4ScoreLogColorMap.cc: In member function 'virtual void G4ScoreLogColorMap::DrawColorChartText(G4int)':
src/G4ScoreLogColorMap.cc:157: error: 'sprintf' is not a member of 'std'
gmake[2]: *** [/home/xxxxxxxxxxxxx/geant4/tmp/Linux-g++/G4detutils/G4ScoreLogColorMap.o] エラー 1
というエラーが取り除けなくて困っています。
読み込んでいるヘッダーがおかしいんだろうなぁとは思うのですが…
ネットで調べて、色々読み込んでみました。
(1) ttp://www.drk7.jp/MT/archives/001498.html
ここを参考に…(ここはatoiが読み込めませんと出ていた。)
#include <cstdlib>
#include <cstring>
(2) ttp://code.google.com/p/pyminuit/issues/detail?id=8
を参考にして…
#include <algorithm>
(3) ttp://simd.jugem.jp/?eid=73
を参考にして、また、c++がcを下位互換でサポートしている事を踏まえて
#include <stdio.h>
これだけ加えてみましたが、同じエラーが続いています。
どのヘッダーに含まれているのか、ご存知の方いらっしゃいましたら、ご教示いただけませんか?
宜しくお願いいたします。
0055デフォルトの名無しさん
2009/07/03(金) 23:45:050057デフォルトの名無しさん
2009/07/16(木) 06:54:06自分のHOMEにライブラリをインストールしたのですが、コンパイル時には
システムに標準で入っている古いライブラリのヘッダを観に行ってしまって
失敗するようです。
/usr/localを見ないようにはできませんか?
0058デフォルトの名無しさん
2009/07/16(木) 09:52:14-I-
0059デフォルトの名無しさん
2009/07/16(木) 11:36:330060デフォルトの名無しさん
2009/07/16(木) 15:01:160061デフォルトの名無しさん
2009/07/18(土) 03:22:210062デフォルトの名無しさん
2009/07/18(土) 03:27:360063デフォルトの名無しさん
2009/07/18(土) 03:40:41ググって解決しました
0064デフォルトの名無しさん
2009/07/23(木) 20:30:200065デフォルトの名無しさん
2009/07/24(金) 18:25:360066デフォルトの名無しさん
2009/08/01(土) 17:02:450067デフォルトの名無しさん
2009/08/01(土) 17:21:130068デフォルトの名無しさん
2009/08/01(土) 19:39:47006968
2009/08/01(土) 19:52:060070デフォルトの名無しさん
2009/08/01(土) 20:02:18保護期間が50年なのは財産権であって、人格権は含まれない。
パブリックドメインは人格権に相当するものも含めパブリックと解される。
0071デフォルトの名無しさん
2009/08/01(土) 20:26:150072デフォルトの名無しさん
2009/08/01(土) 20:38:510073デフォルトの名無しさん
2009/08/04(火) 20:44:15る。誰か報告してくれ。
#include <stdio.h>
// gcc version 4.2.1 20070719 [FreeBSD]
// gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)
typedef enum {
// e_X = -1,
e_a,
} enum_t;
void
foo(enum_t e) {
printf("e %s\n", e < 0 ? "< 0" : ">= 0");
}
int
main() {
enum_t e = -1;
foo(e);
return 0;
}
0074デフォルトの名無しさん
2009/08/04(火) 20:56:33> unsigned integer type. The choice of type is implementation-defined,108) but shall be
> capable of representing the values of all the members of the enumeration.
意訳) enum の型は処理系定義だよ、ただしメンバの値はすべて表現できなければならない
なので、メンバに負の値がなければ、処理系によっては unsigned を選ぶかもしれない
unsigned になった場合は e = -1 は e = (unsigned) -1 のことだから、
なんというか、まぁ、仕方ないんじゃないか
0075デフォルトの名無しさん
2009/08/04(火) 20:57:19printf("e %s\n", e < 0 ? "< 0" : ">= 0");
が
printf("e %s\n", ">= 0");
に最適化されてるみたい。
0076デフォルトの名無しさん
2009/08/04(火) 21:14:59マジか…int とコンパチだと思ってたよ。
0077デフォルトの名無しさん
2009/08/04(火) 21:16:170078デフォルトの名無しさん
2009/08/04(火) 21:26:09GCC4.4を--prefix=/opt --program-suffix=-4.4のOPTで自己ビルドインスコ。
これでいくとlibstdc++.so.6とlibgcc_s.so.1が/opt/lib64ディレクトリにできるんだけど、
問題はコンパイルしたアプリがこれらを参照しないでUbnuntu9.04のGCC4.3とセット物の/usr/lib配下の
物を参照してる。アプリをコンパイル時にLD_RUN_RATHに/opt/lib64をつけても変わらない。
ちなみに/opt/lib64/libstdc++.so.6は/opt/lib64/libstdc++.so.6.0.12へ、/usr/lib/libstdc++.so.6は
/usr/lib/libstdc++.so.6.10へのリンクだからバージョン違ってる・・
/etc/ld.so.confに/opt/lib64を追記すると両方共それを参照するけど、そうなるとシステム全部のアプリが
(Ubuntuのgcc4.3でコンパイルされてる)全部gcc4.4のを読んでしまう(lddコマンドの結果)。
そうなるとよくないですよね。なのでやめました。
実行アプリ毎にLD_LIBRARY_PATHをつける管理が面倒なのでGCC4.4でコンパイルしたアプリも現状の
GCC4.3のlibstdc++とlibgcc_sを読ませておく状態で使用して何か後々問題出る可能性ありますか?
0079デフォルトの名無しさん
2009/08/04(火) 21:26:54アセンブリコード出力して比較してみろよ
0080デフォルトの名無しさん
2009/08/04(火) 21:34:59リンク時に
-Wl,-rpath,/opt/lib64
とかいう話かね?
0081デフォルトの名無しさん
2009/08/04(火) 21:38:09LD_RUN_RATH→LD_RUN_PATH
0082デフォルトの名無しさん
2009/08/04(火) 21:46:19揺れていいみたいだね。
99)An implementation may delay the choice of which integer
type until all enumeration constants have been seen.
0083デフォルトの名無しさん
2009/08/04(火) 21:47:42お、や。もしかしてそれをコンパイル時にコンパイラフラグで渡せばいいのでしょうか。
やってみます^^
>>81
すまそ、タイプミスです。
0084デフォルトの名無しさん
2009/08/05(水) 00:21:35> /etc/ld.so.confに/opt/lib64を追記すると両方共それを参照するけど、そうなるとシステム全部のアプリが
> (Ubuntuのgcc4.3でコンパイルされてる)全部gcc4.4のを読んでしまう(lddコマンドの結果)。
それほんと?埋め込まれたバージョン番号が違うから、そのへん良きに計らってくれると思ったんだけど。
0085デフォルトの名無しさん
2009/08/05(水) 01:11:13そういうもんだ。Ubuntuのg++-4.2も4.3のlibstdc++使ってるし、PPAにある
g++-4.4を入れるとlibstdc++も4.4にアップグレードされる。
0086デフォルトの名無しさん
2009/08/05(水) 16:46:340087デフォルトの名無しさん
2009/08/27(木) 18:58:19あれをつけるのとつけないとで違いってでる?
0088デフォルトの名無しさん
2009/08/27(木) 23:14:48してないソースだと無意味。
0089デフォルトの名無しさん
2009/09/03(木) 22:11:25Windows以外で採用不可能なんだね
0090デフォルトの名無しさん
2009/09/04(金) 00:12:270091デフォルトの名無しさん
2009/09/04(金) 01:22:030092デフォルトの名無しさん
2009/09/04(金) 02:02:510093デフォルトの名無しさん
2009/09/04(金) 05:53:280094デフォルトの名無しさん
2009/09/04(金) 10:08:460095デフォルトの名無しさん
2009/09/10(木) 22:31:170096デフォルトの名無しさん
2009/09/11(金) 09:45:57リンクするって出来るものなの?
0097デフォルトの名無しさん
2009/09/11(金) 09:59:010098デフォルトの名無しさん
2009/09/11(金) 11:50:22まあMajorが同じなら大丈夫か。
0099デフォルトの名無しさん
2009/09/11(金) 13:38:45ありがとうございます。やってみたら出来ました。
0100デフォルトの名無しさん
2009/09/12(土) 08:47:460101デフォルトの名無しさん
2009/09/12(土) 09:14:46■ このスレッドは過去ログ倉庫に格納されています