This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug dynamic-link/21908] dynamic linker broke on ia64 (mmap2 consolidation is the suspect)


https://sourceware.org/bugzilla/show_bug.cgi?id=21908

--- Comment #1 from Sergei Trofimovich <slyfox at inbox dot ru> ---
Correction to the comment on page size on ia64 and mmap2 units:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/ia64/include/asm/page.h#n29

suggests ia64 can do many page sizes:

    /*
     * PAGE_SHIFT determines the actual kernel page size.
     */
    #if defined(CONFIG_IA64_PAGE_SIZE_4KB)
    # define PAGE_SHIFT 12
    #elif defined(CONFIG_IA64_PAGE_SIZE_8KB)
    # define PAGE_SHIFT 13
    #elif defined(CONFIG_IA64_PAGE_SIZE_16KB)
    # define PAGE_SHIFT 14
    #elif defined(CONFIG_IA64_PAGE_SIZE_64KB)
    # define PAGE_SHIFT 16
    #else
    # error Unsupported page size!
    #endif

[ Kconfig help text:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/ia64/Kconfig#n242
]

and mmap/mmap2 differ exactly by this PAGE_SIZE offset:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/ia64/kernel/sys_ia64.c#n138

    asmlinkage unsigned long
    sys_mmap2 (unsigned long addr, unsigned long len, int prot, int flags, int
fd, long pgoff)
    {
        addr = sys_mmap_pgoff(addr, len, prot, flags, fd, pgoff);
        if (!IS_ERR((void *) addr))
                force_successful_syscall_return();
        return addr;
    }

    asmlinkage unsigned long
    sys_mmap (unsigned long addr, unsigned long len, int prot, int flags, int
fd, long off)
    {
        if (offset_in_page(off) != 0)
                return -EINVAL;

        addr = sys_mmap_pgoff(addr, len, prot, flags, fd, off >> PAGE_SHIFT);
        if (!IS_ERR((void *) addr))
                force_successful_syscall_return();
        return addr;
    }

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]