問題タブ [relocation]

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.

0 投票する
1 に答える
937 参照

compiler-construction - LLVM のコード ジェネレーターによって実行される望ましくない定数の折りたたみを回避するにはどうすればよいですか?

私が達成しようとしているのは、以下の100000000定数などの一部の定数 (コード内のアドレスを表す) の定数の折りたたみを避けることです。これが必要なのは、後で JIT コンパイルされたコードにパッチが適用され、オブジェクトの再配置によって定数が変更される可能性があるためです。

以下のコードは、(何としてでも) 定数の折りたたみを回避するための最善の努力です。うまくいきません。100011111命令ストリームで定数になってしまいます。

llc -O0 code.ll -print-after-allExpand ISel Pseudo-instructions折りたたみがパスで発生することを明らかにします。

私の問題は、codegen レベルで simple に展開される組み込み関数を追加することで解決できることを認識していますmovabs reg, imm64。ですが、当面の間、一時的な解決策を講じたいと思います。

質問: llvm で定数が折り畳まれない不透明な定数を作成することは可能ですか?

私のllvmバージョンは3.7.0svnです。

0 投票する
1 に答える
2649 参照

c - 絶対記号とは何ですか?Cでそれを定義する方法は?

のマニュアルページnm。それは言う

「A」 シンボルの値は絶対値であり、さらにリンクしても変更されません。

しかし、私はそれが何を意味するのか分かりません。C でその値を絶対値にするために変数などを定義するにはどうすればよいですか?

test.cファイルスコープで変数を宣言すると

次に、の出力でnm、 a のエントリは私のマシンでは次のようになります

nmそれで、変数の出力を「A」にするにはどうすればよいか考えています。そして、「絶対」の意味がわかりません。

0 投票する
1 に答える
1444 参照

portable-executable - PE DLL の再配置 - ロード時間または ELF のようなものですか?

Windows DLL は位置に依存しないコードを使用せず、代わりにリンク時に定義された優先ベース アドレスを持っていることは、(主にWikipedia の Portable Executable 形式に関する記事から) 私の理解です。ただし、2 つのライブラリのベース アドレスが競合する場合は、一方を再配置テーブルを介して再配置する必要があります。

この PE 再配置は、ELF の GOT および PLT (各絶対アドレスが間接的に通過する必要がある .data セクション内のプロセス ローカル テーブル) に似ていますか、それとも動的再配置 (読み込み時にすべての絶対アドレスが変換される) に似ていますか? )? 後者の場合、これは x64 で問題がありますか?

0 投票する
1 に答える
2271 参照

gcc - GCC アセンブリ エラー: '.data' に対する R_X86_64_32S の再配置

状況


  1. 環境

    Arch Linux x86-64 (4.2.3-1-ARCH)

  2. GCC

    gcc (GCC) 5.2.0

  3. 指示

  4. エラー

  5. コード


質問


上記のコマンドセクションのコマンドを使用して、上記のコードセクションgccのプログラムをコンパイルしようとしましたが、エラーセクションでエラーが発生しました。

共有ライブラリをコンパイルしていないことに注意してください。

  1. このエラーは何ですか?
  2. これを修正するにはどうすればよいですか?

0 投票する
1 に答える
7742 参照

c++ - 「収まるように切り捨てられた再配置:未定義のシンボル `xercesc_3_1::AbstractDOMParser::adoptDocument()' に対する R_X86_64_PC32」を解決する方法

ライブラリ xerces-c-3.1.1-x86_64-linux-gcc-3.4 (バイナリ) を使用する Eclipse で C++ プログラムをビルドしようとしています。以下のエラーが表示されます...


  1. relocation truncated to fit: R_X86_64_PC32 against undefined symbol xercesc_3_1::AbstractDOMParser::adoptDocument()

  2. undefined reference to xercesc_3_1::AbstractDOMParser::adoptDocument()


stackoverflow のリンク (この GCC エラー "... relocation truncated to fit..." とはどういう意味ですか? ) を調べて、これがどのタイプのエラーであるかを理解しましたが、解決方法についての解決策は得られませんでした。

私が使用している環境: Windows8.1 上の Cygwin64 と、Cygwin C++ コンパイラを使用するように構成された Eclipse。xerces-c-3.1.1-x86_64-linux-gcc-3.4 と xerces-c-3.1.1-x86-linux-gcc-3.4 の両方を試したところ、同じエラーが発生しました。何か不足していますか?

0 投票する
1 に答える
158 参照

php - PHP 再配置ヘッダーが機能しない

アプリケーションの実際のコンテンツにアクセスする前に、最初にログインする必要がある Web アプリケーションをプログラムしました。

ユーザーが次のようにホームページに入ると、値「logedIn」を false に設定しています。

ユーザーがoverview.phpに移動しようとすると、コードはlogedInの値が「true」に等しいかどうかをチェックします。そうでない場合、ヘッダーは次のようにウィンドウをログイン ページに再配置します。

ヘッダーをエコーに置き換えると、コードを実行したときにヘッダーが実際に実行されていることを示す応答が返されます。

また、どのディレクトリにも .htaccess はありません。

問題が何であるかについて何か考えはありますか?

0 投票する
2 に答える
3667 参照

assembly - アセンブリの再配置が収まるように切り捨てられました

こんにちは、単純な hello world プログラムをアセンブリで作成し、それを .o ファイルにコンパイルしてから、標準 C ライブラリとリンクして .exe を作成し、「puts」の逆アセンブリを表示できるようにしようとしています。システムを使用してgdb -tuiいます。次のユーティリティ バージョンで Cygwin を使用しています (これらは で取得しましたas --version && ld --version)。これをすべて Windows 8 x64 で実行しようとしています。

バージョン 2.25 として

ld バージョン 2.25

テスト.asm

x86 アセンブリの学習中に、インターネットでいくつかのアセンブリ標準を見てきました。私がここに書いているのはGASだと思います。

アセンブラ

上記のファイルを問題なくアセンブルできます。asユーティリティは警告やエラーを表示しませんas。ユーティリティを呼び出す方法を次に示します。

as test.asm -o test.o

リンカ

ここで問題が発生します。次のコマンドは、オブジェクトファイルを標準の c ライブラリにリンクする必要があると思う方法です。

ld test.o -o test.exe -lc

このコマンドは次のエラーを生成しますが、これには困惑しました。他の投稿やグーグルで答えを見つけようとしましたが、何か足りないかもしれません。