The userspace runtime linker uses the elf_platform to find the
libraries optimized for the current CPU archecture variant. First we
need to allow it to be set to something other than NULL. Follow-on
patches will set some values for specific CPUs.
GLIBC already does the right thing. The kernel just needs to supply
good data.
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
---
arch/mips/include/asm/elf.h | 14 +++++++-------
arch/mips/kernel/cpu-probe.c | 1 +
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
index 9266f02..1c3dbf0 100644
--- a/arch/mips/include/asm/elf.h
+++ b/arch/mips/include/asm/elf.h
@@ -334,14 +334,14 @@ extern int dump_task_fpu(struct task_struct *,
elf_fpregset_t *);
#define ELF_HWCAP (0)
-/* This yields a string that ld.so will use to load implementation
- specific libraries for optimization. This is more specific in
- intent than poking at uname or /proc/cpuinfo.
-
- For the moment, we have only optimizations for the Intel generations,
- but that could change... */
+/*
+ * This yields a string that ld.so will use to load implementation
+ * specific libraries for optimization. This is more specific in
+ * intent than poking at uname or /proc/cpuinfo.
+ */
-#define ELF_PLATFORM (NULL)
+#define ELF_PLATFORM __elf_platform
+extern const char *__elf_platform;
/*
* See comments in asm-alpha/elf.h, this is the same thing
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index aa25fd0..91ba1c8 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -917,6 +917,7 @@ static inline void cpu_probe_cavium(struct cpuinfo_mips *c,
unsigned int cpu)
}
const char *__cpu_name[NR_CPUS];
+const char *__elf_platform;
__cpuinit void cpu_probe(void)
{
--
1.6.0.6
|