关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答它。关闭去年。Improvethisquestion是否有实用程序可以将Elf需要的ALLSO转换为静态,然后将Elf转换为免费的SO?
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答它。关闭去年。Improvethisquestion是否有实用程序可以将Elf需要的ALLSO转换为静态,然后将Elf转换为免费的SO?
首先,我是从技术角度而不是库代码用户的角度来问这个问题。差异的一个例子是共享对象包含程序头,而普通对象文件不包含。还有哪些区别?至于我的问题的目的,我试图弄清楚需要从共享目标文件中删除哪些内容才能让链接器将其视为普通目标文件并尝试将其重新定位和静态链接到生成的可执行文件,而不是将其标识为共享库并生成DT_NEEDED引用。这反过来又是将共享库原始“转换”为可以静态链接的东西的第一步(但是,可能需要进一步的工作来使重定位可满足)。 最佳答案 您会发现其中一个主要区别是,在最后的链接阶段,许多C库组件静态链接到库中,形成INIT和FIN
首先,我是从技术角度而不是库代码用户的角度来问这个问题。差异的一个例子是共享对象包含程序头,而普通对象文件不包含。还有哪些区别?至于我的问题的目的,我试图弄清楚需要从共享目标文件中删除哪些内容才能让链接器将其视为普通目标文件并尝试将其重新定位和静态链接到生成的可执行文件,而不是将其标识为共享库并生成DT_NEEDED引用。这反过来又是将共享库原始“转换”为可以静态链接的东西的第一步(但是,可能需要进一步的工作来使重定位可满足)。 最佳答案 您会发现其中一个主要区别是,在最后的链接阶段,许多C库组件静态链接到库中,形成INIT和FIN
我正在Linux下编写一个简单的用户空间ELF加载程序(为什么?为了“好玩”)。目前我的加载器非常简单,旨在仅加载包含位置无关代码的静态链接ELF文件。通常,当一个程序被内核的ELF加载器加载时,它被加载到它自己的地址空间中。因此,数据段和代码段可以加载到ELF段中指定的正确虚拟地址。然而,在我的例子中,我通过mmap从内核请求地址,并且可能会或可能不会获得ELF段中请求的地址。这对代码段来说不是问题,因为它与位置无关。但是,如果数据段未加载到预期地址,代码将无法正确引用存储在数据段中的任何内容。事实上,我的加载程序似乎可以很好地处理不包含任何数据的简单程序集可执行文件。但是一旦我添加
我正在Linux下编写一个简单的用户空间ELF加载程序(为什么?为了“好玩”)。目前我的加载器非常简单,旨在仅加载包含位置无关代码的静态链接ELF文件。通常,当一个程序被内核的ELF加载器加载时,它被加载到它自己的地址空间中。因此,数据段和代码段可以加载到ELF段中指定的正确虚拟地址。然而,在我的例子中,我通过mmap从内核请求地址,并且可能会或可能不会获得ELF段中请求的地址。这对代码段来说不是问题,因为它与位置无关。但是,如果数据段未加载到预期地址,代码将无法正确引用存储在数据段中的任何内容。事实上,我的加载程序似乎可以很好地处理不包含任何数据的简单程序集可执行文件。但是一旦我添加
下载并编译了glibc-2.13。当我尝试运行执行malloc()的示例C程序时。我收到以下错误elf文件操作系统ABI无效任何人都可以通过我的任何指针帮助解决这个问题。请注意我的内核版本是linux-2.6.35.9 最佳答案 问题不是您的内核版本。您系统上的加载程序不支持新的LinuxABI。直到最近,LinuxELF二进制文件才使用SystemVABI。最近,为了支持STT_GNU_IFUNC,添加了LinuxABI。您必须更新您的系统C库以获得支持STT_GNU_IFUNC的加载器,然后它还会识别具有LinuxABI类型的E
下载并编译了glibc-2.13。当我尝试运行执行malloc()的示例C程序时。我收到以下错误elf文件操作系统ABI无效任何人都可以通过我的任何指针帮助解决这个问题。请注意我的内核版本是linux-2.6.35.9 最佳答案 问题不是您的内核版本。您系统上的加载程序不支持新的LinuxABI。直到最近,LinuxELF二进制文件才使用SystemVABI。最近,为了支持STT_GNU_IFUNC,添加了LinuxABI。您必须更新您的系统C库以获得支持STT_GNU_IFUNC的加载器,然后它还会识别具有LinuxABI类型的E
我试过以下方法,但生成的文件仍然是一个ELF而不是纯粹的部分内容。$objcopy--only-section=我只想要该部分的内容。有没有可以做到这一点的实用程序?有什么想法吗? 最佳答案 使用-Obinary输出格式:objcopy-Obinary--only-section=.textfoobar.elffoobar.text刚刚使用avr-objcopy和AVRELF图像的.text部分进行了验证。请注意,如果Tim在下面指出,您的部分没有ALLOcflags,您可能必须添加--set-section-flags.text=
我试过以下方法,但生成的文件仍然是一个ELF而不是纯粹的部分内容。$objcopy--only-section=我只想要该部分的内容。有没有可以做到这一点的实用程序?有什么想法吗? 最佳答案 使用-Obinary输出格式:objcopy-Obinary--only-section=.textfoobar.elffoobar.text刚刚使用avr-objcopy和AVRELF图像的.text部分进行了验证。请注意,如果Tim在下面指出,您的部分没有ALLOcflags,您可能必须添加--set-section-flags.text=