問題タブ [gcc4.9]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - gcc-4.9 未定義の動作サニタイザー
gcc-4.9 の変更では、次のように書かれています。
UndefinedBehaviorSanitizer (ubsan)、高速な未定義動作検出器が追加され、-fsanitize=undefined で有効にできます。実行時に未定義の動作を検出するために、さまざまな計算がインストルメント化されます。UndefinedBehaviorSanitizer は現在、C および C++ 言語で使用できます。
この質問 (未定義の動作を検出する C++ 実装? ) を見ましたが、かなり時代遅れのようです。
このリンク ( http://gcc.gnu.org/ml/gcc-patches/2013-06/msg00264.html ) にはいくつかの情報がありますが、数か月前のものです。
これは、Undefined Behavior Sanitizer を GCC に追加する試みです。非常にアルファ版であることに注意してください。これまでのところ、それほど多くはありませんが、現時点では、ゼロのケースによる除算、INT_MIN / -1、およびさまざまなシフトのケース (負の値によるシフト、2 番目のオペランドが TYPE_PRECISION (first_operand) よりも >= の場合のシフト) を処理する必要があります。 (これまでのところ、整数型について)
私が読んだことgcc
から、 fromに移植されていLLVM
ます。
私はそれを試してみましたが(5 / 0)
、唯一の違いは次の出力のようです:
誰かがそれについてもっと情報を持っていますか、またはそれが持つ機能は何ですか?
linux - msp430-elf ターゲット用の gcc のビルド
msp430 用の gcc-4.9 をビルドしようとしています。の最新バージョンを既にビルドしており、基本的な構成でbinutils
ビルドを試みました。gcc-4.9
configure --target=msp430-elf --enable-languages=c,c++ --with-newlib=yes
ただし、問題は、gcc が自分のマシン用にビルドされ、新しいコンパイラでターゲットのx86-unknown-linux
ビルドが開始されたと思いますが、既に gcc-4.8 がインストールされており、既にインストールされているターゲットが必要なだけです。msp430
msp430-elf
4.8
注:msp430
ターゲットは でのみ使用できます。すでにインストールされているので、ホスト マシン用ではなく4.9
4.9 をビルドしたいだけです。msp430
まず、ビルドが失敗しました。次に、成功したとしても、インストールしたくありません。また、これを行うのではないかとx86
心配make install
しています。
のドキュメントconfigure
はかなり曖昧で、助けていただければ幸いです。
android - Linux/x86-64 から Android/ARM への「手動」クロスコンパイル?
(ソースコードを表示していないので、おそらくSOに関する境界線の質問です!)
Linux/Debian/Sid/x86-64 for Android (ルート化された Nexus 7 では 4.4.2) でコンパイルされた C 言語の hello world プログラムを (最新の GCC トランク、つまり 4.9 を使用して) クロスコンパイルできるようにしたいと考えています。 Android端末エミュレーターで実行されます。私の目標は、クロスツール チェーン全体、おそらく GCC、binutils、MUSL libcを構成する方法を学ぶことです。したがって、Android 用の SDK や NDK は特に使用したくありません。
私の Android は、 GCCと binutilsのarm-linux-gnueabi
GCC 4.9 プライマリ ターゲットプラットフォームだと思います。これは正しいです?
次に、(MUSL libc と静的にリンクされた) hello world をコンパイルしたら、それをタブレットに転送するにはどうすればよいですか? (おそらく MTP)。
PS。私は Linux (および、私が貢献している GCC、および binutils) に精通していますが、完全な Android 初心者です。
PPS: 本当の動機は、 GCC プラグインについての講演を準備して、GCC クロスコンパイラ用のプラグインをコンパイルしたいということです。
c++ - #define での gcc 4.9 エラー
次の行
(別のインクルード ファイルから) インクルードされ、gcc 4.9 から苦情が寄せられています。
奇妙なことに、正常にコンパイルされた別のソース ファイルに同じヘッダー (compiler.h) が含まれていました。何か案は?編集:always_inline
事前に定義されていないことを確認しました。ご参考までに:
homebrew - Homebrew で gcc49 をインストールする
Homebrew をインストールしようとしていますgcc49
(GCC 4.9)。具体的には、次のコマンドを使用してインストールしています。
ただし、これを通常どおり実行すると、 I'm missing というエラーが表示されますgmp4
。ここが変なところです。
すると、欠落brew install homebrew/versions/gmp4
していることがもう一度通知されます。gmp4
ライブラリがインストールされません。他のいくつかの必要なライブラリでもまったく同じことが起こります。現在、この奇妙な動作を修正するのではなく、実行しようとしています
...結果は
本当に私を混乱させるのは最後の行です。インストールしようとしたソフトウェアがそれを返すのを見たことがありません - 何が起こっているのか、どうすれば修正できますか?
興味深いことに、同じ Homebrew バージョンのデスクトップでこれを試すと、GCC 4.9 は を実行するだけで問題なくインストールされbrew install gcc49
ますhomebrew/versions
。
gcc - 完全な再構築を行わずに GCC 4.8.2 から GCC 4.9.0 にアップグレードする
数週間前に GCC 4.8.2 をインストールしました。インストール プロセスはうまくいき、私の Ubuntu システムには GCC 4.8.2 がインストールされています (12.04 64 ビット)。今、GNU は新しいバージョン 4.9.0 をリリースしました。
私の質問は次のとおりです。すべてのプロセスを実行せずに GCC を 4.9.0 にアップグレードする方法はありますか? また、gcc-4.8.2-4.9.0.diff.gz ファイルの利点/目的を教えてください。コンパイラをアップグレードするためのスクリプト/パッチ ファイルのようなものですか?
参考までに、システムで 2 つの異なるバージョンの GCC を使用する予定はありません。
macos - OSXで「gcc」だけでgcc-49を実行するにはどうすればよいですか?
最近、gcc 4.9 をインストールしました。これには、以前にデフォルトでインストールされていた以前のバージョンの gcc が含まれていました。
gcc と入力すると、以前のバージョンの gcc が実行されます。gcc と入力したときに、新しくインストールした gcc 4.9 を実行するにはどうすればよいですか?