のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:126,369,046人
昨日: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
    551 : デフォルトの名無 - 2008/08/06(水) 07:44:13 (-2,-30,-24)
    クロスコンパイルはGCC & binutilsの独擅場だからねぃ
    552 : デフォルトの名無 - 2008/08/22(金) 03:13:53 (+57,+29,-14)
    このスレには優しい神が宿っているようだ。
    553 : デフォルトの名無 - 2008/08/27(水) 02:39:23 (+53,+21,+3)
    >>550
    変態なgccだなあ
    554 : デフォルトの名無 - 2008/08/28(木) 13:49:35 (-11,-29,+0)
    4.3.2
    555 : デフォルトの名無 - 2008/08/30(土) 01:09:13 (-3,-26,+0)
    GCCは最高のクロス開発環境だなあ
    556 : デフォルトの名無 - 2008/08/30(土) 20:49:53 (+40,-30,-120)
    GCC に #pragma optimize はないんですよね?

    ある大きな数値計算プログラムがあって、
    全体としては -O や -O2 など最適化はしたい。
    けど一部、計算誤差などを考慮した、
    計算の順番を変えてほしくないコードがある。

    Intel Compiler などは pragma でソコは最適化しないように
    回避できるんだけど、GCC はどうしようかと。

    なんか手段あります?
    ソースを分けて、そこだけ -O0 にするしかないのかな?
    557 : デフォルトの名無 - 2008/08/30(土) 21:07:41 (-1,-29,-2)
    > ソースを分けて、そこだけ -O0 にするしかないのかな?

    と思う。
    558 : デフォルトの名無 - 2008/08/30(土) 21:17:06 (-1,-29,-6)
    >>556
    -fno-fast-math か?
    559 : デフォルトの名無 - 2008/08/31(日) 00:43:26 (+62,+29,-64)
    556とは別人なんだがinline関数なんかの場合はそこだけコンパイラオプションを変えるわけにもいかないし
    精度は保ちつつ最大限速くしてもらいたいからvolatile使うのも嫌だしとワガママ言ってしまうことはあるね。

    Cを高級アセンブラとして使っているときに
    局所的に自分でスケジューリングした順序で動いて欲しいこともあるし。
    560 : デフォルトの名無 - 2008/08/31(日) 13:43:44 (+63,+29,-11)
    >>556
    研究や業務で使う道具としては悩むよりもicc使っておいた方が良い場合に該当するんじゃなかろうか?
    561 : デフォルトの名無 - 2008/08/31(日) 16:33:28 (-1,-29,-15)
    volatile とかうまく使えないんだろうか

    562 : デフォルトの名無 - 2008/09/02(火) 07:14:38 (-6,-29,+0)
    GCCでもPGOであるんですか?
    563 : デフォルトの名無 - 2008/09/02(火) 07:57:22 (-1,-29,-8)
    最近のならあるよ
    -fprofile-generate/-fuse-profile
    564 : デフォルトの名無 - 2008/09/02(火) 07:57:55 (-1,-29,-5)
    まちがえた-fprofile-useね
    565 : デフォルトの名無 - 2008/09/02(火) 16:26:38 (+52,+29,-1)
    フリーなのにすごいですね…
    566 : デフォルトの名無 - 2008/09/02(火) 18:06:49 (+15,-12,-17)
    実績だけは(アーキテクチャによっては)存分にあるからな。
    567 : デフォルトの名無 - 2008/09/03(水) 02:16:10 (+13,-30,-151)
    __artificial__アトリビュートを調べていたら、下のドキュメントが
    あったけどなんかいまいち理解できん。
    わかりやすい日本語で解説してくれ!

    artificial
    This attribute is useful for small inline wrappers
    which if possible should appear during debugging as a unit,
    depending on the debug info format it will either mean marking
    the function as artificial or using the caller location for
    all instructions within the inlined body.
    568 : デフォルトの名無 - 2008/09/03(水) 03:21:28 (+69,+29,-117)
    この属性は小さなインラインラッパー関数に使いよい。
    その関数とはどういうものかというと、デバッグ中には
    関数の中に入らずに単体として扱われるのが望ましいもの。
    この属性がどう実現されるかというと、
    デバッグ情報フォーマットによるが、
    関数にartificialというマークをつけるか、
    またはインライン化された関数本体中の呼び出し位置を使う
    (どう使うのかは書いてない)ことになるだろう。

    ……と理解した。
    デバッグの必要のないような機械的に生成したラッパーインライン関数
    なんかに使うといいんでないのかしら。
    569 : デフォルトの名無 - 2008/09/03(水) 04:14:54 (+7,-29,-6)
    $(GCC)/gcc/config/i386/emmintrin.h みてね。
    570 : 567 - 2008/09/04(木) 00:45:24 (+9,-29,-49)
    >>568
    よく分かった!ありがとぅ!

    >>569
    まさにそれを見てて気になったんで調べてた

    とりあえず、*mmintrin.h は非常に使いづらいんで
    自前でラッピングしようと思った次第。

    それにしても、GCCのアトリビュートは書きにくい。
    アトリビュートはC#の書き方がいい感じ。

    [Align(16)]
    int hoge = 12;

    とか。
    571 : デフォルトの名無 - 2008/09/04(木) 01:29:14 (+57,+29,+2)
    gccの方が何に掛っているかはっきりする。
    572 : デフォルトの名無 - 2008/09/06(土) 03:11:43 (+66,-29,-7)
    gccでコンパイルしたバイナリを販売したらダメなんだろ?
    イミネー
    573 : デフォルトの名無 - 2008/09/06(土) 03:21:42 (+91,+29,-33)
    いや、コンパイルしたもの自体は問題にならない。
    GPLなソースが混入してない限り。

    だがそれが回避しにくいように念入りに作られてるんだわこれが…
    574 : デフォルトの名無 - 2008/09/06(土) 03:29:58 (+57,+29,-16)
    それと仮にGPLだったとしても、GPLなら販売禁止ってわけじゃないよ。屁理屈みたいだけど。
    575 : デフォルトの名無 - 2008/09/06(土) 04:03:45 (+62,+29,-1)
    >>572
    どこでそんな嘘聞いてきたんだ。
    576 : デフォルトの名無 - 2008/09/06(土) 04:07:21 (+70,+29,-22)
    >>573
    作られてない。そもそもふつーにコンパイルする範囲ではGPLの影響は受けない。
    お前のプログラムにGPLが感染するのは、コンパイラ関係無しにGPLのコードを混入させたときだけだ。
    577 : デフォルトの名無 - 2008/09/06(土) 04:12:17 (+70,+29,-24)
    >>572-573
    なのこの頭の悪いしったか連中…
    libcがGPLのときのバイナリと混同でもしているのか?
    578 : デフォルトの名無 - 2008/09/06(土) 05:15:05 (+7,-29,-10)
    4.4がstage3になったのか。
    リリースは来年ですかねえ。

    >>577
    libgccが例外なしGPLとか。


    579 : デフォルトの名無 - 2008/09/06(土) 06:12:30 (+3,-30,-147)
    In addition to the permissions in the GNU General Public License, the
    Free Software Foundation gives you unlimited permission to link the
    compiled version of this file into combinations with other programs,
    and to distribute those combinations without any restriction coming
    from the use of this file.
    580 : デフォルトの名無 - 2008/09/06(土) 20:32:00 (+62,+29,-96)
    GNU一般共有使用許諾における許容に加えて、フリーソフトウェア基金はこのファイルのコンパイルされたバージョンを他のプログラムへの組み合わせにリンクして、このファイルの使用から無制限に来るそれらの組み合わせを広げる無制限な許可をあなたに与えます。
    581 : デフォルトの名無 - 2008/09/07(日) 00:30:47 (+60,+29,-112)
    しかし、このスレは定期的にGPLの話がでるな。

    とりあえず、

    ・GLPのソースを含んだ実行ファイルから利益を得ることは制限されない。
    ・ただ、ソースを見せろと言われたら全て見せなくてはならない。
    ・それは不便だからLGPLがあり、その場合は以下の条件を満たせばソースを
     見せる必要はない。
    ・使用しているLGPLなソースを第三者が修正して、再度、配布しているもの
     と同等の実行ファイルを作成出来なければならない。
    ・ダイナミックリンクの場合は特になにもする必要はないが、
     スタティックリンクの場合は、リンクに必要なオブジェクトファイル
     (具体的には、*.o)を提供しなければならない。
    ・同等の実行ファイルを作成出来ることが必要という縛りがあるので、
     LGPLだからと言ってこっそりコピペするのは(・A・)イクナイ!!
     (結局ソースを提供しなければ同等にならない可能性があるので。)

    と理解している。
    582 : デフォルトの名無 - 2008/09/07(日) 00:37:10 (+16,-29,-39)
    GPLのプログラムがLGPLのライブラリを読み込んだとき、
    LGPLのプログラムのソースの公開の義務は発生しますか?
    583 : デフォルトの名無 - 2008/09/07(日) 01:01:47 (+16,-18,-5)
    GPLのプログラムとリンクした時点で、ライブラリもGPLになります
    584 : デフォルトの名無 - 2008/09/07(日) 01:42:31 (+99,-28,-32)
    >>583
    なんですとぉ!
    自作ツールでアーカイバプロジェクトの
    スタティックライブラリをリンクしたとする
    自分のものでもないしソースもないけど勝手にGPL?

    d3d9x.lib とかスタティックライブラリじゃん
    困らね?
    585 : デフォルトの名無 - 2008/09/07(日) 02:12:44 (+15,-19,-82)
    おいおい、めちゃくちゃだな。
    >>582
    GPLのプログラムもLGPLのプログラムもソースを公開する義務がある。
    悩む必要はまったくない。公開してくれ。

    >>584
    その自作ツールのライセンスはなんだ?
    ソースを公開したくないんだったら、LGPLのライブラリをリンク
    してれば大丈夫だ。ライブラリがGPLの場合は無理。

    > d3d9x.lib とかスタティックライブラリじゃん
    > 困らね?
    それはまた違うラインセンスになってるだろ。
    詳しくは知らんが、それをちゃんと調べるべき。
    586 : デフォルトの名無 - 2008/09/07(日) 02:38:31 (+64,+29,-44)
    >>584
    全体をGPLにできる場合のみ、GPLのコードを基に著作物を形成・複製・頒布することが許諾される
    条件を満たせないなら、GPLの使用許諾は得られない
    587 : デフォルトの名無 - 2008/09/07(日) 03:26:44 (+69,+29,-23)
    >>584
    勝手じゃないだろ。使うソフトウェアのライセンスは読もうよ。
    588 : デフォルトの名無 - 2008/09/07(日) 03:43:21 (+74,-29,-43)
    非GPLなプログラムからGPLなライブラリを使うときは
    非GPL部分とGPL部分とでプログラムをわけて、
    ソケット通信をすればおk

    まあGPL部分は諦めて公開する必要があるけど
    どうしても非公開にしたいコアな部分は非GPLにできる。
    589 : デフォルトの名無 - 2008/09/07(日) 05:51:49 (+54,-29,-49)
    >>584
    いや、d3d9x.libってCygwinかなんかの?LGPLなの?
    困るんならMSのライブラリとコンパイラ使いなよ。
    または、d3d9x.lib相当の機能は、自分で作らないと。

    他人の成果物使ってんだからさ。
    ライセンスに従えない人間に使われるのてむしろ困るのは、
    ライブラリを作ってる側だし。
    590 : デフォルトの名無 - 2008/09/07(日) 06:03:04 (+63,+29,-40)
    >>588
    そのソケット通信は確実に白なの?
    前にそんなことが議論になったみたいだけど、
    結論がどうなったか知らないんで。
    591 : デフォルトの名無 - 2008/09/07(日) 07:42:28 (+113,+29,-84)
    >>588の例だとGPL部分が不可欠ならばリンクしてなくても
    派生物としてソースを公開する必要があるという議論だったと思う。

    >>589
    プロプライエタリなOSにGNUな開発環境を存在させるため
    OSが提供するライブラリに関してはプロプライエタリでもGPLの公開義務の
    対象外。
    592 : デフォルトの名無 - 2008/09/07(日) 07:43:50 (+94,+29,-24)
    分かりにくいなぁ。GPLって。
    このライセンスは、GNUが本来目指していた目的に合致するのだろうか・・・・
    593 : デフォルトの名無 - 2008/09/07(日) 08:30:23 (+57,+29,-31)
    本来の目的って、すべてのソフトを未来永劫にわたってオープンソース化する
    超過激思想だぞ? だからこそこんな感染性のあるライセンスにしたわけで。
    594 : デフォルトの名無 - 2008/09/07(日) 15:01:14 (+57,+29,-20)
    そのへんは「オープンソース」界隈の連中が意図的にか天然か
    勝手に話を混ぜ込んでいたりするからなw
    595 : デフォルトの名無 - 2008/09/07(日) 15:34:48 (+5,-30,-115)
    >>582
    *フリーではないライブラリを利用するフリーソフトウェアを書いているのですが、GPLを適用した場合どのような法的問題が発生するでしょうか?
    http://www.gnu.org/licenses/gpl-faq.ja.html#WritingFSWithNFLibs

    *「単なる集積」と「二つのモジュールを一つのプログラムに結合すること」の違いは何ですか?
    http://www.gnu.org/licenses/gpl-faq.ja.html#MereAggregation
    596 : デフォルトの名無 - 2008/09/07(日) 18:38:50 (+75,+29,-53)
    >>592
    根本はとってもシンプル
    結局はバイナリ公開したければソース出せボケ
    いろいろな抜け道を塞ぐために条文追加するはめになっただけのこと

    ストールマンの最初の動機と何も変わってないw
    思想先行どころか実利的なGPL
    597 : デフォルトの名無 - 2008/09/07(日) 18:55:43 (+13,-29,-56)
    >>591
    d3d9x.libはOSのライブラリってこと?スタティックなライブラリが?
    話が唐突で全然意味がわからん。
    てっきり、GCC用のLGPLなライブラリだと思ったんだが。

    あと、GPLならGPLが適用されるし、LGPLならLGPLが適用されるっしょ。
    OSがプロプラとか関係無い。
    598 : デフォルトの名無 - 2008/09/07(日) 19:54:20 (+4,-29,-7)
    すくなくともd3d9x.libについて調べればそういう話は出てこないとおもう。
    簡単に言えば、Direct3Dについてくる、MSの3Dライブラリみたいな。
    599 : デフォルトの名無 - 2008/09/07(日) 20:26:57 (+44,-30,-87)
    例えば、GPLな数値計算ライブラリと
    Direct3D の組み合わせで計算結果を視覚化するソフトウェアがあるとする
    このソフトウェアを α とする

    α 内で使用されている D3DX* 系の関数は DirectX SDK の d3dx9.lib スタティックライブラリに含まれている
    スタティックライブラリに含まれる部分のソースが無いので
    出来上がった α を頒布することはできない

    これで合ってる?
    600 : デフォルトの名無 - 2008/09/07(日) 20:37:12 (+99,+29,-32)
    >>591
    それが詭弁に過ぎないことは世の中のWebブラウザを見てればわかる
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - pragma + - spec + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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