lkml.org 
[lkml]   [2006]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: make headers_install headers problem on sparc64
    From
    Date
    On Wed, 2006-10-18 at 22:37 +0000, andrew@walrond.org wrote:
    > Hi david, lkml.
    >
    > I found a message where you said
    >
    > "If you have problems with the exported headers (other
    > than that some userspace abuses headers which it shouldn't), then
    > _shout_. Please don't just let them go unreported."

    Thank you.

    > So,
    >
    > Using headers exported from vanilla linux 2.6.18.1 and compiling the
    > elftoaout part of the debian sparc-utils package, I get some breakage
    > here:
    >
    > In file included from /usr/include/asm/elf.h:5,
    > from /usr/include/linux/elf.h:7,
    > from elftoaout.c:24:
    >
    > due to tlb_type, cheetah et al being undefined in this part of
    > asm-sparc64/elf.h:
    >
    >

    Hm, yes. There's still a lot of crap being exposed there that we really
    don't need to be showing. Try this entirely untested patch...

    The sparc64 version could do with something similar, too.


    ----
    [SPARC] Clean up asm-sparc/elf.h pollution in userspace.

    We don't need to export sparc_elf_hwcap() to userspace, and it doesn't
    build there. Remove it by moving it inside #ifdef __KERNEL__, along with
    some other things which don't need to be exported.

    Signed-off-by: David Woodhouse <dwmw2@infradead.org>

    diff --git a/include/asm-sparc/elf.h b/include/asm-sparc/elf.h
    index 83a3dd1..aaf6ef4 100644
    --- a/include/asm-sparc/elf.h
    +++ b/include/asm-sparc/elf.h
    @@ -8,11 +8,6 @@ #define __ASMSPARC_ELF_H

    #include <asm/ptrace.h>

    -#ifdef __KERNEL__
    -#include <asm/mbus.h>
    -#include <asm/uaccess.h>
    -#endif
    -
    /*
    * Sparc section types
    */
    @@ -77,6 +72,23 @@ typedef unsigned long elf_greg_t;
    #define ELF_NGREG 38
    typedef elf_greg_t elf_gregset_t[ELF_NGREG];

    +typedef struct {
    + union {
    + unsigned long pr_regs[32];
    + double pr_dregs[16];
    + } pr_fr;
    + unsigned long __unused;
    + unsigned long pr_fsr;
    + unsigned char pr_qcnt;
    + unsigned char pr_q_entrysize;
    + unsigned char pr_en;
    + unsigned int pr_q[64];
    +} elf_fpregset_t;
    +
    +#ifdef __KERNEL__
    +#include <asm/mbus.h>
    +#include <asm/uaccess.h>
    +
    /* Format is:
    * G0 --> G7
    * O0 --> O7
    @@ -99,20 +111,7 @@ do { unsigned long *dest = &(__elf_regs[
    dest[34] = src->npc; \
    dest[35] = src->y; \
    dest[36] = dest[37] = 0; /* XXX */ \
    -} while(0); /* Janitors: Don't touch this colon. */
    -
    -typedef struct {
    - union {
    - unsigned long pr_regs[32];
    - double pr_dregs[16];
    - } pr_fr;
    - unsigned long __unused;
    - unsigned long pr_fsr;
    - unsigned char pr_qcnt;
    - unsigned char pr_q_entrysize;
    - unsigned char pr_en;
    - unsigned int pr_q[64];
    -} elf_fpregset_t;
    +} while(0); /* Janitors: Don't touch this semicolon. */

    #define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \
    ({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread.kregs); 1; })
    @@ -165,8 +164,8 @@ #define ELF_HWCAP ((ARCH_SUN4C_SUN4) ? 0

    #define ELF_PLATFORM (NULL)

    -#ifdef __KERNEL__
    #define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX)
    -#endif
    +
    +#endif /* __KERNEL__ */

    #endif /* !(__ASMSPARC_ELF_H) */

    --
    dwmw2

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-10-19 09:53    [W:2.984 / U:0.796 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site