lkml.org 
[lkml]   [2008]   [Jan]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] Use separate sections for __dev/__cpu/__mem code/data
    On Sun, Jan 20, 2008 at 09:09:03PM +0100, Sam Ravnborg wrote:
    > diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
    > index ded7ca2..e0a56fb 100644
    > --- a/include/asm-generic/vmlinux.lds.h
    > +++ b/include/asm-generic/vmlinux.lds.h
    > @@ -9,10 +9,46 @@
    > /* Align . to a 8 byte boundary equals to maximum function alignment. */
    > #define ALIGN_FUNCTION() . = ALIGN(8)
    >
    > +/* The actual configuration determine if the init/exit sections
    > + * are handled as text/data or they can be discarded (which
    > + * often happens at runtime)
    > + */
    > +#ifdef CONFIG_HOTPLUG
    > +#define DEV_KEEP(sec) *(.dev##sec)
    > +#define DEV_DISCARD(sec)
    > +#else
    > +#define DEV_KEEP(sec)
    > +#define DEV_DISCARD(sec) *(.dev##sec)
    > +#endif
    > +
    Using your kbuild.git, these blow up for me:

    LD .tmp_vmlinux1
    sh4-linux-ld:arch/sh/kernel/vmlinux.lds:364: ignoring invalid character `#' in script
    sh4-linux-ld:arch/sh/kernel/vmlinux.lds:364: ignoring invalid character `#' in script
    sh4-linux-ld:arch/sh/kernel/vmlinux.lds:364: ignoring invalid character `#' in script
    sh4-linux-ld:arch/sh/kernel/vmlinux.lds:364: ignoring invalid character `#' in script
    sh4-linux-ld:arch/sh/kernel/vmlinux.lds:381: ignoring invalid character `#' in script
    sh4-linux-ld:arch/sh/kernel/vmlinux.lds:381: ignoring invalid character `#' in script
    sh4-linux-ld:arch/sh/kernel/vmlinux.lds:381: ignoring invalid character `#' in script
    ...

    This comes out as:

    .text : {
    *(.text.head)
    . = ALIGN(8); *(.text) *(.text.init.refok) *(.exit.text.refok) *(.dev##init.text)
    *(.dev##exit.text)

    . = ALIGN(8); __sched_text_start = .; *(.sched.text)
    __sched_text_end = .;
    . = ALIGN(8); __lock_text_start = .; *(.spinlock.text)
    __lock_text_end = .;
    . = ALIGN(8); __kprobes_text_start = .; *(.kprobes.text)
    __kprobes_text_end = .;
    *(.fixup)
    *(.gnu.warning)
    ...

    so the ## is being taken directly rather than acting as a concatenation.


    \
     
     \ /
      Last update: 2008-01-21 08:37    [W:0.023 / U:91.236 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site