abi

    7

    2答えて

    私はWindows上で 'fun'のx64アセンブリを学んでいます。 MSDN documentation for the x64 calling convention on Windowsは言う: 呼び出し側は、呼び出し先へのパラメータのためのスペースを割り当てるための責任がある、と常に呼び出し先がその多くのパラメータを持っていない場合でも、4つのレジスタのパラメータのための十分なスペースを割り

    3

    3答えて

    コンパイルとABIはどのように関連していますか? アプリケーションバイナリインターフェイス(ABI)をOSやその他のアプリケーションにビルドするためのコンパイラのみの仕事ですか? Wikipediaから引用ABI約 : のABIは、データ・タイプ、 サイズ、および配向などの詳細を覆います。 規約は、 関数の引数がどのように渡され、 戻り値が取得されるかを制御します。システム コール番号とアプリケー

    3

    1答えて

    Linux i386では、int $0x80 syscall ABIを使用すると、有効なユーザースペーススタックを持たずにsyscallを簡単に実行できます。一方、vdso/vsyscallインタフェースでは、スタックへのアクセスが必要です。この点で他のLinuxポート、特にx86_64はどうやって運営されていますか?スタックなしでシステムコールを行う方法はありますか?各アーチの利用可能なシステム

    2

    1答えて

    私はCreating Library with backward compatible ABI that uses Boostのスレッドを読んでいますが、安定したABIを維持するために共有ライブラリをどのようにリンクするべきかを理解しようとしています。 cat <<EOF > a.c #define ABI __attribute__((visibility("default"))) int

    7

    2答えて

    質問は比較的単純です:コンパイラのホストと同じアーキテクチャ上の2.4 ABIを対象とする4.xシリーズのGCC(binutilsとfriendsと一緒に)をビルドするにはどうすればいいですか? ホストシステムはx86またはx86_64のだろうと唯一の要件は、構築されたELFファイルは限りABIが一致したとして、古いカーネル上で実行することです。 (カーネルソース/ヘッダが存在します) リンクする

    1

    2答えて

    私が知る限り、x64コードには2つの呼び出し規約があります - Microsoft x64とAMD64です。 gccは-mregparm=0パラメータで起動できますが、これはAMD64呼び出し規約を使用している場合には機能しません。 これは、最初の6つの変数のレジスタの使用を、AMD64の規約で義務づけているためです(なぜこれが行われたのかは分かりませんが、セキュリティ上の問題がスタックになる可能

    5

    1答えて

    私はcygwinの下でAndroid NDK r6bを使っています(システムは正しく更新されています)。私はNDKでの作業を学ぶためにhello-jniサンプルを変更しています。私はhello-jniで使用したいC++で書かれたライブラリを持っているので(実際には、helloworldという名前のprjをndkfoo.cppという単一の.cppファイルで作成しています)、sample、私はEcli

    1

    2答えて

    私はARMの世界で私の旅を始めるための解決策を探しています。私はC言語をメイン言語として使用したいと思います。この環境用の標準I/Oライブラリを使用したプログラム。 また、X86ベースのPCで動作するエミュレータなどがありますか? Debian for ARMのようなこの種のエミュレータでいくつかの運用システムを試すことができますか? ありがとうございました。

    20

    4答えて

    がダウンロードされ、コンパイルされましたglibc-2.13。 malloc()を実行するサンプルのCプログラムを実行しようとすると、私はそれが問題だカーネルのバージョンではありません elf file OS ABI invalid は誰でも自分のカーネルのバージョンは、Linux-2.6.35.9

    11

    1答えて

    pimpl idiomは、ABIとの互換性を損なうことなく、ライブラリに依存するすべてのコードを再コンパイルすることなく、動的にリンクされたライブラリのコードを変更できるようにするためによく使用されます。 ほとんどのexplanations新しいプライベートメンバー変数を追加すると、そのクラスのパブリックメンバーとプライベートメンバーのオフセットが変更されることに言及します。それは私には意味がある