00008058
gcc version 2.9-010413 (2.96+CP1 MW/GC/LM) ARM/Thumb/StrongARM/XScale 发现没有rodata段。 1、是不是arm下的abi如此要求 2、有没有编译选项可以控制 没搞过arm,麻烦大家指点
本帖最后由 arm-linux-gcc 于 2013-09-02 21:23 编辑 arm的代码 paging_init时,map_lowmem函数将所有低端内存的页表项设置为MT_MEMORY,这其中包括了text所在的那些区域, 那么内核又是在那里将text段所在的这些section和page设置为只读的呢?
本帖最后由 finalfantasy000 于 2013-08-06 11:36 编辑 针对 elf 格式,从汇编角度讲,函数是怎么访问里面的rodata段的数据的,例如字符串? 是通过在elf重定位的过程中,对栈指针的操作来实现的吗? 相关的寄存器有fp,lp,sp 例如,这个测试用的库,rodata里面有hellowrld字符串,库里面的函数是怎么访问它的呢? libhello.so architecture: arm, flags 0x00000150: HAS_SYMS, DYNAMIC, D_PAGED start address 0x00000000 ...
刚开始学习elf, 很多还想不通 比如定义了两个局部变量 char a[] = "abcd"; char b[] = "cdef"; 重定位项a, b均指向.符号表中的 .rodata项 , 但我有点不明白是 在符号表中 .rodata只有一项,且偏移地址为0,这是如何处理两个符号的重定位的?谢谢
链接ld.script文件出现“rodata.str1.4”错误 with arm-linux-gcc 3.4.1 编译器arm-linux- 3.4.1 ld.script文件如下: MEMORY { ram : ORIGIN = 0x20000000, LENGTH = 0xf000 rom : ORIGIN = 0x00000000, LENGTH = 0xf000 } SECTIONS { .text : { _stext = . ; *(.text) *(.rodata) *(.rodata.str1.1) ...
本帖最后由 lincoln-shaw 于 2011-04-17 09:30 编辑 arm,x86平台上userspace 和 kernelspace更改rodata段数据测试结果 arm x86 str = 'x'; segmentfault segmentfault (在usersapce更改rodata数据) read(..str, len); bad address(系统自带driver) bad address(系统自带driver) 没错 ...