linker-scripts

    0热度

    1回答

    我试图在内核的程序集文件中使用linux中的ld命令。要使用grub启动它,它需要在1Mb地址之后。所以我的链接脚本将文本发送到地址0x00100000。 下面是我使用的链接脚本: SECTIONS { .text 0x00100000 :{ *(.text) } textEnd = .; .data :{ *(.data

    4热度

    1回答

    我想在x86_64上使用链接描述文件来更改堆栈的起始位置。 我能够用这个将我的可执行文件的起始地址: PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x200000)); . = SEGMENT_START("text-segment", 0x200000) + SIZEOF_HEADERS; 我改变了我的全局是这样的:

    2热度

    1回答

    这是我的问题。 我有这个链接脚本链接标准arm7nommu-uClinux内核: OUTPUT_ARCH(arm) ENTRY(stext) SECTIONS { . = 0x0; .vectors : { *(.resetvector) } . = 0x8000; .init : { /* Init code and data */ _stext =

    1热度

    1回答

    我正在写一个512字节的可引导程序,我必须将0xAA55粘贴到512字节程序映像的最后2个字节中。所以我已经做到了。现在我的链接器脚本应该非常简单。我只是好奇这个语法是什么意思 .foo : { *(.*) } 我给了它作为一个例子。没有.foo段,而在这之前,我改变了程序计数器 . = 0x1000 //To account for the elf header which I will s

    1热度

    2回答

    我想知道在链接脚本中定义符号有什么用处。使用链接脚本来安排不同的部分是可以理解的,但在脚本中定义新的符号对我来说并不清楚。我正在阅读一篇使用链接器脚本的文章,该脚本定义了两个新的符号,但这些符号在链接器脚本或文章中的其他地方未被引用。一个例子是使用在bss部分SBSS和EBSS符号,如下所示: ENTRY (loader) SECTIONS { . = 0x00100000; .te

    1热度

    1回答

    链接库时,-rpath用于将动态库的地址传递给ld。我的问题是如果我在LD_LIBRARY_PATH中设置地址,我的链接 进程中是否还需要-rpath标志?

    2热度

    1回答

    我在想我知道在链接描述文件中工作的位置计数器,但我想不是这样。我只是做了一个简单的测试来确认我的理解。我写了一个简单的c程序,没有任何库调用,并用gcc编译它。然后,我使用链接器脚本将链接器脚本与位置计数器在开始时设置为值。 这里是程序 int a = 6; int main(){ return 0; } 以下是链接脚本 ENTRY(main) addr = 0x8048000;

    1热度

    1回答

    我有以下线在我的链接脚本 JumpTable ABSOLUTE(0x2000000C): AT(eROData) { JumpTableStart = .; *(.JumpSection); . = ALIGN(4); JumpTableEnd = .; } > SRAM eROData是从闪存中的地址,假定值0x1000xxxx 链接之后,我请注意

    -1热度

    1回答

    我想链接GDB参考手册中的Overlay示例。该示例针对的是d10v处理器(不熟悉它),但我想通过编译x86_64或i386体系结构的示例来演示调试器与覆盖层一起工作。 我尝试将以下部分导入链接器脚本。我首先使用从StackOverflow获悉的技术提取链接器脚本。 $> gcc a.c -Wl,-verbose 我修改此链接器脚本作为这样,加入.ovly0 {0-3} & .data0 {0-3

    0热度

    2回答

    OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_ram_entry) SECTIONS { . = 0xA0008000; . = ALIGN(4); .text : { *(.text) } . = AL