about summary refs log tree commit diff
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]; })