lkml.org 
[lkml]   [2008]   [Feb]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC 08/10] um: dyn/uml.lds.S cleanup - use PAGE_SIZE macro
    This patch includes page.h header into liker scripts that
    allow us to use PAGE_SIZE macro instead of numeric constant.

    To be able to include page.h into linker scripts page.h is
    needed for some modification - i.e. we need to use __ASSEMBLY__
    and _AC macro

    Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
    ---

    WARNING: COMPLETELY UNTESTED !!!

    arch/um/kernel/dyn.lds.S | 7 ++++---
    arch/um/kernel/uml.lds.S | 7 ++++---
    include/asm-um/page.h | 17 +++++++++++------
    3 files changed, 19 insertions(+), 12 deletions(-)

    Index: linux-2.6.git/arch/um/kernel/dyn.lds.S
    ===================================================================
    --- linux-2.6.git.orig/arch/um/kernel/dyn.lds.S 2008-01-29 18:03:46.000000000 +0300
    +++ linux-2.6.git/arch/um/kernel/dyn.lds.S 2008-02-27 21:38:48.000000000 +0300
    @@ -1,4 +1,5 @@
    #include <asm-generic/vmlinux.lds.h>
    +#include <asm/page.h>

    OUTPUT_FORMAT(ELF_FORMAT)
    OUTPUT_ARCH(ELF_ARCH)
    @@ -21,7 +22,7 @@ SECTIONS
    _einittext = .;
    }

    - . = ALIGN(4096);
    + . = ALIGN(PAGE_SIZE);

    /* Read-only sections, merged into text segment: */
    .hash : { *(.hash) }
    @@ -68,9 +69,9 @@ SECTIONS
    /* .gnu.warning sections are handled specially by elf32.em. */
    *(.gnu.warning)

    - . = ALIGN(4096);
    + . = ALIGN(PAGE_SIZE);
    } =0x90909090
    - . = ALIGN(4096);
    + . = ALIGN(PAGE_SIZE);
    .syscall_stub : {
    __syscall_stub_start = .;
    *(.__syscall_stub*)
    Index: linux-2.6.git/arch/um/kernel/uml.lds.S
    ===================================================================
    --- linux-2.6.git.orig/arch/um/kernel/uml.lds.S 2008-01-29 18:03:46.000000000 +0300
    +++ linux-2.6.git/arch/um/kernel/uml.lds.S 2008-02-27 21:38:53.000000000 +0300
    @@ -1,4 +1,5 @@
    #include <asm-generic/vmlinux.lds.h>
    +#include <asm/page.h>

    OUTPUT_FORMAT(ELF_FORMAT)
    OUTPUT_ARCH(ELF_ARCH)
    @@ -26,7 +27,7 @@ SECTIONS
    INIT_TEXT
    _einittext = .;
    }
    - . = ALIGN(4096);
    + . = ALIGN(PAGE_SIZE);

    .text :
    {
    @@ -39,7 +40,7 @@ SECTIONS
    *(.gnu.linkonce.t*)
    }

    - . = ALIGN(4096);
    + . = ALIGN(PAGE_SIZE);
    .syscall_stub : {
    __syscall_stub_start = .;
    *(.__syscall_stub*)
    @@ -79,7 +80,7 @@ SECTIONS
    .sdata : { *(.sdata) }
    _edata = .;
    PROVIDE (edata = .);
    - . = ALIGN(0x1000);
    + . = ALIGN(PAGE_SIZE);
    .sbss :
    {
    __bss_start = .;
    Index: linux-2.6.git/include/asm-um/page.h
    ===================================================================
    --- linux-2.6.git.orig/include/asm-um/page.h 2008-02-09 12:09:29.000000000 +0300
    +++ linux-2.6.git/include/asm-um/page.h 2008-02-27 21:42:17.000000000 +0300
    @@ -7,16 +7,20 @@
    #ifndef __UM_PAGE_H
    #define __UM_PAGE_H

    -struct page;
    -
    -#include <linux/types.h>
    -#include <asm/vm-flags.h>
    +#include <linux/const.h>

    /* PAGE_SHIFT determines the page size */
    #define PAGE_SHIFT 12
    -#define PAGE_SIZE (1UL << PAGE_SHIFT)
    +#define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
    #define PAGE_MASK (~(PAGE_SIZE-1))

    +#ifndef __ASSEMBLY__
    +
    +struct page;
    +
    +#include <linux/types.h>
    +#include <asm/vm-flags.h>
    +
    /*
    * These are used to make use of C type-checking..
    */
    @@ -120,4 +124,5 @@ extern struct page *arch_validate(struct
    #include <asm-generic/memory_model.h>
    #include <asm-generic/page.h>

    -#endif
    +#endif /* __ASSEMBLY__ */
    +#endif /* __UM_PAGE_H */
    --


    \
     
     \ /
      Last update: 2008-02-27 22:07    [W:0.065 / U:0.108 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site