Restore ENTRY_POINT definition on hppa, ia64 (bug 28749)
authorFlorian Weimer <fweimer@redhat.com>
Fri, 7 Jan 2022 13:47:31 +0000 (14:47 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Fri, 7 Jan 2022 13:47:31 +0000 (14:47 +0100)
ENTRY_POINT is still needed for elf/rtld.c.  Fixes commit 4fb4e7e821e3
("csu: Always use __executable_start in gmon-start.c").

sysdeps/hppa/entry.h [new file with mode: 0644]
sysdeps/ia64/entry.h [new file with mode: 0644]

diff --git a/sysdeps/hppa/entry.h b/sysdeps/hppa/entry.h
new file mode 100644 (file)
index 0000000..f88bb56
--- /dev/null
@@ -0,0 +1,8 @@
+extern void _start (void);
+
+/* Lives in libgcc.so and canonicalizes function pointers for comparison.  */
+extern unsigned int __canonicalize_funcptr_for_compare (unsigned int fptr);
+
+/* The function's entry point is stored in the first word of the
+   function descriptor (plabel) of _start().  */
+#define ENTRY_POINT __canonicalize_funcptr_for_compare((unsigned int)_start)
diff --git a/sysdeps/ia64/entry.h b/sysdeps/ia64/entry.h
new file mode 100644 (file)
index 0000000..9ae8b86
--- /dev/null
@@ -0,0 +1,8 @@
+#include <link.h>
+#include <dl-fptr.h>
+
+extern void _start (void);
+
+/* The function's entry point is stored in the first word of the
+   function descriptor (plabel) of _start().  */
+#define ENTRY_POINT ELF_PTR_TO_FDESC (_start)->ip