page size change on MIPS
From: naveen yadav <hidden>
Date: 2011-02-04 04:16:27
Also in:
linux-mips
Possibly related (same subject, not in this thread)
- 2011-02-08 · page size change on MIPS · Mulyadi Santosa <hidden>
- 2011-01-30 · page size change on MIPS · Himanshu Aggarwal <hidden>
- 2011-01-28 · page size change on MIPS · David Daney <hidden>
- 2011-01-28 · page size change on MIPS · naveen yadav <hidden>
- 2011-01-27 · page size change on MIPS · David Daney <hidden>
Hi, I am adding readelf info also . mips-linux-gnu-readelf -S squashfs-root/bin/busybox There are 35 section headers, starting at offset 0x174290: Section Headers: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 0] NULL 00000000 000000 000000 00 0 0 0 [ 1] .note.ABI-tag NOTE 004000d4 0000d4 000020 00 A 0 0 4 [ 2] .reginfo MIPS_REGINFO 004000f4 0000f4 000018 18 A 0 0 4 [ 3] .rel.dyn REL 0040010c 00010c 000010 08 A 0 0 4 [ 4] .init PROGBITS 0040011c 00011c 00005c 00 AX 0 0 4 [ 5] .text PROGBITS 00400180 000180 11d2b0 00 AX 0 0 16 [ 6] __libc_freeres_fn PROGBITS 0051d430 11d430 001368 00 AX 0 0 4 [ 7] __libc_thread_fre PROGBITS 0051e798 11e798 000148 00 AX 0 0 4 [ 8] .fini PROGBITS 0051e8e0 11e8e0 000034 00 AX 0 0 4 [ 9] .rodata PROGBITS 0051e920 11e920 02d560 00 A 0 0 16 [10] __libc_subfreeres PROGBITS 0054be80 14be80 000058 00 A 0 0 4 [11] __libc_atexit PROGBITS 0054bed8 14bed8 000004 00 A 0 0 4 [12] __libc_thread_sub PROGBITS 0054bedc 14bedc 000008 00 A 0 0 4 [13] .gcc_except_table PROGBITS 0054bee4 14bee4 0001fb 00 A 0 0 1 [14] .eh_frame PROGBITS 0055c0e0 14c0e0 002464 00 WA 0 0 4 [15] .tdata PROGBITS 0055e544 14e544 000018 00 WAT 0 0 4 [16] .tbss NOBITS 0055e55c 14e55c 000034 00 WAT 0 0 4 [17] .ctors PROGBITS 0055e55c 14e55c 000008 00 WA 0 0 4 [18] .dtors PROGBITS 0055e564 14e564 00000c 00 WA 0 0 4 [19] .jcr PROGBITS 0055e570 14e570 000004 00 WA 0 0 4 [20] .data.rel.ro PROGBITS 0055e574 14e574 000030 00 WA 0 0 4 [21] .data PROGBITS 0055e5b0 14e5b0 000b30 00 WA 0 0 16 [22] .got PROGBITS 0055f0e0 14f0e0 000148 04 WAp 0 0 16 [23] .sdata PROGBITS 0055f228 14f228 000004 00 WAp 0 0 4 [24] .sbss NOBITS 0055f230 14f22c 000184 00 WAp 0 0 8 [25] .bss NOBITS 0055f3c0 14f22c 00516c 00 WA 0 0 16 [26] __libc_freeres_pt NOBITS 0056452c 14f22c 000040 00 WA 0 0 4 [27] .pdr PROGBITS 00000000 14f22c 016880 00 0 0 4 [28] .comment PROGBITS 00000000 165aac 0027e0 00 0 0 1 [29] .debug_frame MIPS_DWARF 00000000 16828c 00be88 00 0 0 4 [30] .gnu.attributes LOOS+ffffff5 00000000 174114 000010 00 0 0 1 [31] .mdebug.abi32 PROGBITS 000030c0 174124 000000 00 0 0 1 [32] .shstrtab STRTAB 00000000 174124 00016c 00 0 0 1 [33] .symtab SYMTAB 00000000 174808 015320 10 34 2843 4 [34] .strtab STRTAB 00000000 189b28 012f65 00 0 0 1 Key to Flags: W (write), A (alloc), X (execute), M (merge), S (strings) I (info), L (link order), G (group), x (unknown) O (extra OS processing required) o (OS specific), p (processor specific) On Fri, Feb 4, 2011 at 8:54 AM, naveen yadav [off-list ref] wrote:
thanaks a lot for your suggestion .. I debug this issue further, and here is my observations: 1. If I replace init with simple static link executable binary, this can be executed. 2. In case of busy-box, I debug the reason why init fails to excute. When I execute init command from busybox the control goes in main() function of busybox(appletlib.c) with argv value as the command you are suppose to execute, which in our case is init. But when i check argv is coming null when page size is 64KB and it comes init when page size is 16KB. This behaviour is very strange and i am still debugging this issue. I have check in Glibc, the max_page size it support is 64 KB in codesourcercy toolchain 4.4.1 How can I check alignment issue as mention by Mr. Ralf Baechle. Kind regards On Mon, Jan 31, 2011 at 6:38 PM, Ralf Baechle [off-list ref] wrote:quoted
On Sun, Jan 30, 2011 at 08:32:43PM +0530, Himanshu Aggarwal wrote:quoted
Why should the application or the toolchains depend on pagesize? I am not very clear on this. Can someone explain it?To allow loading directly with mmap the executable file's layout must be such that it's it's segments are on offsets that are a multiple of the page size so in turn the linker must know that alignment. ?Ralf