This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Fix undefined reference to _dl_prof_resolve in profiled libc
- From: Andreas Schwab <schwab at linux-m68k dot org>
- To: libc-alpha at sourceware dot org
- Date: Thu, 17 May 2012 00:04:30 +0200
- Subject: [PATCH] Fix undefined reference to _dl_prof_resolve in profiled libc
_dl_profile_resolve and its wrapper _dl_prof_resolve aren't defined in a
profiled libc.
Andreas.
* sysdeps/powerpc/powerpc32/dl-machine.c
(__elf_machine_runtime_setup) [PROF]: Don't reference
_dl_prof_resolve.
---
sysdeps/powerpc/powerpc32/dl-machine.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/sysdeps/powerpc/powerpc32/dl-machine.c b/sysdeps/powerpc/powerpc32/dl-machine.c
index e535480..a2a26f8 100644
--- a/sysdeps/powerpc/powerpc32/dl-machine.c
+++ b/sysdeps/powerpc/powerpc32/dl-machine.c
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation functions. PowerPC version.
- Copyright (C) 1995-2006, 2008, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1995-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -235,17 +235,21 @@ __elf_machine_runtime_setup (struct link_map *map, int lazy, int profile)
if (lazy)
{
Elf32_Word *tramp = plt + PLT_TRAMPOLINE_ENTRY_WORDS;
- Elf32_Word dlrr = (Elf32_Word)(profile
- ? _dl_prof_resolve
- : _dl_runtime_resolve);
+ Elf32_Word dlrr;
Elf32_Word offset;
+#ifndef PROF
+ dlrr = (Elf32_Word) (profile
+ ? _dl_prof_resolve
+ : _dl_runtime_resolve);
if (profile && GLRO(dl_profile) != NULL
&& _dl_name_match_p (GLRO(dl_profile), map))
/* This is the object we are looking for. Say that we really
want profiling and the timers are started. */
GL(dl_profile_map) = map;
-
+#else
+ dlrr = (Elf32_Word) _dl_runtime_resolve;
+#endif
/* For the long entries, subtract off data_words. */
tramp[0] = OPCODE_ADDIS_HI (11, 11, -data_words);
tramp[1] = OPCODE_ADDI (11, 11, -data_words);
--
1.7.10.2
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."