about summary refs log tree commit diff
path: root/sysdeps/hppa/crtn.S
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2017-12-02 14:43:28 -0500
committerJohn David Anglin <danglin@gcc.gnu.org>2017-12-02 14:43:28 -0500
commitb3f7fb12f5c490787d548ecc479920e608f6f904 (patch)
tree15f8efbcb6b8c29510e265cc0c1ef7f5904b3094 /sysdeps/hppa/crtn.S
parent800a496acbb8c43036b3832460220d4ecbbc22a4 (diff)
downloadglibc-b3f7fb12f5c490787d548ecc479920e608f6f904.tar.gz
glibc-b3f7fb12f5c490787d548ecc479920e608f6f904.tar.xz
glibc-b3f7fb12f5c490787d548ecc479920e608f6f904.zip
Handle __gmon_start__ as undefined weak on hppa.
	[BZ libc/19170]
	* sysdeps/hppa/crti.S: Declare PREINIT_FUNCTION weak_extern when
	PREINIT_FUNCTION_WEAK is nonzero.
	(gmon_initializer): New function.  Put procedure label for it in
	.init_array section.
	(_init): Don't call PREINIT_FUNCTION.
	* sysdeps/hppa/crtn.S (__gmon_start__): Remove.
	* sysdeps/hppa/dl-lookupcfg.h (DL_FIXUP_MAKE_VALUE): Create null fixup
	value when map argument is null.
Diffstat (limited to 'sysdeps/hppa/crtn.S')
-rw-r--r--sysdeps/hppa/crtn.S21
1 files changed, 0 insertions, 21 deletions
diff --git a/sysdeps/hppa/crtn.S b/sysdeps/hppa/crtn.S
index 42f310d217..49666b81f9 100644
--- a/sysdeps/hppa/crtn.S
+++ b/sysdeps/hppa/crtn.S
@@ -38,27 +38,6 @@
 /* crtn.S puts function epilogues in the .init and .fini sections
    corresponding to the prologues in crti.S. */
 
-/* Note that we cannot have a weak undefined __gmon_start__, because
-   that would require this to be PIC, and the linker is currently not
-   able to generate a proper procedure descriptor for _init.  Sad but
-   true.  Anyway, HPPA is one of those horrible architectures where
-   making the comparison and indirect call is quite expensive (see the
-   comment in sysdeps/generic/initfini.c). */
-        .text
-        .align 4
-        .weak   __gmon_start__
-        .type    __gmon_start__,@function
-__gmon_start__:
-	.proc
-	.callinfo
-	.entry
-        bv,n %r0(%r2)
-	.exit
-	.procend
-
-/* Here is the tail end of _init.  We put __gmon_start before this so
-   that the assembler creates the .PARISC.unwind section for us, ie.
-   with the right attributes.  */
 	.section .init, "ax", @progbits
 	ldw	-84(%sp),%rp
 	copy	%r4,%r19