]> err.no Git - linux-2.6/blobdiff - include/asm-powerpc/elf.h
Char: mxser, ratelimit ioctl warning
[linux-2.6] / include / asm-powerpc / elf.h
index 746e53d60cbeb3e90667d22c1c869ffc1a548e43..80d1f399ee513a944aae0b7366a55d588393fac9 100644 (file)
@@ -204,28 +204,8 @@ static inline void ppc_elf_core_copy_regs(elf_gregset_t elf_regs,
 }
 #define ELF_CORE_COPY_REGS(gregs, regs) ppc_elf_core_copy_regs(gregs, regs);
 
-static inline int dump_task_regs(struct task_struct *tsk,
-                                elf_gregset_t *elf_regs)
-{
-       struct pt_regs *regs = tsk->thread.regs;
-       if (regs)
-               ppc_elf_core_copy_regs(*elf_regs, regs);
-
-       return 1;
-}
-#define ELF_CORE_COPY_TASK_REGS(tsk, elf_regs) dump_task_regs(tsk, elf_regs)
-
-extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *); 
-#define ELF_CORE_COPY_FPREGS(tsk, elf_fpregs) dump_task_fpu(tsk, elf_fpregs)
-
 typedef elf_vrregset_t elf_fpxregset_t;
 
-#ifdef CONFIG_ALTIVEC
-extern int dump_task_vector(struct task_struct *, elf_vrregset_t *vrregs);
-#define ELF_CORE_COPY_XFPREGS(tsk, regs) dump_task_vector(tsk, regs)
-#define ELF_CORE_XFPREG_TYPE NT_PPC_VMX
-#endif
-
 /* ELF_HWCAP yields a mask that user programs can use to figure out what
    instruction set this cpu supports.  This could be done in userspace,
    but it's not easy, and we've already done it here.  */
@@ -237,6 +217,14 @@ extern int dump_task_vector(struct task_struct *, elf_vrregset_t *vrregs);
 
 #define ELF_PLATFORM   (cur_cpu_spec->platform)
 
+/* While ELF_PLATFORM indicates the ISA supported by the platform, it
+ * may not accurately reflect the underlying behavior of the hardware
+ * (as in the case of running in Power5+ compatibility mode on a
+ * Power6 machine).  ELF_BASE_PLATFORM allows ld.so to load libraries
+ * that are tuned for the real hardware.
+ */
+#define ELF_BASE_PLATFORM (powerpc_base_platform)
+
 #ifdef __powerpc64__
 # define ELF_PLAT_INIT(_r, load_addr)  do {    \
        _r->gpr[2] = load_addr;                 \
@@ -255,7 +243,8 @@ do {                                                                \
        else                                                    \
                clear_thread_flag(TIF_ABI_PENDING);             \
        if (personality(current->personality) != PER_LINUX32)   \
-               set_personality(PER_LINUX);                     \
+               set_personality(PER_LINUX |                     \
+                       (current->personality & (~PER_MASK)));  \
 } while (0)
 /*
  * An executable for which elf_read_implies_exec() returns TRUE will