aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/powerpc/powerpc64/entry.h6
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index f888bb5862..beca929735 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-11-30 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/powerpc/powerpc64/entry.h (TEXT_START): Define using a
+ second, differently-typed declaration, rather than a cast.
+
2012-11-30 Siddhesh Poyarekar <siddhesh@redhat.com>
* sunrpc/rpc/svc.h (__svc_accept_failed): Move declaration...
diff --git a/sysdeps/powerpc/powerpc64/entry.h b/sysdeps/powerpc/powerpc64/entry.h
index 2a54fe728d..b1d4b7f1a8 100644
--- a/sysdeps/powerpc/powerpc64/entry.h
+++ b/sysdeps/powerpc/powerpc64/entry.h
@@ -1,5 +1,5 @@
/* Finding the entry point and start of text. PowerPC64 version.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -30,4 +30,6 @@ extern void _start (void);
to keep profiling records. We can't copy the ia64 scheme as our
entry poiny address is really the address of the function
descriptor, not the actual function entry. */
-#define TEXT_START (((long int *) ENTRY_POINT)[0])
+#define TEXT_START \
+ ({ extern unsigned long int _start_as_data[] asm ("_start"); \
+ _start_as_data[0]; })