abi

    4熱度

    2回答

    對於純C共享庫,是否可能在API兼容性未被破壞的情況下打破ABI兼容性?另外,如果有人編寫一個庫A,它提供了現有庫B的所有API函數,並帶有一些額外的API函數,那麼庫A ABI是否與庫B兼容?

    0熱度

    1回答

    我試圖在應用程序中繞行一個函數。我有它的來源可用。 class Foot : public Something, public SomethingElse { public: Foot(double SomethingAgain, double Somethings, Blahblah *AnotherThing = NULL); virtual ~F

    2熱度

    2回答

    我有Windows 2003服務器,可執行文件建立在VC6上。我將需要檢查Windows 2008服務器上的可執行文件的兼容性(兩臺服務器都是32位)。我知道我需要檢查這兩個版本的ABI兼容性。 如何確認任何兩個版本的操作系統的ABI兼容性?或者Windows是否將ABI兼容性作爲產品文檔的一部分發布? 除ABI兼容性外,還有其他一些考慮因素需要注意嗎?

    1熱度

    2回答

    我知道由eax返回的1/2/4字節整數和由eax:edx返回的8字節整數。 順便說一句,4/8/16字節浮點數如何是 (也許我記得 long double可能是16byte ..) 在cdecl/stdcall中返回? 由於@MatteoItalia,我知道VC++的long double是8字節; 那麼,我怎樣才能使用16字節的浮點? (不要說我 「只用8個字節的!」 我真的需要它。) 嗯,我想

    37熱度

    1回答

    我試圖確定是否從Linux下的llvm項目構建和使用libcxxabi是有意義的。 我的libcxxabi構建連接到 ldd libc++abi.so.1.0 linux-vdso.so.1 => (0x00007fff2e0db000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd658

    2熱度

    1回答

    我有一個共享庫子程序: SUBROUTINE DLLSUBR(ARR) IMPLICIT NONE INTEGER, PARAMETER :: N = 2 REAL ARR(0:N) arr(0) = 0 arr(1) = 1 arr(2) = 2 END 而假設我會叫它從可執行: REAL ARR(0:3) CALL DLLSU

    2熱度

    1回答

    我試圖通過查看從clang生成的程序集來學習x86程序集。例如,我想了解C中的自動數組是如何初始化爲全0的。 int64_t my_array [3000] = {0}; 它看起來像程序集保留堆棧(3000 * 64b/8B/b)24000B然後調用memset。從memset的的手冊頁,它的簽名如下所示: void * memset(void *b, int c, size_t len);

    7熱度

    1回答

    當在函數中使用結構參數,鐺會改變函數簽名。而不是使用一個結構類型,簽名將是一個相同大小的強制int。在我的編譯器項目中,我使用llvm結構類型作爲方法簽名(這看起來更合理)。 這不會是一個問題,除了通過LLVM使用該結構時,或得到的組件產生的強制類型是不同的並且不呼叫兼容這一事實。這導致我的編譯器不能與具有struct的C函數ABI兼容。 爲什麼鐺做到這一點?這是在C ABI中指定的東西嗎? 這裏

    2熱度

    2回答

    我的目標是爲我的新圖書館提供abi兼容性。 我期待使用unique_ptr而不是原始指針。但是恐怕如果我更新標準庫,我可能會破壞阿比。這是真的嗎?未來的stdlib版本中是否有unique_ptrs的abi穩定性保證?

    3熱度

    2回答

    我需要能夠在運行時檢測設備的ABI(armeabi,armeabi-v7a,x86或mips)。這可能嗎 ?