page size change on MIPS

David Daney ddaney at caviumnetworks.com
Mon Feb 7 23:43:19 UTC 2011


On 02/07/2011 07:22 AM, naveen yadav wrote:
> Thanks a lot for your input.
>
> This is o/p for my busybox.I am booting with INITRAMFS. and kernel
> version is 2.6.30.9.
> I also try latest codesourcery mips toolchain and result is same. I
> could not get any hint to debug this issue.
>

The Debian mips/mipsel root filesystems will work with 64K pages.

Install Debian, then use a chroot environment to debug your root 
filesystem.  You should even be able to do that from within qemu.




>
> #mips-linux-gnu-readelf -l busybox
>
> Elf file type is EXEC (Executable file)
> Entry point 0x400180
> There are 5 program headers, starting at offset 52
>
> Program Headers:
>    Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
>    REGINFO        0x0000f4 0x004000f4 0x004000f4 0x00018 0x00018 R   0x4
>    LOAD           0x000000 0x00400000 0x00400000 0x1a8c6f 0x1a8c6f R E 0x10000
>    LOAD           0x1a9000 0x005b9000 0x005b9000 0x03170 0x084ac RW  0x10000
>    NOTE           0x0000d4 0x004000d4 0x004000d4 0x00020 0x00020 R   0x4
>    TLS            0x1ab464 0x005bb464 0x005bb464 0x00018 0x0004c R   0x4
>

Why are you statically linking glibc?  That is usually never a good idea.

Other than that it looks reasonably sane.


>   Section to Segment mapping:
>    Segment Sections...
>     00     .reginfo
>     01     .note.ABI-tag .reginfo .rel.dyn .init .text
> __libc_freeres_fn __libc_thread_freeres_fn .fini .rodata
> __libc_subfreeres __libc_atexit __libc_thread_subfreeres
> .gcc_except_table
>     02     .eh_frame .tdata .ctors .dtors .jcr .data.rel.ro .data .got
> .sdata .sbss .bss __libc_freeres_ptrs
>     03     .note.ABI-tag
>     04     .tdata .tbss
>
>
> On Fri, Feb 4, 2011 at 11:09 PM, David Daney<ddaney at caviumnetworks.com>  wrote:
>> On 02/04/2011 08:26 AM, Ian Lance Taylor wrote:
>>>
>>> keshav yadav<keshav.yadav2005 at gmail.com>    writes:
>>>
>>>> I observe one different behavior when we have page size set to 4KB or
>>>> 16KB in kernel busybox receive argc[0] argument correct, but
>>>> when page size set to 64KB I am getting argv[0] as empty. So what may
>>>> be issue. I am using codesourcercy toolchain.
>>>
>>> I have no idea what the problem but I know that it is extremely unlikely
>>> to have anything to do with gcc.
>>>
>>
>> I agree.
>>
>> We routinely run programs compiled with a wide variety of stock GCC
>> versions, under all three MIPS/Linux ABIs (o32, n32, n64) on kernels with
>> 4K, 8K, 16K, 32K and 64K page sizes with no problems.
>>
>> If you suspect a defect in your toolchain, you could try building a 'stock'
>> toolchain with recent Binutils and GCC versions.
>>
>> David Daney
>>
>




More information about the mips-gnu-discuss mailing list