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)。这可能吗 ?