abi

    2热度

    1回答

    在摘录自System V ABI的ELF spec中,各种功能被称为exec(BA_OS),如1的第7页。其他功能请参考KE_OS。这些*_OS符号代表什么意思?

    -1热度

    1回答

    考虑下面的代码: #include <string> #include <unordered_map> int main() { std::string s("hello"); std::unordered_map<std::string, int> map; map.emplace(s, 123); return 0; } 此生成细跟: GC

    0热度

    1回答

    阅读有关汇编的内容,部分是关于汇编中调用例程的约定(特别是Linux)。 据说第一8浮点参数通过xmm0通过 - xmm15和其他参数在寄存器rdi,rsi,rdx,rcx,r8,r9,和其它剩余参数应被推动以相反的顺序堆叠。 如果我有超过8个浮点参数和超过6个其他参数,按什么顺序推动它们堆栈会怎么样?第一个浮点值不适合8 fp。寄存器或其他参数不适合6个寄存器?

    0热度

    1回答

    为了介绍我的问题,我有一个应用程序只使用NDK编译为“armeabi-v7a”和“x86”ABI。所以汇编给我: Android NDK: WARNING: APP_PLATFORM android-17 is larger than android:minSdkVersion 10 in /home/**********/AndroidManifest.xml [armeabi-v7a] Gd

    10热度

    2回答

    x86_64 SysV ABI的函数调用约定定义了要在rcx寄存器中传递的整数参数#4。另一方面,Linux内核系统调用ABI为了同样的目的使用r10。所有其他参数都传递到函数和系统调用的相同寄存器中。 这会导致一些奇怪的事情。退房,例如,mmap glibc中实现了X32平台(针对同一存在差异): 00432ce0 <__mmap>: 432ce0: 49 89 ca mov

    0热度

    1回答

    是否有可能有一个包含来自两个ISA的可执行指令的ELF文件。这是一个ELF文件,可以在两种架构上运行,比如x86和PowerPC。 想到这个的一个例子是几年前使用的Apple Universal Binaries。有什么办法可以在Linux发行版中实现类似的功能吗?我遇到了旨在做这件事的FatELF项目,但它似乎已经死了

    27热度

    1回答

    In this document on page。 27它说文本段开始于 0x400000。为什么选择这个特定的地址?有没有 的原因?相同的地址选择在GNU ld上Linux: $ ld -verbose | grep -i text-segment PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)

    1热度

    1回答

    我使用abi compliance checker来检查两个库的兼容性。 我正在给定的错误:使用 preparation, please wait ... ERROR: the input dump d1 is invalid 命令: abi-compliance-checker -l libtest -old ABIv0.dump -new ABIv1.dump

    2热度

    1回答

    之前发布了一些类似的问题,但我无法看到我的具体要求的答案。 我有一个编译到共享库(.so)的基类。这个库已经被使用,并且有一些从我的基础派生的类,并且使用了我的基类的虚函数。 现在我需要修改我的基类以添加一个将在内部使用的新方法(非虚拟)。然后我将重新编译共享库。 派生类是否需要重新编译? 使用派生类和共享库创建的二进制文件是否需要重新编译?

    0热度

    1回答

    首先,对于可能误导性的标题感到抱歉,但我想不出更好的简短描述。 对于我的学士论文,我编写了一个Tango应用程序,出于性能原因需要CUDA。不幸的是,我不是一个有经验的Android开发人员,所以90%的关于CUDA,JNI或Tango的教程和指南都不够基本。 从我收集的内容来看,NVCC总是为armeabi-v7a-hard ABI生成代码。因此,根据我的理解,我的“正常”C++代码也必须为此A