Fix profiling on powerpc32 secure-plt shared libs and PIEs

This commit is contained in:
Alan Modra 2011-09-07 22:02:42 -04:00 committed by Ulrich Drepper
parent 2270037782
commit 24f579d86e
7 changed files with 24 additions and 8 deletions

View File

@ -1,3 +1,15 @@
2011-08-15 Alan Modra <amodra@gmail.com>
[BZ #13092]
* sysdeps/powerpc/Makefile (gmon): Move sysdep_routines to..
* sysdeps/powerpc/powerpc64/Makefile (gmon): ..here..
* sysdeps/powerpc/powerpc32/Makefile (gmon): ..and here. Add
ppc_mcount to static-only-routines.
* sysdeps/powerpc/powerpc32/Versions: Export GLIBC_PRIVATE
__mcount_internal.
* sysdeps/powerpc/powerpc32/ppc-mcount.S (_mcount): Call
__mcount_internal with usual JUMPTARGET. Remove useless nop.
2011-08-04 Will Schmidt <will_schmidt@vnet.ibm.com>
* sysdeps/powerpc/powerpc32/power7/strncmp.S: Adjust the alignment

4
NEWS
View File

@ -1,4 +1,4 @@
GNU C Library NEWS -- history of user-visible changes. 2011-9-5
GNU C Library NEWS -- history of user-visible changes. 2011-9-7
Copyright (C) 1992-2009, 2010, 2011 Free Software Foundation, Inc.
See the end for copying conditions.
@ -10,7 +10,7 @@ Version 2.15
* The following bugs are resolved with this release:
9696, 12868, 12852, 12874, 12885, 12907, 12922, 12935, 13007, 13021,
13068, 13114, 13134, 13144, 13150
13068, 13092, 13114, 13134, 13144, 13150
* New program pldd to list loaded object of a process
Implemented by Ulrich Drepper.

View File

@ -2,10 +2,6 @@
# machine.
+cflags += -mnew-mnemonics
ifeq ($(subdir),gmon)
sysdep_routines += ppc-mcount
endif
ifeq ($(subdir),string)
CFLAGS-memcmp.c += -Wno-uninitialized
endif

View File

@ -5,6 +5,11 @@ ifeq ($(with-fp),no)
sysdep-LDFLAGS += -msoft-float
endif
ifeq ($(subdir),gmon)
sysdep_routines += ppc-mcount
static-only-routines += ppc-mcount
endif
ifeq ($(subdir),misc)
sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1
endif

View File

@ -8,6 +8,9 @@ libc {
__fixsfdi; __fixunssfdi;
__floatdidf; __floatdisf;
}
GLIBC_PRIVATE {
__mcount_internal;
}
}
libm {

View File

@ -58,8 +58,7 @@ ENTRY(_mcount)
stw r4, 44(r1)
cfi_offset (lr, -4)
stw r5, 8(r1)
bl __mcount_internal@local
nop
bl JUMPTARGET(__mcount_internal)
/* Restore the registers... */
lwz r6, 8(r1)
lwz r0, 44(r1)

View File

@ -45,4 +45,5 @@ ifeq ($(subdir),gmon)
# Compiling with -msoft-float ensures that fp regs are not used
# for moving memory around.
CFLAGS-mcount.c += $(no-special-regs)
sysdep_routines += ppc-mcount
endif